[PATCH 0/11] xfs: delayed logging
Christoph Hellwig
hch at infradead.org
Thu May 6 14:12:18 CDT 2010
> 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!
More information about the xfs
mailing list