论文标题
Splay-List:分配自适应并发跳线列表
The Splay-List: A Distribution-Adaptive Concurrent Skip-List
论文作者
论文摘要
有效的并发数据结构的设计和实施引起了极大的关注。但是,这项工作的大部分都集中在并发数据结构上,这些数据结构提供了良好的\ emph {worst-case}的保证。在实际的工作负载中,通常以不同的速率访问对象,因为访问分布可能是不均匀的。有效的分布自适应数据结构在顺序的情况下是已知的,例如张开的树;但是,在并发情况下,它们通常很难有效地翻译。 在本文中,我们研究了分布 - 自适应并发数据结构,并提出了一种称为Splay-List的新设计。在高级别上,Splay列表类似于标准的Skip列表,其关键区别是,每个元素的高度都会动态适应其访问率:流行元素``移动'',而少数值的元素的高度下降。我们表明,Splay-List为一部分操作提供了订单最佳的摊销复杂性界限,同时可与有效的并发实现相提并论。实验结果表明,Splay-List可以利用分布自适应来改善经典并发设计的性能,并且在某些情况下可以胜过唯一以前唯一的分配自适应设计。
The design and implementation of efficient concurrent data structures have seen significant attention. However, most of this work has focused on concurrent data structures providing good \emph{worst-case} guarantees. In real workloads, objects are often accessed at different rates, since access distributions may be non-uniform. Efficient distribution-adaptive data structures are known in the sequential case, e.g. the splay-trees; however, they often are hard to translate efficiently in the concurrent case. In this paper, we investigate distribution-adaptive concurrent data structures and propose a new design called the splay-list. At a high level, the splay-list is similar to a standard skip-list, with the key distinction that the height of each element adapts dynamically to its access rate: popular elements ``move up,'' whereas rarely-accessed elements decrease in height. We show that the splay-list provides order-optimal amortized complexity bounds for a subset of operations while being amenable to efficient concurrent implementation. Experimental results show that the splay-list can leverage distribution-adaptivity to improve on the performance of classic concurrent designs, and can outperform the only previously-known distribution-adaptive design in certain settings.