Jiffy: a lock-free skip list with batch updates and snapshots
Jiffy: a lock-free skip list with batch updates and snapshots
复制标题
Jiffy:具有批量更新和快照的无锁跳过列表
DOI:
10.1145/3503221.3508437
复制
发表时间:
2021
期刊:
影响因子:
--
通讯作者:
P. Wojciechowski
中科院分区:
文献类型:
--
作者:
Tadeusz Kobus;Maciej Kokociński;P. Wojciechowski
In this paper we introduce Jiffy, the first lock-free, linearizable, ordered key-value index that offers both (1) batch updates, i.e., put and remove operations that are executed atomically, and (2) consistent snapshots used by, e.g., range scan operations. Jiffy is built as a multiversioned lock-free skip list and relies on system-provided timestamps (e.g., on x86_64 obtained through the Time Stamp Counter register) to generate version numbers at minimal cost. For faster skip list traversals and better utilization of CPU caches, key-value entries are grouped into immutable objects called revisions. By (automatically) controlling the size of new revisions, our index can adapt to varying contention levels (e.g., smaller revisions are more suited for write-heavy workloads). Structure modifications to the index, which result in changing the size of revisions, happen through (lock-free) skip list node split and merge operations that are carefully coordinated with the update operations. Despite rich semantics, Jiffy offers highly scalable performance across varied workloads. Compared to Jiffy's lock-based rivals that support batch updates, our index can execute large batch updates up to 7.4 times more efficiently. Moreover, Jiffy often outperforms the state-of-the-art lock-free ordered indices that feature linearizable range scan operations but lack batch updates.