繁体   English   中英

Erlang中的B +树数据结构

[英]B+ Tree Data Structure in Erlang

在Erlang中是否有任何开源已知的B+ Tree数据结构实现?

如果你真的需要一个B +树,我肯定会建议你查看eleveldb应用程序。 关键是你要将数据存储在树的叶子中,离线在磁盘上,因为这是B +树通常是一个选项。 LevelDB的纯Erlang中还有一个名为hanoidb的变体,它也非常好,由Kresten Krab Thorup编写。 相同的使用领域。

如果您需要内存存储,您应该查看ETS或Mnesia(后者用于分发)。 在Erlang中,这些往往是最快的解决方案,因为您具有永不击中磁盘的优势。 如果您可以对数据执行标准键/值查找,而不需要在Mnesia中的事务上下文中运行(执行脏读),则尤其如此。 典型的查找速度为5-10纳秒。

如果您不想入侵开源数据库系统,那么只需另一种选择:

Chris Okasaki的纯功能数据结构可以为您提供一些自己实现它的洞察力。 从我的经验来看,B +树本身并不复杂。

我建议使用gb_trees,如果你想要内存存储和更低级别(在某种意义上)比ets和mnesia。

我不知道有一个独立的库。 但是, CouchDB源代码非常易读且实现良好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM