Canonical宣布Dqlite的1.0版,Dqlite是SQL的C庫

典範

上週 Canonical宣布發布Dqlite 1.0項目的主要版本, 您正在開發一個SQL引擎 內置SQLite兼容,通過跨多個節點支持數據複製,自動災難恢復和容錯能力。

Dqlite是一個C庫 它實現了具有高可用性和自動故障轉移功能的複制SQL數據庫引擎。 首字母縮寫詞“ dqlite”代表“分佈式SQLite”, 這意味著dqlite通過網絡協議擴展了SQLite,該協議可以連接應用程序的多個實例,並使它們充當高可用性群集,而無需依賴外部數據庫。

如上所述 DBMS以附加到應用程序的C庫的形式實現 並根據Apache 2.0許可進行分發(原始SQLite在公共領域中提供)。 該庫是基於現有SQLite代碼的插件, 它增加了網絡協議支持,以鏈接在不同主機上運行的應用程序的多個實例。

使用Dqlite構建的應用程序可以用作故障轉移群集 由於自主錯誤,獨立於外部DBMS。

在實踐中, Canonical在LXD容器管理系統中使用Dqlite。 在圖書館的應用領域中,還提到了在邊緣計算系統中創建容錯的物聯網設備和處理器。

為了確保數據複製的一致性,使用了基於Raft算法的共識方法,該方法用於etcd,RethinkDB,CockroachDB和OpenDaylight等項目中。 Dqlite使用自己的異步C-raft實現,用C編寫。

為了多路復用連接處理並組織協同程序的啟動,使用了準備好的庫libuv和libco。

與類似的rqlite項目相比,Dqlite提供了完整的交易支持,它可以與任何C項目進行通信,允許您使用time()函數,並使用基於框架的複製而不是基於SQL表達式翻譯的複制。

在Dqlite中可以突出顯示的功能包括:

  • 以異步模式執行所有磁盤和網絡操作
  • 一組測試的存在,以確認數據的準確性
  • 低內存消耗和通過網絡的高效數據交換
  • 永久數據庫磁盤存儲和事務日誌(具有內存中緩存功能)
  • 故障後快速恢復
  • Go語言的穩定CLI客戶端,可用於初始化數據庫,配置複製以及連接/斷開節點
  • 支持ARM,X86,POWER和IBM Z架構
  • 優化了Raft算法的實現,以最大程度地減少事務等待時間。
  • 使用libuv作為事件循環的異步單線程實現。
  • 針對SQLite原語和數據類型進行了優化的自定義連線協議。
  • 基於Raft算法的數據複製及其在C-raft中的有效實現。

如何在Ubuntu及其衍生產品上安裝Dqlite?

Canonical提供了有關如何構建與Dqlite進行交互的客戶端的信息,您可以查閱此信息。 在下面的鏈接中。

現在,關於在系統上安裝庫, 對於使用Ubuntu的用戶,可以通過兩種方式進行安裝 或其任何其他派生詞。 Canonical提供了PPA 從那裡可以以相當簡單的方式獲得它。

可以從終端添加此PPA,並在其中執行以下命令:

sudo add-apt-repository ppa:dqlite/v1
sudo apt-get update
sudo apt-get install libdqlite-dev

安裝此庫的另一種方法是通過編譯 這是在系統上進行的,因此對於Ubuntu和其他Linux發行版而言,這是一種更通用的方法。

為此,他們只需要打開一個終端並執行以下命令:

git clone --depth 100 https://github.com/canonical/sqlite.git
cd sqlite
./configure --enable-replication
make
sudo make install
cd ..
git clone https://github.com/canonical/libco.git
cd libco
make
sudo make install
cd ..
git clone https://github.com/canonical/raft.git
cd raft
autoreconf -i
./configure
make
sudo make install
cd ..

一旦安裝了所有必需的庫,為了構建dqlite共享庫,您可以運行:

autoreconf -i
./configure
make
sudo make install

發表您的評論

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

*

*

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