科技資訊:網絡資訊:CouchDB是什么意思

導讀新時代高科技不計其數越來越發達,小伙伴們看過不少科技新聞吧,在我們生活中應該也用到很多這些高科技東西,有哪些小伙伴值的關注的呢,今

新時代高科技不計其數越來越發達,小伙伴們看過不少科技新聞吧,在我們生活中應該也用到很多這些高科技東西,有哪些小伙伴值的關注的呢,今天就跟大家分享一篇有關科技方面知識,希望大家會喜歡。

Apache CouchDB是一個開源數據庫,專注于易用性。它是一個使用JSON作為存儲格式,JavaScript作為查詢語言,MapReduce和HTTP作為API的面向文檔的NoSQL數據庫。其中一個顯著的功能就是多主復制。

Apache CouchDB 是一個開源數據庫,專注于易用性和成為”完全擁抱 web 的數據庫“。它是一個使用 JSON 作為存儲格式,JavaScript 作為查詢語言,MapReduce 和 HTTP 作為 API 的面向文檔的 NoSQL 數據庫。其中一個顯著的功能就是多主復制。

CouchDB 的第一個版本發布在 2005 年,在 2008 年成為了 Apache 的項目。

不同于關系型數據庫,CouchDB 沒有將數據和關系存儲在表格里。替代的,每個數據庫是一個獨立的文檔集合。每一個文檔維護其自己獨立的數據和自包涵的 schema。一個應用程序可能會訪問多個數據庫,比如其中一個位于用戶的手機上,另一個位于在遠程的服務器上。文檔的元數據包含版本信息,讓其能夠合并可能因為數據庫鏈接丟失導致的任何差異。

CouchDB 實現了一個多版本并發控制(MVCC)形式,用來避免在數據庫寫操作的時候對文件進行加鎖。沖突留給應用程序去解決。解決一個沖突的通用操作的是首先合并數據到其中一個文檔,然后刪除舊的數據。

其他功能包括文檔級別的 ACID 語義和最終一致性,MapReduce,復制(Replication)。它還支持通過一個做 Futon 的內置 web 應用程序來進行數據庫管理。

歷史

CouchDB(Couch 是 cluster of unreliable commodity hardware 的首字母縮寫)是前 IBM 的 Lotus Notes 開發者 Damien Katz 創建于 2005 年的一個項目。Damien Katz 將其定義為“面向大規模可擴展對象數據庫的存儲系統”。他對該數據庫的目標是讓其成為互聯網的數據庫,其從底層的設計就支持部署 web 應用程序。他自己通過將近兩年的時間創建了該項目同時將其作為開源項目在 GNU General Public License 下發布。

在 2008 年 2 月,其成為 Apache Incubator 項目,同時其許可協議變更為 Apache License。幾個月后,其升級為頂級項目。這促使了其第一個穩定版在 2010 年 7 月發布。

在 2012 年初期,Damien Katz 離開了項目專注于 Couchbase Server。不過該項目還在繼續進行中,在 2012 年 4 月發布了 1.2 版本,2013 年 4 月發布了 1.3 版本。

CouchDB 將數據存儲為“文檔”,其為用 JSON 表示的有一個或者多個字段/值的對。字段的值可以是簡單的東西比如字符串,數字,或者時間;但是數組和字典同樣也可以使用。CouchDB 中的每一個文檔有一個唯一的 id 但是沒有必須的文檔 schema。

CouchDB 提供了 ACID 語義,其通過多版本并發控制的形式來實現,意味著 CouchDB 能夠處理大量的并發讀寫而不會產生沖突。

Map/Reduce 視圖 和 索引

存儲的數據通過視圖進行組裝。在 CouchDB 中,每一個視圖都是由作為 map/reduce 操作中的 Map 部分的 JavaScript 函數構成。該函數接受一個文檔并且將其轉換為一個單獨的值來返回。CouchDB 能夠對視圖進行索引,同時在文檔新增,修改,刪除的時候對這些索引進行更新。

支持復制的分布式架構

CouchDB 的設計基于支持雙向的復制(同步)和離線操作。這意味著多個復制能夠對同一數據有其自己的拷貝,可以進行修改,之后將這些變更進行同步。

所有的數據都有一個唯一的通過 HTTP 暴露出來的 URI。REST 使用 HTTP 方法 POST,GET,PUT 和 DELETE 來操作對應的四個基本 CRUD(Create,Read,Update,Delete)操作來操作所有的資源。

最終一致性

CouchDB 保證最終一致性,使其能夠同時提供可用性和分割容忍。

離線支持

CoucbDB 能夠同步復制到可能會離線的終端設備(比如智能手機),同時當設置再次在線時處理數據同步。

CouchDB 內置了一個的叫做 Futon 的通過 web 訪問的管理接口。

使用案例、產品部署

CouchDB 的復制和同步強大功能讓其能夠使用在無法保證網絡鏈接但是應用程序必須繼續在離線模式工作的移動設備。

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!