寻找磁盘绑定的b-tree示例

时间:2011-05-30 05:18:23

标签: c# algorithm disk b-tree

也许我的google-foo只是不适合鼻烟,但我想玩一个绑定到磁盘的b-tree alogrithm。由于大多数教程和示例都在内存中,因此它们假定随机访问内存,其中树中的更改节点足够简单,但除了I / O密集型重写或使用内存映射文件之外,我无法想到一个好的方法

理论会很好,C#或Java会更好。

编辑:我为缺乏清晰度而道歉。我不是在寻找可以使用的产品或代码库,而是一个示例或说明性代码库,以便更好地理解如何构建磁盘支持的b树。

2 个答案:

答案 0 :(得分:2)

最快的Key Value DB之一(也包含与B + Trees一起使用的Key Value DB)是Tokyo Cabinet(或Kyoto Cabinet):)。当我对B + Trees进行基准测试时,我已经使用它了,代码很容易理解。它是用C语言编写的,但它也有Java绑定...... 东京内阁: http://fallabs.com/tokyocabinet/

Berkley DB也可以使用B + Tree。然而,当我对Berkley DB进行基准测试时,与东京内阁相比,它的速度非常慢...... http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html

答案 1 :(得分:1)

首先,请看第2,第3,第4和第2位。来自google的第5个结果。

其次,请参阅此stackoverflow thread,其中包含非常相似的问题。

第三,如果您使用MSSQL作为示例,您可以阅读一些内容here并按照描述here可视化页面(就像缓存行拆分一样,最小化此类拆分很重要)。此外,MSSQL例如对可以索引的数据施加了大小限制,该限制为8k =页面大小。

第四,看到我的问题的答案,我不得不问这个问题能够提供这个答案here 或者,您可以使用十六进制编辑器查看数据库文件,并查看事物的映射方式,但这是极端的。