2011-04-10 26 views
3

我有一個獨立的網絡設備。它需要重新設計,以作爲這些設備的地理分佈組的一部分。組中設備之間的同步不需要頻繁發生,不能超過每小時。該應用程序與SQLite軌道。正在同步應用程序

主要是,我們希望保持這些設備上收集的某些信息同步。由於部署,添加大型數據庫集羣並不可行。

我一直在考慮CouchDB,因爲從複製產生的複製和處理衝突是它的強項。

你認爲CouchDB是一種保持分佈式網絡設備同步的機制嗎?任何想法或建議的替代方法?

+0

你是說你將有幾臺數據庫機器通過WAN同步,或者你將擁有一個所有網絡設備都可以訪問的數據庫?換句話說,RDBMS不適合的問題是什麼? – Asaf 2011-04-10 03:54:24

+0

通過廣域網同步的多個設備,除其他外收集需要在它們之間共享的數據。每個人都可以獨立運作,或作爲一個羣體的一部分。主 - 主複製是我認爲需要的。 – nil 2011-04-10 17:42:07

回答

2

什麼是特定問題?

CouchDB實現了主 - 主複製,這正是你所要求的。

或?

+0

謝謝,CouchDB是我一直在尋找的一種解決方案,可能適合我們的需求。雖然有其他選擇,但可能是我沒有考慮過的,我正在尋求建議。 – nil 2011-04-10 17:40:10

+0

是的,主人是我正在尋找。 – nil 2011-04-10 17:47:56

2

CouchDB將非常適合這一點,因爲正如您所說,它擁有主 - 主複製。由於您正在通過WAN進行復制,另一個巨大的補充是,CouchDB旨在優雅地處理網絡上下網,這將是一個很好的容錯。

很多人都使用CouchDB來處理這種情況。看看一些案例研究(http://www.couchbase.com/customers/case-studies)和我寫的一篇關於使用CouchDB保持前端服務器的會話數據同步的博客文章(weblog.bocoup.com/storing-php-sessions-in-couchdb)。

此外,如果您發佈了有關您的案例的更多信息,以便我們可以幫助解決我們的問題,這將有所幫助。

乾杯。

2

CouchDB沒問題。你可能有一些Unix工具的替代品。

最簡單的鍵/值數據庫是文件系統中的文件。他們的工作很棒。如果您只需要使用基本複製的密鑰/值存儲,那麼rsync可以做到這一點。例如,如果您的衝突解決策略始終採用最新的時間戳數據,那麼您可能會逃避rsync。

首先,您可能正在運行Unix/Linux。不同於CouchDB,將包括SSH和rsync。

rsync(實際上它的SSH隧道)的另一個優點當然是識別,認證和授權。你的設備大概是Unix/Linux,並且有一百萬種方法來連接Unix授權。這不是一個保證,但幾乎任何事情都是可行的:密碼文件,NIS,LDAP,Kerberos,Samba/Active Directory。名單繼續。

隨着沙發,你將不得不找出某種用戶管理系統。

  • 您會使用oauth嗎?
  • 你需要編寫一個身份驗證插件嗎?
  • 你還會複製_users數據庫嗎?那麼_users數據庫中的衝突呢?
  • 你有一箇中央_users數據庫嗎?如果你不能有一箇中央數據庫數據庫,你怎麼能有一箇中央用戶數據庫?

沙發,就像MySQL,是一個成熟的服務器。它會維護那個rsync不會的負載。

  • 記住要壓縮你的數據庫,壓縮你的意見,並運行視圖清理
  • 記住旋轉日誌文件
  • 可能備份.couch文件和.ini配置

在換句話說,你可以做一個快速和骯髒的rsync破解,或者你需要完整的Couch包嗎?

CouchDB是一個統一,一致的平臺,無論操作系統如何。這可能是好的或壞的。不知道你的具體情況,我猜測通過SSH的rsync是最好的短期,但沙發是最好的長期。 (但是有這麼多的軟件項目,長期似乎永遠不會到達。)