[sheepdog] [PATCH 0/7] modify hash calculation

Liu Yuan namei.unix at gmail.com
Mon Sep 2 18:12:08 CEST 2013


On Mon, Sep 02, 2013 at 02:36:41PM +0900, MORITA Kazutaka wrote:
> At Mon, 2 Sep 2013 10:56:11 +0800,
> Liu Yuan wrote:
> > 
> > On Fri, Aug 30, 2013 at 06:32:02PM +0900, MORITA Kazutaka wrote:
> > > From: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
> > > 
> > > The current hash algorithm is fast but shows poor dispersion.  This
> > > series introduces a new hash function based on the current fnv1a
> > > algorithm.
> > > 
> > > I compared performance and dispersion when generating 64 bit integer
> > > values with:
> > > 
> > >  - hash_64 (a simple hash function used in Linux kernel)
> > >  - fnv1a   (the current hash function)
> > >  - sd_hash (the one this patchset introduces)
> > >  - sha1
> > > 
> > > and sd_hash showed a good result.
> > > 
> > >                    hash_64    fnv1a   sd_hash     sha1
> > > Performance (*1)     43 ms    96 ms    182 ms   2387 ms
> > > Dispersion (*2)     9216.0   2927.7      11.4      6.57
> > > 
> > > (*1) The time to generate 10,000,000 hash values.
> > > (*2) The result of chi-squared test.  It should be less than 16.9.
> > > 
> > > Please note that this series breaks backward compatibility, and
> > > shouldn't be merged into the stable trees.
> > 
> > Does this means that we can't upgrade old cluster to master after this series
> > is merged (people should format the cluster)?
> 
> What I mean is that such a fundamental change shouldn't go into the
> stable trees.
> 
> I think the object reclaim feature will be also merged before the v0.8
> release and it will change the format too.  I'm going to write an
> upgrade code after the v0.8 format is fixed.
> 

Probably, we don't need upgrade code at all. We can

$ dog cluster snapshot save old_data
...upgrade cluster and format...
$ dog cluster snapshot load old_data

Thanks
Yuan



More information about the sheepdog mailing list