[sheepdog] [PATCH 3/3] plain_store: store stale objects in .stale/[epoch]/

Liu Yuan namei.unix at gmail.com
Sun Aug 26 13:15:58 CEST 2012


On 08/26/2012 06:50 PM, MORITA Kazutaka wrote:
> This is necessary to pass test 034.
> 
> Storing stale objects in a flat directory causes a problem.  It is
> because if the objects are updated while leaving cluster, sheep cannot
> detect it and uses the local stale objects as the latest one.  It is
> mandatory to store stale objects with epoch information like old farm
> code or simple store.
> 
> This patch create a epoch directory like simple store.  I think this
> is the simplest way to store stale objects with epoch info.

I am actually doing the same problem. I have thought of this approach, but I come 
up with another one, instead of use [epoch]/oid to tag the stale object, I just play
with its name to store stale objects:

  .stale/oid.epoch

My patch is finished but still can't pass the updated 028.

The problem your patch set don't handle is: for default_read(), when iocb.epoch < sys_epoch()
we need read upwards like Farm did to fix subtle problems found in multiple node change events.

I'm going to test your current devel branch against updated 028.

Thanks,
Yuan



More information about the sheepdog mailing list