Title
Oak - a scalable off-heap allocated key-value map.
Abstract
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.
Year
DOI
Venue
2020
10.1145/3332466.3374526
PPoPP '20: 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming San Diego California February, 2020
Keywords
DocType
ISBN
memory management, concurrent data structures, key-value maps
Conference
978-1-4503-6818-6
Citations 
PageRank 
References 
0
0.34
0
Authors
9
Name
Order
Citations
PageRank
Hagar Meir132.49
Dmitry Basin2243.60
Edward Bortnikov316315.70
Anastasia Braginsky4976.22
Yonatan Gottesman501.69
Idit Keidar61892155.01
Eran Meir700.34
Gali Sheffi831.38
Yoav Zuriel910.69