skiplist 节点的随机层高布局可以复用吗?复用后会损失多少效率

22 天前
 dacapoday

skiplist 作为常用于 LevelDB,RocksDB 中的数据结构,在每次插入新数据时,会生成随机的层高。

如果每次创建新 skiplist 时,都使用完全相同的随机函数以及 seed ,从而每个 skiplist 被填满后,其层高的布局皆相同,这样相比于每次都完全随机层高的布局,会否降低查询效率?写入又会否有所改善,因为仅需查表而非摇色子。

想法是,写入数据的顺序本身就是随机的,被复用的层高布局本身也是随机的,只是从宏观看,所创建的所有 skiplist 实例的层高布局不够随机。

717 次点击
所在节点   科技
1 条回复
MoYi123
22 天前
查表你还要额外内存呢, 用 seed 产生随机数不比查表好?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1069987

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX