發佈文件導向的 DBMS Apache CouchDB 3.0

發生 發布面向文件的分散式資料庫 阿帕契 CouchDB 3.0,屬於NoSQL系統類。 專案來源 傳播 在 Apache 2.0 下獲得許可。

改進之處在 Apache CouchDB 3.0 中實作:

  • 預設配置已得到增強。
    啟動時,現在必須定義管理員用戶,否則伺服器將因錯誤而終止(允許您解決啟動伺服器時無意中未經身份驗證而離開存取權限的問題)。 現在,呼叫「/_all_dbs」需要管理員權限,並且預設建立的所有資料庫只能由管理員使用者存取(可以透過「_security」物件變更存取參數)。 預設情況下,禁止編輯_users資料庫中的物件;

  • 添加 能夠建立使用者定義的分段(分區)資料庫,從而可以定義自己的規則來跨分段(分片範圍)分佈文件。 Mango視圖和索引中新增了針對分片資料庫的特殊最佳化;
  • 實施的 分段(分片)時自動劃分模式。 在資料庫中,現在可以在各段之間重新分配數據,同時考慮到用於確定故障等級的 q 因子值的增加;
  • 添加 ken 子系統,用於自動後台索引並保持二級索引(JavaScript、Mango、文字搜尋索引)最新,無需明確啟動其建置操作;
  • 用於自動資料庫打包的smoosh流程已完全重寫;
  • 提出新的子系統 IO佇列,用於更改某些操作的I/O優先權;
  • 實施回歸測試系統;
  • 新增對arm64v8(aarch64)和ppc64le(ppc64el)平台的官方支援;
  • 增加了與 JavaScript 引擎 SpiderMonkey 1.8.5(Firefox 60 的 ESR 分支)連結的支持,並改進了對 ES5、ES6 和 ES2016+ 的支援;
  • 包含搜尋引擎 德雷福斯 基於Lucene,大大簡化了基於CouchDB的搜尋引擎的部署;
  • 新增了使用 systemd-journald 進行日誌記錄的後端;
  • 新增“[couchdb] single_node”設置,設定後,如果系統資料庫缺失,CouchDB將自動建立系統資料庫;
  • couch_server流程的效能得到了最佳化;
  • Windows 平台的安裝程式已顯著改進;
  • 視圖僅限於 2^28 (268435456) 個結果。 可以使用「[query_server_config]」部分中的query_limit和partition_query_limit選項為常規視圖和分段視圖單獨配置此限制;
  • 刪除了在網路連接埠 5986 上啟動的單獨 HTTP 本機節點管理介面,現在可以透過公共叢集管理介面使用其功能;
  • 最大文件大小已減少到 8 MB,這可能會導致升級到 CouchDB 3.0 後從舊伺服器複製資料時出現問題。 若要增加限制,您可以使用“[couchdb] max_document_size”設定;
  • 已對過時功能進行了重大清理,例如 _replicator 和 _external 呼叫、disk_size 和 data_size 欄位以及elasted_commits 選項;
  • 執行 CouchDB 現在需要 Erlang/OTP 20.3.8.11+、21.2.3+ 或 22.0.5。 理論上,Erlang/OTP 19 分支的功能會保留,但已被測試覆蓋。

讓我們回想一下,CouchDB 以有序列表格式儲存數據,並允許在主-主模式下在多個資料庫之間進行部分資料複製,同時偵測和解決衝突情況。 每個伺服器都儲存自己的本機資料集,並與其他伺服器同步,這些資料可以離線並定期複製變更。 特別是,此功能使 CouchDB 成為在不同電腦之間同步程式設定的有吸引力的解決方案。 基於 CouchDB 的解決方案已在 BBC、Apple 和 CERN 等公司實施。

可以根據範式進行CouchDB查詢和資料索引 地圖簡化,使用JavaScript產生資料採樣邏輯。 系統核心是用 Erlang 編寫的,它針對創建服務多個並行請求的分散式系統進行了最佳化。 視圖伺服器是用 C 語言編寫的,基於 Mozilla 專案的 JavaScript 引擎。 對資料庫的存取是透過使用 RESTful JSON API 的 HTTP 協定進行的,該 API 允許您存取數據,包括從瀏覽器中運行的 Web 應用程式存取資料。

資料儲存單元是具有唯一識別碼、版本並包含任意一組鍵/值格式的命名欄位的文件。 為了組織來自任意文件的偽結構化資料集(聚合和選擇),使用形成視圖(視圖)的概念來定義使用哪種 JavaScript 語言。 JavaScript 也可以定義在特定視圖中新增文件時驗證資料的函數。

來源: opennet.ru

添加評論