B+ Tree
Erlang中是否有任何已知的开源数据结构实现?
问问题
1826 次
3 回答
6
eleveldb
如果您真的需要 B+ 树,我肯定会建议您研究应用程序。关键是您希望将数据存储在树的叶子中,在磁盘上离线,因为这通常是 B+-trees 的一个选项。还有一个纯 Erlang 的 LevelDB 变体,hanoidb
它也很不错,由 Kresten Krab Thorup 编写。相同的使用领域。
如果您需要内存存储,您应该查看 ETS 或 Mnesia(后者用于分发)。在 Erlang 中,这些往往是最快的解决方案,因为您具有永远不会碰到磁盘的优势。如果您可以对数据进行标准键/值查找,而无需在 Mnesia 的事务上下文中运行(进行脏读),则尤其如此。典型的查找速度是 5-10 纳秒。
于 2012-11-16T16:24:31.930 回答
3
如果您不想侵入开源数据库系统,这只是一种选择:
Chris Okasaki 的纯函数式数据结构可以让您对自己实现它有所了解。根据我的经验,B+ 树本身并不复杂。
如果您既想要内存存储又想要比 ets 和 mnesia 更底层(在某种意义上)的东西,我建议您使用gb_trees 。
于 2012-11-17T04:35:40.333 回答
2
据我所知,没有可用的独立库。然而,CouchDB 源代码非常易读并且实现得很好。
于 2012-11-16T16:24:24.210 回答