efficient / libcuckoo

A high-performance, concurrent hash table
Other
1.61k stars 275 forks source link

WIP: Reducing cache choerency traffic under contention for spinlock #147

Open milianw opened 2 years ago

milianw commented 2 years ago

Use the code from 1 to implement the spinlock based on std::atomic instead of std::atomic_flag. While the former is not necessarily lock-free, it is on the majority of platforms. A static assert is added to catch this on platforms that don't have this - we could potentially use the older implementation on those instead then.

WIP because I don't have a good scientific benchmark for this yet. I tested it in our realworld application, and it seems to have slightly reduced the load of the spinlock, but not in a really large way...

See also: https://github.com/efficient/libcuckoo/issues/146