skip list是一种非常适合实现高度并发和有序集的数据结构 . This article概述了可以改进天真实施的各种方法:
Improvement 1 通过存储带有数据的前向指针来减少浪费的空间 . 所以...
......而不是这个:
Naive skip list implementation
...做这个:
Improved skip list implementation
Improvement 2 通过unrolling最底层链接列表减少了浪费的空间并改善了缓存局部性 .
Skip list with unrolled bottom-most list
鉴于这两项改进,我们几乎处于磁盘实现清晰的程度 . 但是,我想要一些有用的理解:
-
如果我们展开最底层链接列表元素,每个块是否对应磁盘上的文件?
-
我们如何在磁盘上存储前向指针堆栈?我们将它们与展开的列表元素一起存储,还是作为单独的文件存储?如果堆栈很高,我们是否需要将它们分解为磁盘上的多个文件?或者只是逐页阅读?
-
一般来说,这是否是实现磁盘跳过列表的方式?