Search Lookaside Buffer (SLB)
This repo contains code of Search Lookaside Buffer, by Xingbo Wu, Fan Ni, and Song Jiang, published on ACM SoCC'17.
The bibtex entry of this paper can be found here.
There are three SLB implementations:
icache: The most general SLB cache implementation. It wraps around index data structures using KVMAP API (see struct kvmap_api). Currently there are several index data structures available in the code base, including Chaining hash table, Cuckoo hash table, Skip list, and B+-tree. To use SLB with another data structure, users need to wrap it with the KVMAP API. kvmap_api_helper() is a single API that can be used to create any integrated index with flexible configurability. icache is thread safe.
ucache: It is almost identical to icache but it removes the locking in SLB. For single-threaded use ucache has less overhead than icache. Please be ware that it is unsafe to use ucache in a multi-threaded environment even for read-only operations.
rcache: It is an icache slightly tailored for integration with LMDB.
Just make it. IB/RDMA supports might be installed for compilation of the ib module. SLB uses xxhash in its code. It will be automatically downloaded by a few rules in Makefile.local at the first build.
Run the binaries without arguments to see usage information.