cache-advisor
API:
Implementation details:
- pushes accesses to a local queue
- when the local queue reaches 8 items, pushes each access into one of 256 shards
- each shard is protected by a mutex, but it never blocks to lock it, by using
try_lock - if the mutex can't be acquired, the accesses are pushed into an access queue for the shard
- if the mutex can be acquired, the acquiring thread applies accesses from the queue as well