RS-store: A SkipList-Based Key-Value Store with Remote Direct Memory Access

Many key-value stores use RDMA to optimize the messaging and data transmission between application layer and storage layer, most of which only provide point-wise operations. Skiplist-based store can support both point operations and range queries, but its CPU-intensive access operations combined with the high-speed network will easily lead to the storage layer reaches CPU bottlenecks. In this paper, we present RS-store, a skiplist-based key-value store with RDMA, which can overcome the cpu handle of the storage layer by enabling two access modes: local access and remote access. In RS-store, we redesign a novel data structure R-skiplist to save the communication cost in remote access, and implement a latch-free concurrency control mechanism to ensure all the concurrency during two access modes. At last, our evaluation on a RDMA-capable cluster shows that the performance of RS-store over R-skiplist is 0.6 \(\times \)–1 \(\times \) higher than the existing skiplist, and it supports application layer’s high scalability.

[1]  Maurice Herlihy,et al.  A Simple Optimistic Skiplist Algorithm , 2007, SIROCCO.

[2]  William Pugh,et al.  Skip lists: a probabilistic alternative to balanced trees , 1989, CACM.

[3]  Kihong Kim,et al.  Cache-Conscious Concurrency Control of Main-Memory Indexes on Shared-Memory Multiprocessor Systems , 2001, VLDB.

[4]  Song Jiang,et al.  Workload analysis of a large-scale key-value store , 2012, SIGMETRICS '12.

[5]  Jinyang Li,et al.  Using One-Sided RDMA Reads to Build a Fast, CPU-Efficient Key-Value Store , 2013, USENIX ATC.

[6]  David G. Andersen,et al.  Using RDMA efficiently for key-value services , 2015, SIGCOMM 2015.

[7]  Dennis Shasha Review - Efficient Locking for Concurrent Operations on B-Trees , 1999, ACM SIGMOD Digit. Rev..

[8]  Ashish Gupta,et al.  The RAMCloud Storage System , 2015, ACM Trans. Comput. Syst..

[9]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.

[10]  Li Zhang,et al.  HydraDB: a resilient RDMA-driven key-value middleware for in-memory cluster computing , 2015, SC15: International Conference for High Performance Computing, Networking, Storage and Analysis.

[11]  Tao Li,et al.  Octopus: an RDMA-enabled Distributed Persistent Memory File System , 2017, USENIX ATC.

[12]  Keir Fraser,et al.  Practical lock-freedom , 2003 .

[13]  William Pugh,et al.  Concurrent maintenance of skip lists , 1990 .

[14]  Sayantan Sur,et al.  Memcached Design on High Performance RDMA Capable Interconnects , 2011, 2011 International Conference on Parallel Processing.