Mongodb

使用基於位置儲存的數據在國際上對 MongoDB 進行分片

  • January 30, 2015

我們希望在全球範圍內建立數據中心並切換到像 MongoDB 這樣的 NoSQL 數據庫,以支持將我們的數據分佈在這些數據中心上(並且作為一個令人愉快的副作用,引入更多冗餘、故障轉移等)。

但是,全球數據中心的原因主要是為了加快附近國家/地區使用者的響應時間,而不是故障轉移功能。Web 應用程序旨在在公司範圍內使用,而這些公司中很少有在全球範圍內運營。因此,由於世界一側的許多使用者永遠不需要訪問另一側使用者的數據,如果數據可以保存在大多數使用者本地的伺服器上,那就太好了。

我曾希望我可以使用 mongodb 的分片功能讓數據像這樣在全球分佈,同時仍然允許從單個位置訪問和維護(這會很慢,並且查詢國際伺服器)。不幸的是,我能找到的對這種行為的唯一參考是在 MongoDB 部落格上提到“智能歸巢”,僅此而已。儘管可以在全球範圍內同步所有內容,但至少在其中一個國家/地區,似乎效率低下且未計量的頻寬不是一種選擇。

mongodb可以支持這種行為嗎?任何有關如何使這種設置工作的進一步資訊(或者為什麼我不應該讓這種設置工作,因為它會使小貓死亡等)將不勝感激。

其中一些已經在 MongoDB 中到位,請在此處查看一篇不錯的文章:

http://www.mongodb.org/display/DOCS/Data+Center+Awareness

在讀路由方面,驅動中有一些實現,但沒有內置。本地化數據讀取的功能完整版打算隨2.2發布

如果你想看看兩個最密切相關的核心伺服器問題,你可以看看這裡:

https://jira.mongodb.org/browse/SERVER-3062 https://jira.mongodb.org/browse/SERVER-3358

而且,當然,然後您可以對該功能進行投票以將其提升到列表中:)

引用自:https://serverfault.com/questions/318558