2011-01-21 72 views
2

可以說一般情況下(數據庫大小真的很大)最好:要讓MongoDB羣集包含大量小型刀片服務器,還是一些非常胖的服務器?MongoDB - 小型/多個或少數/大型節點羣集

鑑於分片密鑰具有相當精細的粒度,所以分裂不應該是一個問題。

如果沒有「金色子彈」,這兩種設置有什麼優點和缺點?

回答

3

最好在哪方面?從財務的角度來看,我會去很多便宜的硬件:)

MongoDB的構建可以輕鬆擴展節點,所以爲什麼不利用這個優勢呢?你只需要一臺或幾臺強大的SQL服務器的原因就是爲了最小化關係數據在物理節點間的傳播。但是由於MongoDB使用文檔,大部分相關數據都存儲在單個文檔中。這意味着它們都存儲在同一個物理位置,您不必在其他節點上進行代價高昂的查找來重新構建數據的「完整圖片」。

要記住的另一件事是map-reduce作業可以only run in parallel in a sharded environment。所以如果你打算做大量減少地圖的工作,更多的碎片/服務器將會帶來更好的性能。

如果你的數據庫超出你的強壯的服務器會怎麼樣?您是否會投資另一臺處理少量額外增長的強大服務器?或者如果其中一個崩潰怎麼辦?使用更小,更便宜的服務器,可以在需要時逐漸擴大(或縮小)。此外,服務器崩潰的影響要小得多,因爲它只會影響一小部分數據。總結:大型小型服務器集羣並不是一個銀彈,因爲管理這樣一個集羣有其自身的挑戰,但是如果您正在進行map-reduce,它的成本會更低,速度也更快。

+0

感謝您的回答!非常好的點數。 – 2011-01-25 07:18:17