コンパクトな組み込み DBMS libmdbx 0.9.1 のリリース

リリース済み ライブラリ バージョン 0.9.1 libmdbx (MDBX) 高性能でコンパクトな組み込みキー/値データベースの実装。 libmdbx コードはライセンスに基づいて配布されます OpenLDAPパブリックライセンス.

現在のバージョンは、完全な C++ サポートを備えた長期安定バージョン 1.0 をリリースするという意図と、新しい C++ API の凍結に対する準備ができていないためにリリースを遅らせることを躊躇するという間の妥協案です。 提示されたリリースは、ライブラリの安定化と使いやすさの向上を目的とした 9 か月の作業の結果であり、暫定バージョンも含まれています C++ API.

libmdbx ライブラリは単なる「フォーク」ではなく、根本的に再設計された子孫です LMDB — に基づく「キー/値」クラスのトランザクション組み込み DBMS 木B+ без プロアクティブなロギングこれにより、専用のサーバー プロセスを使用せずに、ローカル共有 (非ネットワーク) データベースを使用して、マルチスレッド プロセスが競合的かつ効率的に動作できるようになります。 基本的にlibmdbx 拡大する 先祖の機能を継承しながら、同時に欠点を排除または軽減します。 同時に、開発者によると、libmdbx は LMDB よりも若干高速で、信頼性が大幅に優れています。

libmdbx が提案する ACID、変更の厳密なシリアル化と、CPU コア全体の線形スケーリングによるノンブロッキング読み取り。 パフォーマンス テストの結果 (1 スレッド ハイパースレッド モードで 2 つの物理コアを備えた CPU i4-8U 上の 7-4600-2-4 スレッドで並列読み取り/検索リクエストを送信):

コンパクトな組み込み DBMS libmdbx 0.9.1 のリリース

MDBX と LMDB の最も重要な違いは次のとおりです。

  • 基本的に、コードの品質、API の一貫性、テスト、自動チェックにより多くの注意が払われます。
  • パラメータのチェックからデータベース構造の内部監査まで、運用中の制御が大幅に強化されました。
  • 自動圧縮と自動データベース サイズ管理。
  • 32 ビットおよび 64 ビットのアセンブリ用の単一のデータベース形式。
  • 範囲によるサンプル量の推定 (範囲クエリ推定)。
  • XNUMX 倍の長さのキーとユーザーが選択可能なデータベース ページ サイズをサポートします。
  • いくつかの回復機能を備えたデータベース構造の整合性をチェックするためのユーティリティ。

その後の主な革新と改善 以前のニュース 0.5 年 2020 月のバージョン 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

コメントを追加します