CouchDB

Apache CouchDB是一個開源數據庫 ， 專注於易用性和成爲 " 完全擁抱web的數據庫 " 。 它是一個使用JSON作爲存儲格式 ， JavaScript作爲查詢語言 ， MapReduce和HTTP作爲API的面向文檔的NoSQL數據庫 。 其中一個顯著的功能就是多主複製 。 CouchDB的第一個版本發佈在2005年 ， 在2008年成爲了Apache的項目 。 不同於關係型數據庫 ， CouchDB沒有將數據和關係存儲在表格裏 。 替代的 ， 每個數據庫是一個獨立的文檔集合 。 每一個文檔維護其自己獨立的數據和自包涵的schema 。 一個應用程序可能會訪問多個數據庫 ， 比如其中一個位於用戶的手機上 ， 另一個位於在遠程的服務器上 。 文檔的元數據包含版本信息 ， 讓其能夠合併可能因爲數據庫鏈接丟失導致的任何差異 。 CouchDB實現了一個多版本併發控制 （ MVCC ） 形式 ， 用來避免在數據庫寫操作的時候對文件進行加鎖 。 衝突留給應用程序去解決 。 解決一個衝突的通用操作的是首先合併數據到其中一個文檔 ， 然後刪除舊的數據 。 其他功能包括文檔級別的ACID語義和最終一致性 ， MapReduce ， 複製 （ Replication ） 。 它還支持通過一個做Futon的內置web應用程序來進行數據庫管理 。