skip list是一种非常适合实现高度并发和有序集的数据结构 . This article概述了可以改进天真实施的各种方法:


Improvement 1 通过存储带有数据的前向指针来减少浪费的空间 . 所以...

......而不是这个:

Naive skip list implementation

...做这个:

Improved skip list implementation

Improvement 2 通过unrolling最底层链接列表减少了浪费的空间并改善了缓存局部性 .

Skip list with unrolled bottom-most list


鉴于这两项改进,我们几乎处于磁盘实现清晰的程度 . 但是,我想要一些有用的理解:

  • 如果我们展开最底层链接列表元素,每个块是否对应磁盘上的文件?

  • 我们如何在磁盘上存储前向指针堆栈?我们将它们与展开的列表元素一起存储,还是作为单独的文件存储?如果堆栈很高,我们是否需要将它们分解为磁盘上的多个文件?或者只是逐页阅读?

  • 一般来说,这是否是实现磁盘跳过列表的方式?