From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Tue, 29 May 2018 10:57:10 +0100 Subject: [Cluster-devel] [RFC PATCH 0/3] Speed up journal head lookup In-Reply-To: <1527581147-25544-1-git-send-email-adas@redhat.com> References: <1527581147-25544-1-git-send-email-adas@redhat.com> Message-ID: <690da6fb-a054-bea2-ccc9-971b541b898d@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, On 29/05/18 09:05, Abhi Das wrote: > 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 > Some impressive numbers, certainly looking very promising, Steve. > 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(-) >