【发布时间】:2011-04-02 12:06:59
【问题描述】:
c#(开源)中是否有任何基于文件系统的 B+ 树实现。我找到了一些项目,但这些不是基于文件(磁盘)的实现。我正在专门寻找基于文件系统的 B+ 树。
【问题讨论】:
-
什么...过于本地化了..?来吧伙计们
c#(开源)中是否有任何基于文件系统的 B+ 树实现。我找到了一些项目,但这些不是基于文件(磁盘)的实现。我正在专门寻找基于文件系统的 B+ 树。
【问题讨论】:
更新:
我已经添加了一些benchmarks of managed B-Tree implementations 供您欣赏,如果您正在研究这类事情。
BplusDotNet “...已知在删除时有些错误”
我发现情况正好相反,RaptorDB 1.6 正在破坏状态,而 BplusDotNet 1.0.2082.16942 似乎运行良好。
原文:
为了完整起见,我将在此处添加我自己的实现。
【讨论】:
T ReadFrom(Stream stream) 接口处被打破,导致要读取更多字节(超出“结束”),从而杀死加密校验和。
ReadFrom。由于我们正在写入 => 读取(背靠背),因此读取发生在缓存之外。但是,如果磁盘被击中一次(在应用程序级别为 1:50K 次),我们就会看到该错误。我们的解决方法是在 BPlusTree 库之外处理序列化,并在 BPlusTree 中使用 byte[] 接口。
http://bplusdotnet.sourceforge.net/ 但众所周知,这个在删除时有些错误。
另一个似乎运行良好的:
http://www.codeproject.com/KB/database/RaptorDB.aspx
RaptorDB 允许您使用 b+ 树或哈希索引来存储键/值。您可以选择何时创建文件。
【讨论】: