发布紧凑型嵌入式 DBMS libmdbx 0.9.1

发布 库版本0.9.1 库数据库 (MDBX) 高性能、紧凑型嵌入式键值数据库的实现。 libmdbx 代码是根据许可证分发的 OpenLDAP 公共许可证.

当前版本是发布具有完整 C++ 支持的长期稳定版本 1.0 的意图和由于不准备冻结新的 C++ API 而不愿延迟发布的意图之间的折衷。 所发布的版本是 9 个月的工作成果,旨在稳定库并提高其可用性,还包括初步版本 C++ API.

libmdbx 库不仅仅是一个“分支”,而且是一个彻底重新设计的后代 LM数据库 — 基于“键值”类的事务嵌入式 DBMS 树B+主动记录,它允许多线程进程与本地共享(非网络)数据库竞争且高效地工作,而无需专用服务器进程。 libmdbx 从根本上讲 展开 其祖先的能力,同时消除或减轻缺点。 同时,根据开发人员的说法,libmdbx 比 LMDB 更快一点,而且可靠性明显更高。

libmdbx 建议 、严格的更改序列化和跨 CPU 内核线性缩放的非阻塞读取。 性能测试结果(在具有 1 个物理核心的 CPU i2-4U 上以 8 线程超线程模式以 7-4600-2-4 线程发送并行读取/搜索请求):

发布紧凑型嵌入式 DBMS libmdbx 0.9.1

MDBX 和 LMDB 之间最重要的区别:

  • 从根本上来说,更加关注代码质量、API 一致性、测试和自动检查。
  • 从检查参数到数据库结构的内部审计,操作过程中的控制能力显着增强。
  • 自动压缩和自动数据库大小管理。
  • 适用于 32 位和 64 位程序集的单一数据库格式。
  • 按范围估计样本量(范围查询估计)。
  • 支持两倍长的密钥和用户可选的数据库页面大小。
  • 用于检查数据库结构完整性并具有某些恢复功能的实用程序。

改造后的主要创新和改进 之前的新闻 0.5 年 2020 月推出 XNUMX 版本:

  • 已经创建了一个开放系统,用于及时支持和回答问题。 电报群.
  • 十多个错误和缺点已被消除(见。 更改日志).
  • 许多错别字和拼写错误已得到修复,并且进行了许多外观改进。
  • 测试场景已扩大。
  • 支持iOS、安卓、 建根, 麝香, uClibc, WSL1 и 酒红色.
  • C++ API 预览版发布于 一个头文件.
  • 内置 Doxygen 格式的文档并自动生成 在线文档.
  • 提供了自动生成带有合并源文本的档案。
  • 添加了对准备事务和游标、事务和游标的用户上下文的支持。
  • 已实施其他方法来控制 B+tree MVCC 快照中的引用完整性。
  • 添加了对检查数据库 MVCC 快照的支持,可通过任何具有切换恢复能力的元页面进行访问。
  • 实现了对从一个进程重新打开数据库以进行测试等的支持。
  • 打开数据库时实现了 MDBX_NOSUBDIR 选项的自动处理。
  • 添加了从浮点值和 JavaScript“通用”数字生成整数键的函数。
  • 总共进行了 430 处更改,影响了 93 个文件,添加了 25 多行,删除了 8.5 多行。

libmdbx 的后续开发将侧重于最终的 C++ API、基础代码的进一步稳定、提高库的可用性以及针对流行 Linux 发行版的打包。 在提议的改进中,值得注意的是对以下格式的密钥的支持 消息包.

来源: opennet.ru

添加评论