2012-12-18 64 views
5

我一直在尋找CouchDB的附件功能。基本上,CouchDB允許您將二進制文件數據存儲在數據庫記錄中。類似於MongoDB的GridFS。我想要構建的項目主要圍繞文件上傳進行,我計劃將其存儲在CouchDB中。因此,這導致我研究了CouchDB如何羣集數據,以便隨着數據庫的增長,由於文件附件的原因,我可以將其聚集在多臺服務器上。我很失望地發現,CouchDB沒有能力做到這一點,開箱即用。 CouchDB指南說要使用一種叫做couchdb-lounge的東西,但是該項目在Github上還沒有任何改動。我認爲我不會因此而感到自在。對於集羣式CouchDB設置,我應該繼續使用BigCouch嗎?

我發現BigCouch,它似乎是一個修改後的CouchDB,其中包含我需要的確切的集羣功能,只是它看起來像是滯後於當前穩定的CouchDB版本。我曾在一年前的新聞稿中讀到過,他們正在將BigCouch合併到官方的CouchDB中,但我不知道它的時間表是什麼。

作爲第三種選擇,它看起來像Couchbase Server 2也是基於CouchDB的,但其中包含了基於其他功能的集羣。我也在爭論這是一個可行的選擇。但它不支持文件附件。

BigCouch最終登陸CouchDB的事實爲我現在繼續使用BigCouch提供了一些保證。

我應該使用BigCouch嗎?爲什麼不是每個人都使用BigCouch,如果只是CouchDB +集羣?肯定有一些不好的方面,對吧?

回答

2

我的需求與我的工作有些不同,但我已經完成了Couchbase,CouchDB和BigCouch的工作。我發現BigCouch非常易於在雲中進行設置,並且只需一天時間即可成功創建羣集。我們正在投資BigCouch,並在進行盡職調查後承諾實施主要的移動計劃。

原因:

  1. BigCouch是相當容易的安裝在雲環境中。文檔很簡單,但我能夠快速獲得一個簡單的羣集並運行。我建議在雲環境中關注機器的私有主機名。 (如果有幫助,我可以發送我在雲中創建機器的詳細註釋)。

  2. BigCouch由Cloudant維護,當然它是開源的,這很好。Cloudant的首席技術官告訴我他們已經將相當多的代碼合併到了Apache CouchDB項目中。此外,Cloudant看起來非常穩定,所以我們希望他們能夠保持項目的最新狀態。它看起來像一個很好的社區(不像TouchDB)。

  3. 從我所知道的BigCouch大多是圍繞核心CouchDB代碼/ API進行包裝。這很好,因爲它讓我覺得他們是以CouchDB爲基礎開始的,並沒有試圖在它之上做太多的事情。例如,CouchDB的複製已經非常好,BigCouch也沒有嘗試重新發明輪子。他們只是添加了一些沙發丟失的東西。

  4. 與Cloudant相比,運行BigCouch「raw」的一個缺點是Cloudant維護自己的具有更多功能的內部分支。我們的評估發現,這些功能並不需要。他們對我們有點矯枉過正。

  5. Couchbase特別似乎是落後了一步。花了很長時間纔得到Couchbase 2.0,而我在2.0之前對Couchbase感到失望。我聽說2.0很棒,但還沒有機會使用它。出於各種原因,我感覺2.0版之前的版本已經被燒燬了。

1

不是每個人都需要羣集。 CouchDB團隊打算在即將發佈1.3版本後立即合併BigCouch,因此開始研究BigCouch肯定會有意義(我個人肯定會選擇BigCouch而不是CouchBase或couchdb-lounge--許多BigCouch貢獻者都是CouchDB無論如何,提交者)。

0

集羣的缺點是它的額外複雜性。我會爭辯說,除非你已經是一個經驗豐富的CouchDB用戶,否則從第1天開始使用BigCouch可能是太過分了。

作爲學習如何設置和維護BigCouch部署的替代方法,您可以選擇像Cloudant這樣的在線CouchDB主機,並讓他們處理管理機羣集的複雜性。你處理的所有事情仍然看起來像你本地的CouchDB實例。

關於在CouchDB中存儲文件,爲什麼不把它們存儲在S3中? (比Cloudant btw便宜很多)

+0

我目前確實將它們存儲在S3中,但與將它們存儲在與所有其他數據相同的數據庫中相比,這會增加許多額外的複雜性。使用S3,我必須創建數據庫記錄,上傳到S3,使用URL更新記錄,在需要公開訪問時對URL進行簽名等。只需很多額外的工作。我只是在尋找替代品。 – Ryan

+0

對於它的價值:我們做了類似的事情CouchDB + S3,除非我們不公開S3,我們代理它以允許我們稍後更改存儲。最初我們使用CouchDB附件,但是在Cloudant vs S3中它們將會過於昂貴。 我們的案例沒有太大的複雜性差異。 (與1個主文檔鏈接的多個附件文檔)。 我會對兩種方法的替代方法感興趣。 – AndyD

+0

我已經upvoted你的其他問題btw – AndyD