[sheepdog] [PATCH] sheep: add simple_store driver again

Liu Yuan namei.unix at gmail.com
Fri Aug 24 06:44:05 CEST 2012


On 08/23/2012 10:58 PM, MORITA Kazutaka wrote:
> This introduces a storage driver 'simple_store' based on the current
> storage interface.  The design of the new simple_store is similar to
> one of the farm driver.  The main difference is that farm uses the
> sha1 based backend store for stale objects, but simple_store uses a
> flat directory for them.  With this design, simple_store can move
> objects from the working directory to the backend store efficiently
> with rename(2).
> 
> Here are pros vs cons of simple_store.
> 
> Pros:
>  - faster recovery
>  - smaller and simpler
>  - would be a good example to introduce other storage drivers
> 
> Cons:
>  - cluster snapshot is not supported
>  - stale objects are not deduplicated
>  - there is no sha1 verification

I am also in favor of simple implementation. I think a dedicated .stale
directory idea could also apply to Farm. So How about following approach:

    merge simple store into Farm, then it actually run the code as
    current simple store. That is, use .stale only for recovery and
    trunk & snap for snapshot objects.

By modularizing Farm, we can share one code base for better development
and won't lose features that Farm provides. Trunk & snap design looks
complicated for now, but it is actually useful as a building block for
future more advanced features, for e.g, we can store all read-only base
VDI objects as sha1 objects to enjoy the data reduction. (From our
internal usage of Sheepdog, we observe a heavy use of 'template', so
this reduction could be rather promising).

Thanks,
Yuan



More information about the sheepdog mailing list