什么是 C 中好的开源 B-tree 实现? [关闭]
Posted
技术标签:
【中文标题】什么是 C 中好的开源 B-tree 实现? [关闭]【英文标题】:What is a good open source B-tree implementation in C? [closed] 【发布时间】:2010-09-07 03:18:45 【问题描述】:我正在寻找用 C 编写的 B-tree 库的精简且构建良好的开源实现。它需要在非 GPL 许可下才能用于商业应用程序。理想情况下,该库支持将 B-tree 索引存储/操作为磁盘文件,以便可以使用可配置(即:最小)RAM 占用空间构建大型树。
注意:由于似乎有些混淆,二叉树和 B-Tree 不是一回事。
【问题讨论】:
【参考方案1】:SQLite implementation 的作者已放弃版权。如果 LGPL 没问题,那么也许你可以使用GNUpdate's implementation?
【讨论】:
GNUpdate 是一个 B+Tree【参考方案2】:查看 QDBM:http://fallabs.com/qdbm/。它是 LGPL(可用于商业应用程序),使用任意键/值对实现磁盘支持的哈希和/或 B+ 树,并构建在各种平台上。
【讨论】:
不错! - 这是对列表的一个很好的补充。谢谢! 再想一想,我认为这也应该是首选答案。【参考方案3】:如果 LGPL 没问题,那么 Tokyo Cabinet 可能符合要求。 LGPL 允许与非免费应用程序链接,而不会对最终产品的分发添加任何限制。
【讨论】:
好像移到fallabs.com/tokyocabinet了。 Kyoto Cabinet 是 Tokyo Cabinet 的 GPL 后续版本,但使用一段时间后它有一些非常不好的习惯,例如 std::bad_alloc 没有异常处理等应用程序崩溃或未定义和无限制的内存使用模式。【参考方案4】:Attractive Chaos 实现 kbtree.h。这是一个高效的 B-tree 库
【讨论】:
【参考方案5】:我遇到了this - 用于 SCM、Java、C# 和 C 的 WB B-Tree 数据库,它是一个 GNU 包。
【讨论】:
【参考方案6】:也许你可以考虑 berkeley db。它在内部使用 b-tree。
【讨论】:
以上是关于什么是 C 中好的开源 B-tree 实现? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章