庫版本0.9.1 (MDBX) 實現高效能、緊湊的嵌入式鍵值資料庫。 libmdbx 程式碼是根據授權分發的 .
目前版本是發布具有完整 C++ 支援的長期穩定版本 1.0 的意圖和由於不準備凍結新的 C++ API 而不願延遲發布的意圖之間的折衷。 所發布的版本是 9 個月的工作成果,旨在穩定庫並提高其可用性,還包括初步版本 .
libmdbx 庫不僅僅是一個“分支”,而且是一個徹底重新設計的後代 — 基於「鍵值」類別的事務嵌入式 DBMS 沒有 ,它允許多執行緒進程與本地共享(非網路)資料庫競爭且有效率地工作,而無需專用伺服器進程。 libmdbx 從根本上講 其祖先的能力,同時消除或減輕缺點。 同時,根據開發人員的說法,libmdbx 比 LMDB 更快一點,而且可靠性明顯更高。
libmdbx 建議 、嚴格的更改序列化和跨 CPU 核心線性縮放的非阻塞讀取。 效能測試結果(在具有 1 個實體核心的 CPU i2-4U 上以 8 執行緒超執行緒模式以 7-4600-2-4 執行緒傳送並行讀取/搜尋請求):
MDBX 和 LMDB 之間最重要的差異:
- 從根本上來說,更加關注程式碼品質、API 一致性、測試和自動檢查。
- 從檢查參數到資料庫結構的內部審計,操作過程中的控制能力顯著增強。
- 自動壓縮和自動資料庫大小管理。
- 適用於 32 位元和 64 位元組件的單一資料庫格式。
- 按範圍估計樣本量(範圍查詢估計)。
- 支援兩倍長的金鑰和使用者可選的資料庫頁面大小。
- 用於檢查資料庫結構完整性並具有某些復原功能的實用程式。
改造後的主要創新和改進 0.5 年 2020 月推出 XNUMX 版本:
- 已經創建了一個開放系統,用於及時支援和回答問題。 .
- 十多個錯誤和缺點已被消除(見。 ).
- 許多錯字和拼寫錯誤已得到修復,並且進行了許多外觀改進。
- 測試場景已擴大。
- 已實現對iOS的支援。 Android, , , , и .
- C++ API 預覽版發佈於 .
- 內建 Doxygen 格式的文件並自動生成 .
- 提供了自動產生帶有合併來源文字的檔案。
- 新增了對準備事務和遊標、事務和遊標的使用者上下文的支援。
- 已實施其他方法來控制 B+tree MVCC 快照中的參考完整性。
- 新增了對檢查資料庫 MVCC 快照的支持,可透過任何具有切換復原能力的元頁面進行存取。
- 實現了對從一個進程重新打開資料庫以進行測試等的支援。
- 開啟資料庫時實現了 MDBX_NOSUBDIR 選項的自動處理。
- 新增了從浮點值和 JavaScript“通用”數字產生整數鍵的函數。
- 總共進行了 430 處更改,影響了 93 個文件,增加了 25 多行,刪除了 8.5 多行。
libmdbx 的未來發展將專注於完善 C++ API、進一步穩定基礎程式碼、提高程式庫的可用性以及為流行的發行版創建軟體包。 Linux在提出的改進方案中,值得注意的是對以下格式金鑰的支援: .
來源: opennet.ru
