A finger B-Tree是一个 B 树,它跟踪用户指定的叶子上的关联“汇总”操作。合并节点时,操作用于合并摘要;当节点被拆分时,使用节点的孙节点(但没有更深的节点)重新计算摘要。
通过在每次拆分/合并时更新摘要数据,手指 B-Tree 能够在最多 O(log n) 页面查找中回答对任何任意键范围内的摘要的查询(即沿着从根向下到范围的 floorkey 和范围的 ceilkey 的路径)。
我不认为 LMDB 支持开箱即用,但我很乐意错了。有人知道添加它的 LMDB 分支或变体吗?如果没有,是否有另一个轻量级持久(不一定是事务性)磁盘 BTree 库?
最佳答案
RocksDB 提供 custom compaction filters和 merge operators ,我认为它可以用于以相当有效的方式实现此类摘要。当然,它的架构与 LMDB 有很大不同。
关于key-value-store - 提供手指 B 树的 LMDB 变体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43416362/