Back to Search
Start Over
BiloKey : A Scalable Bi-Index Locality-Aware In-Memory Key-Value Store
- Source :
- IEEE Transactions on Parallel and Distributed Systems. 30:1528-1540
- Publication Year :
- 2019
- Publisher :
- Institute of Electrical and Electronics Engineers (IEEE), 2019.
-
Abstract
- Fast in-memory key value stores are the keys to building large-scale Internet services. The state-of-the-art solutions mainly focus on optimizing the performance for read-intensive workloads. Nevertheless, a wide range of applications demonstrate a significant amount of updates and range queries, which scale poorly with the current implementations. In this paper, we present BiloKey, a highly scalable in-memory key value store on multi-core machines, significantly outperforming Redis and Memcached for a variety of mixed read and write workloads. To achieve this, BiloKey leverages a fast bi-index comprised by a Hash Table index and a SkipList index, where the former supports feature rich operations including GET, UPDATE and DELETE with $O$O(1) complexity, while the latter supports SCAN with $O$O(log$N$N) complexity. Furthermore, to make the bi-index design scale well, BiloKey adopts three techniques: lazy synchronization for reducing the overhead of maintaining index consistency, lock-free data structure for supporting multi-writers, and locality-aware data parallel processing for preserving the data locality of requests. Compared with two popular in-memory KV stores (i.e., Redis and Memcached), experimental results show that: (1) for write-intensive workloads, BiloKey outperforms Redis and Memcached by 7.8x and 3.7x on average (up to 11.5x and 4.8x), respectively; (2) for scan-intensive workloads, BiloKey achieves an average speedup of 2.3x against Redis; (3) for read-intensive workloads, BiloKey also outperforms Redis and Memcached by 1.2x and 1.8x on average.
- Subjects :
- 020203 distributed computing
Skip list
Speedup
Range query (data structures)
Computer science
Search engine indexing
02 engineering and technology
Parallel computing
Data structure
Hash table
Concurrency control
Computational Theory and Mathematics
Hardware and Architecture
Signal Processing
Synchronization (computer science)
Scalability
0202 electrical engineering, electronic engineering, information engineering
Overhead (computing)
Subjects
Details
- ISSN :
- 21619883 and 10459219
- Volume :
- 30
- Database :
- OpenAIRE
- Journal :
- IEEE Transactions on Parallel and Distributed Systems
- Accession number :
- edsair.doi...........17227cd891744937ee5361004f15786e