libmdbx 0.10.4 带有各种改进和错误修复

释放 版本 0.10.4 库 “libmdbx” 其中总共, 对 160 个文件进行了 57 多次更改,添加了约 5000 行并删除了约 2500 行. 对于那些不熟悉 libmdbx 的人,您应该知道这是一组库,它们是键值类的紧凑、高性能嵌入式数据库的实现。

历史上, libmdbx 是对 LMDB DBMS 的深度改造 并在可靠性、功能集和性能方面优于其前身。 与 LMDB 相比,libmdbx 非常重视代码质量、API 稳定性、测试和自动化检查。 验证数据库结构完整性的实用程序提供了一些恢复选项。

从技术上讲, libmdbx 提供 ACID、严格的更改序列化和非阻塞读取以及跨内核的线性缩放 CPU的。 支持自动压缩、自动数据库大小控制和排名查询估计。 自 2016 年以来,这些项目一直由 Positive Technologies 资助,并自 2017 年起用于其产品中。

对于 libmdbx, 提供 C++ API, 以及与 Rust、Haskell、Python、NodeJS、Ruby、Go、Nim 爱好者兼容的绑定。 对于 libfpta,只有 C/C++ 头文件形式的 API 描述是公开可用的。

除了支持Linux、Windows、MacOS、Android、iOS、FreeBSD、DragonFly、Solaris、OpenSolaris、OpenIndiana、NetBSD、OpenBSD等兼容系统 POSIX.1-2008。

libmdbx 0.10.4 的主要新特性

在这个新版本的 libmdbx 0.10.4 中 开发人员致力于能够提供可玩构建的能力, 此外,还改进了测试并扩展了测试脚本,以检查数据库中页面树和 GC 内容的所有可实现的非同构状态。

在 C++ API 中修复了一次“noexcept”, 为“cursor::erase()”方法添加了额外的重载, 通过使用“std :: string”来确保对齐(当前用于 CLANG libstdc ++)减轻了缓冲区的实现

此外,还强调 进行了分阶段核查,并增加了一系列核查 以确保数据库在故意损坏的情况下的稳定性。

另一方面,需要强调的是,在 CMake 脚本中改进了对 LTO(链接时间优化)所需的编译器组件的搜索,此外同时阅读器的最大数量已增加到 32.767,并且性能也有所提高。使用 Valgrind 和 AddressSanitizer 时得到改进。

关于错误修复 在这个新版本中制作的,提到了以下内容:

  • 修复了在极少数情况下,提交事务期间可能发生循环/崩溃的错误。 Positive Technologies 的专家在对他们自己的产品进行内部测试时发现了这个问题。
  • 修复了在更改大型事务中的数据时出现罕见的意外 MDBX_PROBLEM 错误的脏页溢出算法(选择性逐出修改的数据库页)中的回归。
  • 修复了轻微的 UndefinedBehaviorSanitizer 和 Coverity Scan 问题。
    修复了旧库版本创建的数据库图像中嵌套的页面上的陈旧和未使用的内部标志检查“P_DIRTY”。
  • 修复了在 MDBX_NOTLS 模式下工作时在 Windows 中递归使用 SRW 锁(不使用线程本地存储),修复了系统时间更改时的 bootid 生成,改进了 WSL1 和 WSL2 的检测,添加了使用打开挂载的 Plan 9 数据库的功能驱动程序。

最后 如果您有兴趣了解更多有关它的信息 关于这个新版本,您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。