您的位置:軟件測試 > 開源軟件測試 > 開源軟件測試解決方案 >
探索 CouchDB 針對 Web 應用程序的面向文檔數(shù)據(jù)庫
作者:網(wǎng)絡轉載 發(fā)布時間:[ 2012/12/14 15:47:59 ] 推薦標簽:

CouchDB 是如何工作的?

CouchDB 構建在強大的 B-樹儲存引擎之上。這種引擎負責對 CouchDB 中的數(shù)據(jù)進行排序,并提供一種能夠在對數(shù)均攤時間內執(zhí)行搜索、插入和刪除操作的機制。CouchDB 將這個引擎用于所有內部數(shù)據(jù)、文檔和視圖。

因為 CouchDB 數(shù)據(jù)庫的結構獨立于模式,所以它依賴于使用視圖創(chuàng)建文檔之間的任意關系,以及提供聚合和報告特性。使用 Map/Reduce 計算這些視圖的結果,Map/Reduce 是一種使用分布式計算來處理和生成大型數(shù)據(jù)集的模型。Map/Reduce 模型由 Google 引入,可分為 Map 和 Reduce 兩個步驟。在 Map 步驟中,由主節(jié)點接收文檔并將問題劃分為多個子問題。然后將這些子問題發(fā)布給工作節(jié)點,由它處理后再將結果返回給主節(jié)點。在 Reduce 步驟,主節(jié)點接收來自工作節(jié)點的結果并合并它們,以獲得能夠解決初問題的總體結果和答案。

CouchDB 中的 Map/Reduce 特性生成鍵/值對,CouchDB 將它們插入到 B-樹引擎中并根據(jù)它們的鍵進行排序。這能通過鍵進行高效查找,并且提高 B-樹中的操作的性能。此外,這還意味著可以在多個節(jié)點上對數(shù)據(jù)進行分區(qū),而不需要單獨查詢每個節(jié)點。

傳統(tǒng)的關系數(shù)據(jù)庫管理系統(tǒng)有時使用鎖來管理并發(fā)性,從而防止其他客戶機訪問某個客戶機正在更新的數(shù)據(jù)。這防止多個客戶機同時更改相同的數(shù)據(jù),但對于多個客戶機同時使用一個系統(tǒng)的情況,數(shù)據(jù)庫在確定哪個客戶機應該接收鎖并維護鎖隊列的次序時會遇到困難,這很常見。在 CouchDB 中沒有鎖機制,它使用的是多版本并發(fā)性控制(Multiversion concurrency controlMVCC)— 它向每個客戶機提供數(shù)據(jù)庫的新版本的快照。這意味著在提交事務之前,其他用戶不能看到更改。許多現(xiàn)代數(shù)據(jù)庫開始從鎖機制前移到 MVCC,包括 Oracle(V7 之后)和 Microsoft® SQL Server 2005 及更新版本。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd