CouchDB是一個(gè)面向文檔的數(shù)據(jù)庫(kù),CouchDB支持通過(guò)JavaScript以MapReduce的方式對(duì)數(shù)據(jù)進(jìn)行查詢和索引,同時(shí)CouchDB還支增量復(fù)制的雙向沖突檢測(cè)掃描和解決。CouchDB是用Erlang開(kāi)發(fā)的面向文檔的數(shù)據(jù)庫(kù)系統(tǒng),最近剛剛發(fā)布了1.0版本(2010年7月14日)。CouchDB不是一個(gè)傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),而是面向文檔的數(shù)據(jù)庫(kù),其數(shù)據(jù)存儲(chǔ)方式有點(diǎn)類似lucene的index文件格式,CouchDB最大的意義在于它是一個(gè)面向web應(yīng)用的新一代存儲(chǔ)系統(tǒng),事實(shí)上,CouchDB的口號(hào)就是:下一代的Web應(yīng)用存儲(chǔ)系統(tǒng)。
CouchDB提供了一組基于RESTful的JSON API,利用這組API任何允許http請(qǐng)求的環(huán)境都可以與CouchDB交互。CouchDB同時(shí)還提供了很多客戶端組件庫(kù),這些組件庫(kù)可以幫助開(kāi)發(fā)者輕松的基于CouchDB進(jìn)行開(kāi)發(fā)。CouchDB內(nèi)置了一個(gè)基于web的管理控制臺(tái),該控制臺(tái)也是基于HTTP協(xié)議操作CouchDB的。
CouchDB采用ErLang開(kāi)發(fā)(ErLang號(hào)稱是并行計(jì)算之王),而其最底層的數(shù)據(jù)結(jié)構(gòu)就是兩類 B+Tree,CouchDB主要由兩部分組成一個(gè)是”存儲(chǔ)”(storeage) ,另一部分是”視圖索引”(view indexs)。 “儲(chǔ)存”用來(lái)儲(chǔ)存文件, “視圖索引”用于查詢處理。
CouchDB能夠適應(yīng)非常廣泛的應(yīng)用場(chǎng)景,在某些偶爾連接網(wǎng)絡(luò)的應(yīng)用中,我們可以用CouchDB暫存數(shù)據(jù),隨后進(jìn)行同步。也可以在Cloud環(huán)境中,作為大型的分布 式的數(shù)據(jù)存儲(chǔ)。CouchDB提供了基于 HTTP的API的訪問(wèn)方式,這樣,保證了所有的常見(jiàn)的語(yǔ)言都可以使用CouchDB。
Apache CouchDB 1.0.1 主要改進(jìn):
修復(fù)COUCHDB - 844數(shù)據(jù)損壞錯(cuò)誤。
新增支持復(fù)制通過(guò)HTTP / HTTPS代理。
固定與舊版本的互操作CouchDB各種復(fù)制錯(cuò)誤。
顯示領(lǐng)域的保存隨著_deleted =真實(shí)。允許對(duì)刪除審核。
啟用基本- auth的彈出時(shí)需要訪問(wèn)服務(wù)器,以防止人們從越來(lái)越鎖定。
陳舊的用戶查詢(緩存)的意見(jiàn)界面元素。
Apache CouchDB 1.0.0主要改進(jìn)包括:
CouchDB 1.0.0改進(jìn)了header的提交性能,提供了更高效的提交能力
CouchDB 1.0.0使用O_APPEND保存lseeks.
CouchDB 1.0.0重構(gòu)了pread_iolist()方法,提供了更快的實(shí)現(xiàn)方法,同時(shí)大幅度提高了并發(fā)情況下的讀取性能。
CouchDB 1.0.0增加了驗(yàn)證緩存功能
CouchDB 1.0.0中默認(rèn)的視圖整理功能速度更快
CouchDB 1.0.0在視圖響應(yīng)中包含了一個(gè)update_seq選項(xiàng)