MongoDB 1.6增加了Sharding機制和副本集合特性

MongoDB 1.6增加了Sharding機制和副本集合特性

 

 

 

MongoDB 1.6是一個重要的版本,解決了水平擴展的問題,爲自動故障轉移和恢復提供了Sharding機制,並增加了副本集合的特性。

Sharding

 

MongoDB1.6的主要改進是可以通過Sharding進行水平擴展。MongoDB能快速的從多個Shard中自動分配數據庫、集合或集合中的對象,而不需要停機。Sharding是非常合適的解決方案,因爲在多數情況下,數據收集會比其它操作要頻繁的多,沒必要每次都去分配整個數據庫。 

 

Sharding配置包含了Shard、路由進程、配置服務器,如下圖所示:

 

image

mongod – 主數據庫進程。它代表一個Shard並被放入副本集合,以提供故障自動轉移。Mongod的進程之一在其副本集合中是主進程。如果主進程停掉,則委派其他服務器作爲主進程。

mongos – 路由進程。它負責客戶端和Sharded數據庫進行交互,該數據庫連接到一臺獨立服務器。如果必要的話,可以使用多個Mongos服務器,但它們不會共享狀態。

config servers – 每個配置服務器包含了集羣的元數據、系統中存在的Shard以及每個Shard中存放了什麼樣的數據塊。安全起見,可以設置多個配置服務器。如果其中一個出現故障,配置服務器進入只讀模式,但Shard會在讀/寫模式下繼續運行。

Replica Sets

MongoDB 1.6的另一個主要特徵是副本集合(Replica Sets),這時一個基於主/從複製機制的複製功能,但增加了自動故障轉移和恢復特性。一個集羣最多可以支持7個服務器,並且任意節點都可以是主節點。所有的寫操作都被分發到主節點,而讀操作可以在任何節點上進行。

其他改進

$or 查詢──操作符$or在查詢中支持布爾類型或表達式:

db.foo.find( { name : "bob" , $or : [ { a : 1 } , { b : 2 } ] } )

Window服務──Mongod可以作爲一個服務運行在windows操作系統,但是Mongos不行

w選項──寫操作可以被阻止,直到這個操作傳播到集合內的多個服務器。

 

10gen是一個提供文件數據庫支持的公司,該公司的共同創始人兼首席執行官Dwight Merriman提到,MongoDB 1.6已經被bit.lyfoursquare使用。bit.ly在高峯時段有50M用戶使用,每個用戶平均10K帶寬的併發訪問。Foursquare則擁有數百萬的用戶,從Postgres遷移到了Sharded MongoDB,並使用了地理空間索引。

 

MongoDB的發佈說明Jira上包含了更多的1.6版本相關信息。

 

http://www.infoq.com/cn/news/2010/08/MongoDB-1.6

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章