OrioleDB,PostgreSQL 的新存儲引擎

黃鶯數據庫

OrioleDB 結合了磁盤引擎和內存引擎的優點,提高了數據庫性能並降低了成本

近日,有消息稱, PostgreSQL 的新存儲引擎稱為“OrioleDB”,由 OrioleData 創建。

目標 來自 OrioleDB 的是 提供快速且緊湊的存儲o 隨著時間的推移不會導致數據庫文件過載 並且不需要使用 VACUUM 過程 它定期運行以進行垃圾收集。

它通過在行和塊級別實現撤消記錄來實現此目的。,以及自動頁面合併。 行和塊級撤消日誌提供更細粒度的控制,從而可以更有效地處理數據更改。 自動頁面合併功能在後台不知疲倦地工作,整合碎片數據,進一步提高系統效率。

關於 OrioleDB

正如我們已經提到的,OrioleDB 是 PostgreSQL 的一個新引擎,其開發的主要目標是:防止表過載並消除像 VACUUM 這樣的定期維護的需要。

OrioleDB 中使用的結構允許更有效地處理操作 數據庫中的數據修改並替換釋放的塊,而沒有及時累積它們。 繞過 VACUUM 的能力是通過使用回滾日誌來實現的 (撤消日誌)在塊和單獨行級別工作,以及自動合併數據頁的系統。

行級回滾記錄允許在適當位置進行數據替換的更新,而無需釋放當前記錄並創建新記錄。 塊級回滾日誌記錄允許您在 DELETE 操作後立即搶占元組並釋放存儲空間,即使它們在失敗的事務中仍然可見。 為了減少因大量刪除而產生的存儲碎片,各個數據頁會在後台自動合併。

OrioleDB 中的 WAL 事務日誌保存在行級別,而不是塊中,這使得它易於在分佈式系統中使用,並允許並行日誌記錄部署。 可以創建具有多個活動主服務器的分佈式配置,為了使它們保持同步狀態,使用 Raft 共識算法。

突出的特徵 從 OrioleDB 中,您可以看到 不使用鎖讀取數據頁,直接綁定RAM中的頁 對於永久存儲中的頁面,使用CoW(寫時復制)機制通過設置檢查點來隨時創建一致的快照。 64位值用於事務標識符,其使用解決了計數器溢出的問題。

使用 OrioleDB 允許 不僅消除了手動操作的需要,簡化了 DBMS 維護,而且 提高績效。 例如,通過就地更新數據可以實現更好的性能,這可以避免更改與存儲更改值無關的索引。 該引擎還支持以壓縮形式存儲數據(壓縮是使用 ZSTD 算法執行的,並在可變大小塊級別實現),這使您可以將磁盤上數據庫的大小減少 4-5 倍。

使用 OrioleDB 測試具有 5 個索引的單表設置,結果顯示 TPS(每秒處理的事務數)增加了 5 倍,CPU 負載減少了 2.3 倍,每個事務的 I/O 操作減少了 22 倍。

終於 如果您有興趣了解更多信息,你應該知道引擎是用 C 編寫的並且 它是分佈式的 根據 PostgreSQL 許可證,並作為插件實現,需要更改核心 PostgreSQL 代碼庫。

應該指出的是,就目前的形式而言,該引擎處於 Beta 測試階段,尚不建議用於生產部署。

您可以在以下網址查看原始出版物的詳細信息 以下鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。