[dm-devel] [PATCH 1/3] dm: log writes target

Josef Bacik jbacik at fb.com
Tue Apr 7 14:45:52 UTC 2015


On 03/23/2015 02:02 PM, Vivek Goyal wrote:
> On Thu, Mar 19, 2015 at 04:31:08PM -0400, Josef Bacik wrote:
>
> [..]
>> + * We log writes only after they have been flushed, this makes the log describe
>> + * close to the order in which the data hits the actual disk, not its cache.  So
>> + * for example the following sequence (W means write, C means complete)
>> + *
>> + * Wa,Wb,Wc,Cc,Ca,FLUSH,FUAd,Cb,CFLUSH,CFUAd
>> + *
>> + * Would result in the log looking like this
>> + *
>> + * c,a,flush,fuad,b,<other writes>,<next flush>
>> + *
>
> A minor nit, Should this sequence be following.
>
> c,a,b, flush,fuad,<other writes>,<next flush>
>
> when flush completed by that time write of b has completed too. So it
> should be written first?
>

So we want to catch file systems behaving badly by not waiting for the 
IO they care about to complete before issuing their flush, so we take 
the super pessimistic view that only IO that has completed by FLUSH 
issue time can truly be safe.  For all we know the flush could have 
happened first and we just happen to get the endio called for b first 
instead of the flush, so to make it mostly likely that we catch fs bugs 
we enforce this idea that only completed IO can be sure to have been 
flushed at flush submit time.  Thanks,

Josef




More information about the dm-devel mailing list