[Top] [All Lists]

Re: [PATCH 0/11] xfs: delayed logging

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 0/11] xfs: delayed logging
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Thu, 6 May 2010 15:12:18 -0400
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20100506132641.GC19579@dastard>
References: <1273110351-2333-1-git-send-email-david@xxxxxxxxxxxxx> <20100506132641.GC19579@dastard>
User-agent: Mutt/1.5.19 (2009-01-05)
> Secondly, for delayed logging only, matching by transaction
> structure address triggers the failure because busy extents
> have a much longer life than the transaction structure. It is clear
> why the transaction ID matching didn't trip over - it would have
> triggered a log force in this situation, and hence blocked until
> the checkpoint that fs_mark-2742 had triggered was complete before
> redoing the rbtree insert.

True, the busy extents get spliced over to the cil context, so they
outlive the transaction structure.

> Right now I'm simply going to go back to using the transaction ID
> for matching transactions, even though the above analysis points out
> that even that is not as efficient as it could be for delayed
> logging. That is, we don't even need to force the log or have a
> synchronous transaction if the extent was first freed in the current
> checkpoint seqeunce. Doing that, however, requires pinning the
> checkpoint sequence (i.e. preventing a flush) until the current
> transaction commits. While that is in the plan for delayed logging,
> it is future functionality and hence I'm not going to attempt to
> design and implement it this close to 2.6.35-rc cycle. [*]

Sounds fine to me.  I'm not a fan of exporting the tid, but it
seems like there's no good way around it for now.  Please make the
tid exporting a separate changeset so that it's easily revertable
once this is sorted out.

And documenting all this in comments in the code so that it's archived
would be very useful!

<Prev in Thread] Current Thread [Next in Thread>