summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/common-utils.h
diff options
context:
space:
mode:
authorRaghavendra G <raghavendra@gluster.com>2009-10-28 04:46:25 +0000
committerAnand V. Avati <avati@dev.gluster.com>2009-10-29 10:07:49 -0700
commit14962ce3e69e452a2447c12cde3369759365fda9 (patch)
tree19702c29142c35e05a1548f9471c77f6a4eab05e /libglusterfs/src/common-utils.h
parent13e6947744e8a26d2380af200942fd4ed61fd845 (diff)
performance/io-cache: change the hash function used for rbtree based hash table.
- the earlier hash function does not distribute pages uniformly for offsets that fit into 32 bits. The reason is that the hash function just xors the contents of the key 4 bytes at a time with the current value of hash. Hence for keys that fit into 32 bits, the hash will be the key itself. Since we are using the rounded_offset (which is a multiple of 128KB) as the key, the key will be exactly divisible by the number of buckets configured (4096) resolving all the pages into the first bucket. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 335 (Io-cache optimization) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
Diffstat (limited to 'libglusterfs/src/common-utils.h')
-rw-r--r--libglusterfs/src/common-utils.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h
index c5869f4a4..48788d295 100644
--- a/libglusterfs/src/common-utils.h
+++ b/libglusterfs/src/common-utils.h
@@ -330,6 +330,7 @@ int gf_lockfd (int fd);
int gf_unlockfd (int fd);
int get_checksum_for_file (int fd, uint32_t *checksum);
+int gf_log2 (unsigned long x);
#endif /* _COMMON_UTILS_H */