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

Liu Yuan namei.unix at gmail.com
Mon Sep 2 08:19:59 CEST 2013


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.
> 
> MORITA Kazutaka (7):
>   optimize fnv hash
>   add sd_hash to generate more dispersed hash values
>   sheep: use sd_hash instead of fnv_64a_buf
>   increase the default number of virtual nodes
>   sheep: update store version
>   tests/functional: update tests for new hash function

Applied thanks

Yuan



More information about the sheepdog mailing list