You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello, there seems to be a bug in the Cuckoo hash table when using sse4 instructions. The table will actually drop keys (at least i can't find them on lookup). Its possible you can find it if you enumerate entire table (did not try this). But its a big enough issue that look up is returning false. I can confirm that using the linear table with the same dataset and operations does not lose the key (with sse4 flag true). If the sse4 flag is false Cuckoo works as expected. I'm attaching a test setup for reproducing the issue. The test creates a hash table with UUID keys and then perform a series of adds/removes. Then a target key is looked up (that was not removed) and you will find it is not there. I've left code in place for toggling table type.
This was a really nasty thing to find lol.
hash-test.tar.gz
Note: uuids.txt has an initial set of uuids to load into table. hash_ops.txt contains ops that when replayed eventually corrupt table.
The text was updated successfully, but these errors were encountered:
Hello, there seems to be a bug in the Cuckoo hash table when using sse4 instructions. The table will actually drop keys (at least i can't find them on lookup). Its possible you can find it if you enumerate entire table (did not try this). But its a big enough issue that look up is returning false. I can confirm that using the linear table with the same dataset and operations does not lose the key (with sse4 flag true). If the sse4 flag is false Cuckoo works as expected. I'm attaching a test setup for reproducing the issue. The test creates a hash table with UUID keys and then perform a series of adds/removes. Then a target key is looked up (that was not removed) and you will find it is not there. I've left code in place for toggling table type.
This was a really nasty thing to find lol.
hash-test.tar.gz
Note: uuids.txt has an initial set of uuids to load into table. hash_ops.txt contains ops that when replayed eventually corrupt table.
The text was updated successfully, but these errors were encountered: