現在のバージョンは、完全な C++ サポートを備えた長期安定バージョン 1.0 をリリースするという意図と、新しい C++ API の凍結に対する準備ができていないためにリリースを遅らせることを躊躇するという間の妥協案です。 提示されたリリースは、ライブラリの安定化と使いやすさの向上を目的とした 9 か月の作業の結果であり、暫定バージョンも含まれています
libmdbx ライブラリは単なる「フォーク」ではなく、根本的に再設計された子孫です
libmdbx が提案する
MDBX と LMDB の最も重要な違いは次のとおりです。
- 基本的に、コードの品質、API の一貫性、テスト、自動チェックにより多くの注意が払われます。
- パラメータのチェックからデータベース構造の内部監査まで、運用中の制御が大幅に強化されました。
- 自動圧縮と自動データベース サイズ管理。
- 32 ビットおよび 64 ビットのアセンブリ用の単一のデータベース形式。
- 範囲によるサンプル量の推定 (範囲クエリ推定)。
- XNUMX 倍の長さのキーとユーザーが選択可能なデータベース ページ サイズをサポートします。
- いくつかの回復機能を備えたデータベース構造の整合性をチェックするためのユーティリティ。
その後の主な革新と改善
- 迅速なサポートと質問への回答のために、オープンなシステムが構築されています。
電報グループ . - 十数個のエラーと欠点が解消されました (「.
変更ログ ). - 多くのタイプミスやスペルミスが修正され、多くの外観上の改善が行われました。
- テストシナリオが拡張されました。
- iOS、Androidのサポート、
ビルドルート ,musl ,uClibc ,WSL1 иワイン . - C++ API プレビューがリリースされました
XNUMX つのヘッダー ファイル . - Doxygen 形式の組み込みドキュメントと自動生成
オンラインドキュメント . - ソーステキストが結合されたアーカイブの自動生成が提供されます。
- トランザクションとカーソル、トランザクションとカーソルのユーザー コンテキストを準備するためのサポートが追加されました。
- B+tree MVCC スナップショットの参照整合性を制御するために、追加のメソッドが実装されました。
- データベースの MVCC スナップショットをチェックするためのサポートが追加されました。これは、回復用に切り替える機能を備えた任意のメタ ページからアクセスできます。
- テスト目的などで XNUMX つのプロセスからデータベースを再度開くためのサポートを実装しました。
- データベースを開くときの MDBX_NOSUBDIR オプションの自動処理を実装しました。
- 浮動小数点値と JavaScript の「ユニバーサル」数値から整数キーを生成する関数を追加しました。
- 合計 430 件の変更が加えられ、93 のファイルに影響があり、25 行以上が追加され、8.5 行以上が削除されました。
libmdbx のその後の開発は、最終的な C++ API、基本コードのさらなる安定化、ライブラリの使いやすさの向上、および一般的な Linux ディストリビューション用のパッケージ化に焦点を当てます。 提案された改善点の中で、次の形式のキーのサポートに注目する価値があります。
出所: オープンネット.ru