TY - GEN
T1 - Oak
T2 - 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2020
AU - Meir, Hagar
AU - Basin, Dmitry
AU - Bortnikov, Edward
AU - Braginsky, Anastasia
AU - Gottesman, Yonatan
AU - Keidar, Idit
AU - Meir, Eran
AU - Sheffi, Gali
AU - Zuriel, Yoav
N1 - Publisher Copyright: © 2020 Association for Computing Machinery.
PY - 2020/2/19
Y1 - 2020/2/19
N2 - Efficient ordered in-memory key-value (KV-)maps are paramount for the scalability of modern data platforms. In managed languages like Java, KV-maps face unique challenges due to the high overhead of garbage collection (GC). We present Oak, a scalable concurrent KV-map for environments with managed memory. Oak offloads data from the managed heap, thereby reducing GC overheads and improving memory utilization. An important consideration in this context is the programming model since a standard object-based API entails moving data between the on- and off-heap spaces. In order to avoid the cost associated with such movement, we introduce a novel zero-copy (ZC) API. It provides atomic get, put, remove, and various conditional put operations such as compute (in-situ update). We have released an open-source Java version of Oak. We further present a prototype Oak-based implementation of the internal multidimensional index in Apache Druid. Our experiments show that Oak is often 2x faster than Java’s state-of-the-art concurrent skiplist.
AB - Efficient ordered in-memory key-value (KV-)maps are paramount for the scalability of modern data platforms. In managed languages like Java, KV-maps face unique challenges due to the high overhead of garbage collection (GC). We present Oak, a scalable concurrent KV-map for environments with managed memory. Oak offloads data from the managed heap, thereby reducing GC overheads and improving memory utilization. An important consideration in this context is the programming model since a standard object-based API entails moving data between the on- and off-heap spaces. In order to avoid the cost associated with such movement, we introduce a novel zero-copy (ZC) API. It provides atomic get, put, remove, and various conditional put operations such as compute (in-situ update). We have released an open-source Java version of Oak. We further present a prototype Oak-based implementation of the internal multidimensional index in Apache Druid. Our experiments show that Oak is often 2x faster than Java’s state-of-the-art concurrent skiplist.
KW - Concurrent data structures
KW - Key-value maps
KW - Memory management
UR - http://www.scopus.com/inward/record.url?scp=85082394923&partnerID=8YFLogxK
U2 - 10.1145/3332466.3374526
DO - 10.1145/3332466.3374526
M3 - منشور من مؤتمر
T3 - Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP
SP - 17
EP - 31
BT - PPoPP 2020 - Proceedings of the 2020 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Y2 - 22 February 2020 through 26 February 2020
ER -