键值数据库(伯克利数据库的替代品?

Key-Value DB (an alternative to Berkeley DB?)

本文关键字:数据库 替代品 伯克利 键值      更新时间:2023-10-16

我正在寻找磁盘上的哈希图(伯克利数据库完全适合,但用于许可问题)。要求是:

  1. 带有商业友好许可证的FOSS(可用于商业应用,无需付费)
  2. 一个 C/C++ 接口
  3. 嵌入
  4. 体面的速度? 比SQLite更快是理想的
  5. 跨平台也会很好

欢迎任何建议。谢谢!

最近有几个

选项,它们都提供 byte[] -> byte[] 映射、原子批处理更新,并且是 BSD 许可的:

来自谷歌的Leveldb。

Facebook的RocksDB基于Leveldb的一个分支,并声称在SSD支持的存储上提供更高的性能。

尽管您的应用程序域和数据规范不清楚;RocksDB是嵌入式持久键值存储的最新解决方案,似乎适合您。Facebook的基准测试表明,对于服务器工作负载,特别是对于大于RAM容量的数据,它比LevelDB具有更好的性能。此外,它是在BSD许可证下开源的。您可以从此处找到RocksDB C++示例和更多详细信息。

*dbm 库怎么样?

DBM NDBM GDB m SDBM TDBM 和朋友

有很多选择。

如果我们严格的话,建议的主流选项都不是哈希映射。这种结构很少用于持久存储,因为一个好的哈希函数会路由到不同的存储桶,即使对于类似的键也是如此。类似的键通常意味着经常一起访问的相关数据,因此您希望避免将它们放在磁盘的远程部分。随机读取延迟可能过高。

最著名的匹配实现将是 Microsoft 更快的。