MongoDB3.0新版本幾點介紹

2015年3月3號,MongoDB新版本3.0發佈了,和之前版本相比,此次改動較大,主要有如下幾個方面:數據庫

 

1. 引入了插件式的存儲引擎架構,容許第三方根據實際項目的須要開發存儲引擎,相似於MySql中的分層存儲引擎架構。隨同這種架構發佈的新的存儲引擎爲WiredTiger,老的存儲引擎改名爲MMAPv1,也是目前默認的存儲引擎。架構

   WiredTiger存儲引擎主要特色有:併發

   (1)目前只支持64位的MongoDB。工具

(2)支持文檔級別的鎖,至關於MySql中的行級別鎖,多個客戶端可以同時修改同一個集合中的多個文檔,相比之前版本,WiredTiger存儲引擎帶來了更細粒度的鎖,所以MongoDB的併發性能獲得了大大的提升。oop

(3)支持集合和索引的壓縮存儲,這樣能減小存儲的消耗而只須要較少的CPU開支。性能

 

2. 不一樣存儲引擎對應的數據文件不能兼容,也就是說之前版本對應的數據文件不能直接被WiredTiger存儲引擎所支持,若是要升級到3.0的WiredTiger存儲引擎,必須先將版本升級到2.6,而後再升級到3.0,下面介紹一個單實例升級步驟:大數據

Step1:下載最新的3.0版本的mongod二進制文件,取代2.6版本的二進制。插件

Step2:啓動3.0版本的mongod進程,確保使用的是默認存儲引擎MMAPv1。rest

Step3:利用mongodump導出數據文件。索引

Step4:建立新的數據目錄爲WiredTiger存儲引擎。

Step5:重啓mongod實例用WiredTiger存儲引擎選項,以下:

   mongod –storageEngine wiredTiger –dbpath ‘Step4建立的新目錄’

Step6:使用mongorestore恢復數據文件。

關於mongodump,mongorestore命令的使用方法能夠參考《大數據存儲MongoDB實戰指南》一書。

 

3. 默認的存儲引擎MMAPv1在3.0版本中也有所改進,支持了集合級別的鎖,至關於MySql中的表級別鎖,之前版本都是數據庫級別和全局實例級別的鎖,鎖的粒度有所下降。

 

4.複製集的也發生了一點改變,在3.0版本中,首先容許的成員最大數量增長了,能夠達到50個;其次複製集中primary節點關閉時,複製集的行爲也有所變化,在3.0版本中,複製集會終止耗時較長的操做,例如索引的構造,map-reduce做業等,複製集會等到有新的priamry節點選出後原來的primary節點纔會關閉,而之前的版本只是簡單的等待10秒,無論是否選出了新的primary節點,同時如今也能夠指定參數secondaryCatchUpPeriodSecs值,明確指定等待多少秒。

 

5. 工具的改變,mongodump,mongorestore,mongoexport,mongoimport,mongofiles以及mongooplog工具必須鏈接到正在運行的mongod實例上進行操做,不能像之前版本那樣直接經過—dbpath選項操做數據文件。

 

6. 本地鏈接權限的改變,本地鏈接只能建立第一個用戶在admin數據庫中,不像之前版本,本地鏈接沒有權限限制,能在實例上作任何操做。同時db.addUser()命令被廢棄了,用db.createUser()和db.updateUser()來代替。

相關文章
相關標籤/搜索