-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ceph: make CRUSH hash function a bucket property
Make the integer hash function a property of the bucket it is used on. This allows us to gracefully add support for new hash functions without starting from scatch. Signed-off-by: Sage Weil <sage@newdream.net>
- Loading branch information
Sage Weil
committed
Nov 8, 2009
1 parent
1654dd0
commit fb69039
Showing
5 changed files
with
93 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,17 @@ | ||
#ifndef _CRUSH_HASH_H | ||
#define _CRUSH_HASH_H | ||
|
||
extern __u32 crush_hash32(__u32 a); | ||
extern __u32 crush_hash32_2(__u32 a, __u32 b); | ||
extern __u32 crush_hash32_3(__u32 a, __u32 b, __u32 c); | ||
extern __u32 crush_hash32_4(__u32 a, __u32 b, __u32 c, | ||
__u32 d); | ||
extern __u32 crush_hash32_5(__u32 a, __u32 b, __u32 c, | ||
__u32 d, __u32 e); | ||
#define CRUSH_HASH_RJENKINS1 0 | ||
|
||
#define CRUSH_HASH_DEFAULT CRUSH_HASH_RJENKINS1 | ||
|
||
extern const char *crush_hash_name(int type); | ||
|
||
extern __u32 crush_hash32(int type, __u32 a); | ||
extern __u32 crush_hash32_2(int type, __u32 a, __u32 b); | ||
extern __u32 crush_hash32_3(int type, __u32 a, __u32 b, __u32 c); | ||
extern __u32 crush_hash32_4(int type, __u32 a, __u32 b, __u32 c, __u32 d); | ||
extern __u32 crush_hash32_5(int type, __u32 a, __u32 b, __u32 c, __u32 d, | ||
__u32 e); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters