TY - GEN
T1 - Scaling concurrent log-structured data stores
AU - Golan-Gueta, Guy
AU - Bortnikov, Edward
AU - Hillel, Eshcar
AU - Keidar, Idit
N1 - Publisher Copyright: Copyright © 2015 ACM 978-1-4503-3238-5/15/04⋯ $15.00.
PY - 2015/4/17
Y1 - 2015/4/17
N2 - Log-structured data stores (LSM-DSs) are widely accepted as the state-of-the-art implementation of key-value stores. They replace random disk writes with sequential I/O, by accumulating large batches of updates in an in-memory data structure and merging it with the on-disk store in the background. While LSM-DS implementations proved to be highly successful at masking the I/O bottleneck, scaling them up on multicore CPUs remains a challenge. This is nontrivial due to their often rich APIs, as well as the need to coordinate the RAM access with the background I/O. We present cLSM, an algorithm for scalable concurrency in LSM-DS, which exploits multiprocessor-friendly data structures and non-blocking synchronization. cLSM supports a rich API, including consistent snapshot scans and general non-blocking read-modify-write operations. We implement cLSM based on the popular LevelDB keyvalue store, and evaluate it using intensive synthetic workloads as well as ones from production web-serving applications. Our algorithm outperforms state of the art LSM-DS implementations, improving throughput by 1.5x to 2.5x. Moreover, cLSM demonstrates superior scalability with the number of cores (successfully exploiting twice as many cores as the competition).
AB - Log-structured data stores (LSM-DSs) are widely accepted as the state-of-the-art implementation of key-value stores. They replace random disk writes with sequential I/O, by accumulating large batches of updates in an in-memory data structure and merging it with the on-disk store in the background. While LSM-DS implementations proved to be highly successful at masking the I/O bottleneck, scaling them up on multicore CPUs remains a challenge. This is nontrivial due to their often rich APIs, as well as the need to coordinate the RAM access with the background I/O. We present cLSM, an algorithm for scalable concurrency in LSM-DS, which exploits multiprocessor-friendly data structures and non-blocking synchronization. cLSM supports a rich API, including consistent snapshot scans and general non-blocking read-modify-write operations. We implement cLSM based on the popular LevelDB keyvalue store, and evaluate it using intensive synthetic workloads as well as ones from production web-serving applications. Our algorithm outperforms state of the art LSM-DS implementations, improving throughput by 1.5x to 2.5x. Moreover, cLSM demonstrates superior scalability with the number of cores (successfully exploiting twice as many cores as the competition).
UR - http://www.scopus.com/inward/record.url?scp=84929603680&partnerID=8YFLogxK
U2 - 10.1145/2741948.2741973
DO - 10.1145/2741948.2741973
M3 - منشور من مؤتمر
T3 - Proceedings of the 10th European Conference on Computer Systems, EuroSys 2015
BT - Proceedings of the 10th European Conference on Computer Systems, EuroSys 2015
T2 - 10th European Conference on Computer Systems, EuroSys 2015
Y2 - 21 April 2015 through 24 April 2015
ER -