是否有Erlang中B+树
数据结构的已知开源实现?
如果你真的需要使用B+树,我强烈建议你考虑使用eleveldb
应用程序。重点是你想要将数据存储在树的叶子节点上,并离线保存到磁盘上,因为这通常是B+-树的选择。还有一种纯Erlang的LevelDB变体,名为hanoidb
,由Kresten Krab Thorup编写,也非常好用。适用于相同的领域。
如果你需要内存中存储数据,你应该考虑使用ETS或Mnesia(后者用于分布式存储)。在Erlang中,它们往往是最快的解决方案,因为你永远不会触及磁盘。特别是如果你可以对数据进行标准的键/值查找,而无需在Mnesia的事务上下文中运行(进行脏读取),则典型的查找速度为5-10纳秒。
如果您不想侵入开源数据库系统,那么以下是一种替代方案:
Chris Okasaki的《纯函数数据结构》可以帮助您自己实现。从我的经验来看,B+树本身并不那么复杂。
如果您需要内存存储和比ets和mnesia更低级别(在某种意义上)的东西,我建议使用gb_trees。