cdb - 大文件的常量键值存储(数百GB)

时间:2012-03-15 16:48:07

标签: database key-value key-value-store cdb

我需要一个类似于cdb(常量数据库)的工具,它允许我在索引文件中存储大量数据集(在数百GB范围内)。 CDB是理想的候选者,但它有2 GB的文件大小限制,所以它不适合。 我正在寻找的功能是支持二进制密钥和值的持久键值存储。创建数据库后,它是只读的,永远不会被修改。 你能推荐一些工具吗?顺便说一句,存储开销应该很小,因为我将存储数十亿条记录。

BTW我正在寻找一个数据库管理库(嵌入式),而不是一个独立的服务器。可以在C程序中使用的东西。

谢谢, RG

3 个答案:

答案 0 :(得分:5)

另一种选择是mcdb,它是从Dan J. Bernstein的cdb扩展而来的。

https://github.com/gstrauss/mcdb/

mcdb支持非常大的常量数据库,并且比数据库创建和数据库访问都快。尽管如此,创建一个数百GB的数据库可能需要一些时间。 mcdb可以在几秒钟内为缓存数据创建一个千兆字节大小的数据库,或者从冷缓存启动时在一分钟左右创建一个千兆字节大小的数据库。

https://github.com/gstrauss/mcdb/blob/master/t/PERFORMANCE

(披露:我是mcdb的作者)

答案 1 :(得分:1)

有hamsterdb(我是作者),berkeleydb,tokyo cabinet。

hamsterdb使用btree,因此对数据进行排序。 tokyo cabinet是一个哈希表,因此没有排序。 berkeleydb可以做到这两点。

不用说我会推荐什么;)

所有这些都可以链接到C应用程序。他们都不应该有2GB的限制。

再见 克里斯托弗

答案 2 :(得分:1)

如果您的值很大而且键很小,您也可以考虑使用redis http://redis.io