SequoiaDB
SequoiaDB是一款文檔型(Document-oriented)的NoSQL數據庫,於2013年發布第一版本。最新版本為V1.12.4版本。SequoiaDB於2014年12月宣布開源[1]。
1.軟件協議
[編輯]SequoiaDB的數據庫引擎使用GNU AGPL協議,客戶端使用的是Apache 2.0協議 [2]。
2.功能特性
[編輯]數據模型[3] SequoiaDB 中的文檔為 JSON 格式,一般又被稱為記錄。在數據庫內部使用 BSON,即二進制的方式存放 JSON 數據。
系統架構[4] SequoiaDB 使用分布式架構。在客戶機端(或應用程序端),本地或/和遠程應用程序都與 SequoiaDB 客戶機庫鏈接。本地與遠程客戶機使用 TCP/IP協議與協調節點進行通訊。協調節點不保存任何用戶數據,僅作為請求分發節點將用戶請求分發至相應的數據節點。編目節點保存系統的元數據信息,協調節點通過與編目節點通訊從而了解數據在數據節點中的實際分布。一個或多個編目節點可組成複製組集群。數據節點保存用戶的數據信息。
複製組[5] 一個或多個數據節點可以構成一個複製組(又稱分區組)。複製組中每個數據節點都存儲該複製組的一份完整數據,又稱為複製組實例(或分區組實例);複製組中的數據節點之間採用最終一致性同步數據,不同的複製組中保存的數據無重複。每個複製組中可以包含一個或多個數據節點。當存在多個數據節點時,節點間數據進行異步複製。複製組中可以存在最多一個主節點與若干從節點。其中主節點可以進行讀寫操作,從節點進行只讀操作。
事務[6] 事務作為一個完整的工作單元執行,事務中的操作要麼全部執行成功要麼全部執行失敗。SequoiaDB 事務中的操作只能是插入數據、修改數據以及刪除數據,在事務過程中執行的其它操作不會納入事務範疇,也就是說事務回滾時非事務操作不會被執行回滾。如果一個表或表空間中有數據涉及事務操作,則該表或表空間不允許被刪除。
3.支持開發語言
[編輯]SequoiaDB支持多種開發語言,包括:C,C++,C#,Java,PHP,Python [7]