11 个稳定版本

2.7.0 2022年10月19日
2.6.2 2022年6月5日
2.6.1 2021年12月16日
2.2.0 2021年11月6日
1.0.0 2021年9月20日

#685数据库接口

每月下载量 23
用于 raindb

MIT 许可证

97KB
1.5K SLoC

Hopscotch - 用 Rust 实现的跳表

如其名。因为它会跳过。

Build Status Crates.io

动机

注意这是一个玩具项目,目前不打算用于生产环境...也许吧。其主要用途将是作为数据库内部教学项目的一部分。

详细信息

v1 版本的算法实现与 Pugh 的原始论文中描述的算法基本一致。

使用几何分布来确定新键是否属于某一层(相当于抛硬币)。几何分布默认为 p = 0.25,但这是可配置的。

并发

注意:这里可能存在一些未定义的行为(听起来很糟糕)。除非你真的想尝试一些疯狂的技巧,否则不要使用这个。

通过启用 concurrent 功能,现在有一种跳表版本允许无锁并发读取。这个跳表有几个主要的功能差距

  1. 调用者必须在插入之前获取跳表的锁(例如 MutexRwLock)。

  2. 尚未实现删除,因为我的用例不需要删除。

计划随后进行适当的完全并发和几乎无锁跳表的实现。

其他艺术

参考

依赖项

~1MB
~21K SLoC