Browsing by Subject "Key-value stores"
Now showing 1 - 2 of 2
Results Per Page
Sort Options
- PublicationOpen AccessKreon: An Efficient Memory-Mapped Key-Value Store for Flash Storage(Association for Computing Machinery (ACM), 2021-01-18) Papagiannis, Anastasios; Saloustros, Giorgos; Xanthakis, Giorgos; Kalaentzis, Giorgos; González Férez, Pilar; Bilas, Angelos; Ingeniería y Tecnología de ComputadoresPersistent key-value stores have emerged as a main component in the data access path of modern data processing systems. However, they exhibit high CPU and I/O overhead. Nowadays, due to power limitations, it is important to reduce CPU overheads for data processing. In this article, we propose Kreon, a key-value store that targets servers with flash-based storage, where CPU overhead and I/O amplification are more significant bottlenecks compared to I/O randomness. We first observe that two significant sources of overhead in key-value stores are: (a) The use of compaction in Log-Structured Merge-Trees (LSM-Tree) that constantly perform merging and sorting of large data segments and (b) the use of an I/O cache to access devices, which incurs overhead even for data that reside in memory. To avoid these, Kreon performs data movement from level to level by using partial reorganization instead of full data reorganization via the use of a full index per-level. Kreon uses memory-mapped I/O via a custom kernel path to avoid a user-space cache. For a large dataset, Kreon reduces CPU cycles/op by up to 5.8×, reduces I/O amplification for inserts by up to 4.61×, and increases insert ops/s by up to 5.3×, compared to RocksDB.
- PublicationOpen AccessTebis: Index Shipping for Efficient Replication in LSM Key-Value Stores(Association for Computing Machinery (ACM), 2022-04-05) Vardoulakis, Michalis; Saloustros, Giorgos; González Férez, Pilar; Bilas, Angelos; Ingeniería y Tecnología de ComputadoresKey-value (KV) stores based on LSM tree have become a foundational layer in the storage stack of datacenters and cloud services. Current approaches for achieving reliability and availability favor reducing network traffic and send to replicas only new KV pairs. As a result, they perform costly compactions to reorganize data in both the primary and backup nodes, which increases device I/O traffic and CPU overhead, and eventually hurts overall system performance. In this paper we describe Tebis, an efficient LSM-based KV store that reduces I/O amplification and CPU overhead for maintaining the replica index. We use a primary-backup replication scheme that performs compactions only on the primary nodes and sends pre-built indexes to backup nodes, avoiding all compactions in backup nodes. Our approach includes an efficient mechanism to deal with pointer translation across nodes in the pre-built region index. Our results show that Tebis reduces pressure on backup nodes compared to performing full compactions: Throughput is increased by 1.1 − 1.48×, CPU efficiency is increased by 1.06 − 1.54×, and I/O amplification is reduced by 1.13 − 1.81×, without increasing server to server network traffic excessively (by up to 1.09 − 1.82×).