diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2013-09-10 13:39:01 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-09-23 17:04:19 +0200 |
commit | 581de96fc30b7fe44070f17a8a73f3374d38d6ff (patch) | |
tree | b8207862d5ed9e2e0a3c763f73b49276318769b7 /src/db | |
parent | b2c1b9904f50c34f1e1bf1c2e4d82d53ff7496e6 (diff) | |
download | sssd-581de96fc30b7fe44070f17a8a73f3374d38d6ff.tar.gz sssd-581de96fc30b7fe44070f17a8a73f3374d38d6ff.tar.bz2 sssd-581de96fc30b7fe44070f17a8a73f3374d38d6ff.zip |
mmap_cache: Use two chains for hash collision.
struct sss_mc_rec had two hash members (hash1 and hash2) but only one next
member. This was a big problem in case of higher probability of hash collision.
structure sss_mc_rec will have two next members (next1, next2) with this patch.
next1 is related to hash1 and next2 is related to hash1.
Iterating over chains is changed, because we need to choose right next pointer.
Right next pointer will be chosen after comparing record hashes.
This behaviour is wrapped in function sss_mc_next_slot_with_hash.
Adding new record to chain is also changed. The situation is very similar to
iterating. We need to choose right next pointer (next1 or next2).
Right next pointer will be chosen after comparing record hashes.
Adding reference to next slot is wrapped in function
sss_mc_chain_slot_to_record_with_hash
Size of structure sss_mc_rec was increased from 32 bytes to 40 bytes.
Resolves:
https://fedorahosted.org/sssd/ticket/2049
Diffstat (limited to 'src/db')
0 files changed, 0 insertions, 0 deletions