At Fri, 24 Aug 2012 12:44:05 +0800,
Liu Yuan wrote:
> 
> 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.

It is a good idea to refine the farm backend store too, but simple
store should be added as another driver, I think.  The simple driver
would become a good tutorial to introduce new drivers.

> 
> By modularizing Farm, we can share one code base for better development
> and won't lose features that Farm provides. Trunk & snap design looks

I think we can share the code even if we add simple store as another
driver.  For example:

==
static int farm_read(uint64_t oid, struct siocb *iocb)
{
        return simple_read(oid, iocb);
}

static int farm_write(uint64_t oid, struct siocb *iocb, int create)
{
        int ret;

        ret = simple_write(oid, iocb, create);
        if (ret == SD_RES_SUCCESS)
                trunk_update_entry(oid);

        return ret;
}
==

I'd like to see farm implementation on top of the simple store rather
than merging simple store code into farm.

Thanks,

Kazutaka

> 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).
-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to