[sheepdog] vdi object journaling and atomic write

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Fri Aug 31 09:43:43 CEST 2012


At Fri, 31 Aug 2012 15:35:09 +0800,
Liu Yuan wrote:
> 
> On 08/31/2012 03:30 PM, MORITA Kazutaka wrote:
> > At Fri, 31 Aug 2012 15:24:21 +0800,
> > Liu Yuan wrote:
> >>
> >> From the trace we can see that journaling is most time consuming process for
> >> VDI object write, account almost for 70% (with 3 copies, all 3 nodes on the same box).
> >>
> >> Because we support all or nothing atomic write, do we still need to suppose VDI object
> >> journeling?
> > 
> > Do you mean store->atomic_put?  It doesn't support partial write.
> > 
> 
> Yes. What do you mean by partial write? partial write will be stored as
> oid.tmp, which can be removed when sheep start up, then it won't cause
> trouble, no?

default_atomic_put write data to the temporary file, and then rename/2
it to the actual object file.  We can use it only to write data to a
new object atomically (Otherwise, rename/2 will overwrite the existing
objects).  Actually, we use it only to recover objects.

To support a partial write against existing objects in
default_atomic_put, we need to do similar thing like journaling.

Thanks,

Kazutaka



More information about the sheepdog mailing list