發布緊湊型嵌入式 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 建議 ACID、嚴格的更改序列化和跨 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, 世界超級聯賽1 и 葡萄酒.
  • C++ API 預覽版發佈於 一個頭檔.
  • 內建 Doxygen 格式的文件並自動生成 線上文件.
  • 提供了自動產生帶有合併來源文字的檔案。
  • 新增了對準備事務和遊標、事務和遊標的使用者上下文的支援。
  • 已實施其他方法來控制 B+tree MVCC 快照中的參考完整性。
  • 新增了對檢查資料庫 MVCC 快照的支持,可透過任何具有切換復原能力的元頁面進行存取。
  • 實現了對從一個進程重新打開資料庫以進行測試等的支援。
  • 開啟資料庫時實現了 MDBX_NOSUBDIR 選項的自動處理。
  • 新增了從浮點值和 JavaScript“通用”數字產生整數鍵的函數。
  • 總共進行了 430 處更改,影響了 93 個文件,增加了 25 多行,刪除了 8.5 多行。

libmdbx 的後續開發將專注於最終的 C++ API、基礎程式碼的進一步穩定、提高庫的可用性以及針對流行 Linux 發行版的打包。 在提議的改進中,值得注意的是對以下格式的密鑰的支持 消息包.

來源: opennet.ru

添加評論