2011-03-17 72 views
1

我正在努力開發需要跨國家分佈數據的應用程序。內容將按「每個地區」提供,但需要能夠輕鬆複製到其他地區。最重要的是,我擁有需要在數據庫之間共享和同步的一般信息。分佈式數據庫管理系統 - 替代方案?

我工作的組織正在考慮自己實施這個系統,但感覺應該已經有一些很好的解決方案了(我對雲解決方案開放 - 我的公司需要管理得越好)?

這可能是一個模糊的問題,但我認爲可以很好地回答它。

開發這種分佈式數據系統時有什麼選擇?

更新:

應該已經制定了(但我不知道我是多麼能說給NDA)。我只想說,我有「內容」,我需要存儲在一些空間(文件)。我需要存儲有關分佈在多個節點(可能由我們或其他人)託管的內容的元數據,以實現快節奏的通信和區域化的數據差異。我需要控制HOW數據在節點之間如何複製,但最好以符合標準的方式進行控制。 (最好不要寫我們)

回答

0

有趣的問題 - 但它會真正有助於獲得更多的上下文。

您談論的是「數據」,通常意味着一些具有相當定義好的結構的東西,通常在關係數據庫中實現。

你還談到了「內容」,它通常意味着一些(很)不太定義明確的結構,通常作爲某種類型的文檔實現。存在用於構建「文檔」的許多解決方案,例如文件系統或網站。

假設我們正在談論結構化數據,最簡單的事情就是擁有一個存儲庫,可以隨處訪問。看看「雲」產品 - 亞馬遜是一個很好的選擇。創建您自己的全球數據存儲庫是一項重大任務 - 但如果您要處理高度機密的數據,或者具有特定的性能要求,則可能需要繼續。

如果這兩個選項都不起作用,那麼您就處於「企業服務總線」的世界。谷歌它,但要小心 - 這是一個複雜的領域,你真的想找人知道他們在做什麼。儘管如此,使用現成的ESB比構建自己的分佈式數據結構要少很多痛苦。

+0

查看我的更新。但謝謝你的回答,給了谷歌的口頭禪!:)(一位同事主張將我們自己的複製工具發送給服務器進程,這些服務器進程也將由我們編寫,這些服務器進程將處理更新其他數據庫的工作。) – Max 2011-03-17 14:01:31

1

你可以試試CouchDB。它的離線複製模式聽起來非常適合地理分佈式系統。

+0

嗯,是的,聽起來很有趣!儘管我們是否可以使用面向文檔的數據庫,但我有點懷疑。有沒有類似的東西,但相關的數據? – Max 2011-03-17 14:14:38

+0

我無法幫助您使用rdbmses。通常爲了同步這樣的數據塊,db層上還有另一層。我可以告訴MySQL複製根本不起作用。關於couchDB,如果map-reduce可以處理需要執行的查詢,那麼存儲關係數據就不成問題了。從其他選項中,閱讀BigTable論文(或類似文章)以瞭解Google如何處理數據中心之間的通信。你的系統看起來像全局緩存引擎 - 看看這些公司如何處理這個問題。 – user425720 2011-03-20 14:47:13

0

我知道這是幾年後問,但我正在查找同一問題的答案,它看起來像Cassandra可能符合法案。安裝完成後,它看起來像其他數據庫解決方案(表,視圖,SQL,交易等)一樣行事,但它也可以完全分散。每個實例都充當其他Cassandra節點集羣中的一個節點。它們在幕後同步,如果一個人倒下,其他人就會撿起鬆弛的東西。這使得Cassandra具有高度可擴展性和高度容錯性。