相关疑难解决方法(0)

在C++或C中寻找基于磁盘的B +树实现

我正在寻找一个轻量级的开源分页B +树实现,它使用磁盘文件来存储树.

到目前为止,我只发现了基于内存的实现,或一些有关于QT(?!)的依赖,甚至不进行编译.

现代C++是首选,但C也会这样做.

我更喜欢避免完全嵌入式DBMS解决方案,因为:1)对于我的需求裸骨索引,可以使用最简单的磁盘文件组织就足够了,不需要并发性,原子性和其他一切.2)我使用它来构建我自己的索引,并且很可能会改变一些算法和存储布局.我想以最少的努力做到这一点.它不会是生产代码.

c c++ b-tree data-structures

26
推荐指数
2
解决办法
2万
查看次数

提升:持久存储R树?

因此,boost以R树的形式提供了良好的空间索引功能.这很整洁,但是一旦它构建完成,它似乎还不能序列化它,我错了吗?

通常的"out_archive << rtree"语法不起作用,因为rtree没有serialize()成员.在boost 1.57中似乎有一些实验代码,例如/boost/geometry/index/detail/serialization.hpp,但它实际上似乎没有编译!

所以第一个问题:有人知道如何使用boost序列化R树吗?

如果没有,那么我的第二个问题是:您将如何将索引永久存储在磁盘上以避免每次都重建它?(我有一个145M条目的数据集,构建索引需要几个小时,所以我真的不想不止一次构建它!)

c++ serialization boost boost-geometry

7
推荐指数
1
解决办法
1062
查看次数

标签 统计

c++ ×2

b-tree ×1

boost ×1

boost-geometry ×1

c ×1

data-structures ×1

serialization ×1