cperl icon indicating copy to clipboard operation
cperl copied to clipboard

try the google swiss table (in C)

Open rurban opened this issue 7 years ago • 0 comments

Either the simple 16 ptr version (on 64bit), but probably go for the other cache-aware 7 ptr variant described in the talk, with the highest metadata bit to mark a full table. https://youtu.be/ncHmEUmJZf4?t=2845

See https://abseil.io/blog/20180927-swisstables and for the C++ code https://github.com/abseil/abseil-cpp/blob/master/absl/container/internal/raw_hash_set.h. I haven't found a C version for strings yet, but it should be much shorter, without all the C++ quirks. possibly inline short (<8 byte) strings. They don't care for 32bit, but we do. Shouldn't be too hard to support both.

rurban avatar Oct 08 '18 06:10 rurban