規範公司 опубликовала 重大專案發布 迪爾萊特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