Dqlite 1.0 是 Canonical 推出的 SQLite 分散式版本

規範公司 опубликовала 重大專案發布 迪爾萊特1.0 (Distributed SQLite),開發了一個與 SQLite 相容的嵌入式 SQL 引擎,透過跨多個節點分佈處理程序來支援資料複製、故障自動復原和容錯。 DBMS 以附加到應用程式的 C 程式庫的形式實現 分發者 根據 Apache 2.0 授權(原始 SQLite 在公共領域提供)。 可用的語言綁定 Go.

該庫是現有 SQLite 程式碼庫的附加元件,它添加了網路協定支持,以互連在不同主機上運行的應用程式的多個實例。 使用 Dqlite 編譯的應用程式可以充當自給自足的容錯集群,獨立於外部 DBMS。 在實務中,Canonical 在其容器管理系統中使用了 Dqlite LXD。 在這個函式庫的應用領域中,也提到了系統中容錯物聯網設備和處理器的創建
信號邊緣- 計算.

為了確保資料複製的一致性,採用了基於演算法的共識方法 ,用於 etcd、RethinkDB、CockroachDB 和 OpenDaylight 等專案中。 Dqlite 使用自己的非同步實現 工藝,用C語言編寫。 使用現成的函式庫來重複使用連線處理並組織協程的啟動 庫夫 и 利布科.

與類似項目相比 rqliteDqlite 提供完整的交易支持,可以與任何 C 專案通信,允許使用 time() 函數,並且使用基於幀的複製而不是基於 SQL 翻譯的複製。

Dqlite 的特點:

  • 非同步執行所有磁碟和網路操作;
  • 可用測試集來確認資料的正確性;
  • 記憶體消耗低,透過網路進行高效率的資料交換;
  • 資料庫和交易日誌永久儲存在磁碟上(可以在記憶體中快取);
  • 故障快速恢復;
  • Go語言的穩定CLI客戶端,可用於初始化資料庫、設定複製以及連接/斷開節點;
  • 支援ARM、X86、POWER和IBM Z架構;
  • Raft 演算法的實作經過最佳化,可最大程度地減少提交交易時的延遲。

來源: opennet.ru

添加評論