cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
* [Cluster-devel] [RFC PATCH 0/3] Speed up journal head lookup
@ 2018-05-29  8:05 Abhi Das
  2018-05-29  8:05 ` [Cluster-devel] [RFC PATCH 1/3] gfs2: allow map_journal_extents() to take a journal descriptor as argument Abhi Das
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Abhi Das @ 2018-05-29  8:05 UTC (permalink / raw)
  To: cluster-devel.redhat.com

This patchset uses bio(s) to read in the journal in large chunks
to lookup the journal head. This will replace the existing
bisect method of reading the journal block-by-block to find the
head.

These are RHEL7 patches because it was simpler for me to
test. Upstream versions shouldn't be very dissimilar. I'll port
once I get some feedback on this.

I'm seeing some promising results with some preliminary testing.
I have 5 lock_nolock filesystems saved off using 'gfs2_edit savemeta'
after killing the node mid-IO so as to save unrecovered journals.

All times are in milliseconds. This table below shows the overall
time taken for recovery and the jhead column represents the time
taken to find the jhead alone. Finding the jhead is a big chunk of
the overall time taken for recovery.

		bisect	      | 	bio
	overall		jhead |	overall		jhead
------------------------------|-----------------------
fs1	1702		1642  |	394		325
fs2	761		334   |	706		356
fs3	1150		904   | 1356		1089
fs4	953		596   |	691		343
fs5	1262		1233  |	554		524


Abhi Das (3):
  gfs2: allow map_journal_extents() to take a journal descriptor as
    argument
  gfs2: add timing info for various stages of journal recovery
  gfs2: read journal in large chunks to locate the head

 fs/gfs2/incore.h     |   7 ++-
 fs/gfs2/log.c        |   2 +-
 fs/gfs2/log.h        |   2 +
 fs/gfs2/lops.c       | 115 +++++++++++++++++++++++++++++++++++++++---
 fs/gfs2/lops.h       |   1 +
 fs/gfs2/ops_fstype.c |  10 ++--
 fs/gfs2/recovery.c   | 138 +++++++++------------------------------------------
 fs/gfs2/recovery.h   |   1 +
 8 files changed, 149 insertions(+), 127 deletions(-)

-- 
2.4.11



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-05-29 10:15 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-29  8:05 [Cluster-devel] [RFC PATCH 0/3] Speed up journal head lookup Abhi Das
2018-05-29  8:05 ` [Cluster-devel] [RFC PATCH 1/3] gfs2: allow map_journal_extents() to take a journal descriptor as argument Abhi Das
2018-05-29  9:57   ` Steven Whitehouse
2018-05-29  8:05 ` [Cluster-devel] [RFC PATCH 2/3] gfs2: add timing info for various stages of journal recovery Abhi Das
2018-05-29  9:59   ` Steven Whitehouse
2018-05-29  8:05 ` [Cluster-devel] [RFC PATCH 3/3] gfs2: read journal in large chunks to locate the head Abhi Das
2018-05-29 10:15   ` Steven Whitehouse
2018-05-29  9:57 ` [Cluster-devel] [RFC PATCH 0/3] Speed up journal head lookup Steven Whitehouse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).