NoSQL數據庫 MongoDB 2.0.0-RC0 版本發布
今天MongoDB剛剛發布了其第一個2.* 版本:MongoDB2.0.0-RC0,也發布了2.0版本的Release Notes,其中很多新功能和改進非常值得期待。下面NoSQLFan為大家細數。
1.增加壓縮命令
以前只能通過repair整個數據庫的方式來進行數據壓縮,而2.0版本增加了一個 compact 命令 ,使你可以針對Collection和其索引進行壓縮。
2.并發增強
當寫操作不能在內存中完成(要寫的部分未命中實際內存)時,需要加上寫鎖。(SERVER-2563)目前已經在下面操作上實現:(翻譯是否正確?)
- Updates by _id
- Removes
- Long cursor iterations
3.減少客戶端線程消耗
MongoDB會為每個客戶端分配一個獨立線程,當并發量太大時,線程消耗的內存就不能忽略了。在新的版本中,MongoDB調整了每個線程占用的內存量。這個值將會小于系統的Stack Size或者設置成1MB。
4.索引效率增強
2.0版本對索引進行了重大的性能改進,現在同樣的索引,你可能可以節約25%的內存并提升25%的性能。
5.安全性
sharding的集群目前也提供了安全性支持
6.Replica Sets的改進
- 提供了優先級設置功能,你可以給每一個節點設置優先級,在重新選舉主機的時候,優先級將會被納入選舉策略之中。
- 提供了數據中心可知性,2.0版本中,節點了解自己及其它節點當前是對處于哪一個數據中心的。你可以在寫操作中指定級別,以使一些重要信息能夠同步的復制到遠端的IDC。
- 提供w : “majority”的寫選項,在以前我們可以設置寫到幾臺機器就返回成功,2.0版本會提供一個majority的選項,意為同步到集群中的大多數機器。
- 新增了一個reconfigure的選項,當集群中有些節點宕機后(但是大部分的節點還是活躍的),你可以使用此選項來調整新的配置。參見Reconfiguring a replica set when members are down。
- 目前如果Primary節點找不到一個能夠跟上它速度的Secondary(optime延長10秒以內),那么Primary將不能stepdown,當然你也可以強制使其stepdown。更多信息參見Forcing a Member to be Primary。
- shutdown操作增強,如果一個Primary執行shutdown操作,它會檢查是否有一個Secordary能夠跟上它的速度,如果沒有,它會先stepdown,等有Secondary的optime延長能夠在十秒內再關閉。
- 當一個Secondary在運行repair或者compact操作時,Secondary會轉變狀態為“recovering”,這樣客戶端就不會在其繁忙進行repair或compact的時候訪問它了。
7.地理位置索引
- 支持多個位置索引的建立,可以是在一個array中也可以是文檔嵌入。詳見Geospatial documentation
- 地理位置索引還支持多邊形查詢,支持一些常規的多邊型。詳見這里
8.Journaling日志增強
- 目前在64位平臺上,Journaling選項為默認開啟,需要通過–nojournal 啟動參數才能關閉。
- Journaling日志中使用了壓縮,以減少磁盤IO。
- 提供了–journalCommitInterval選項以自由配置group commit的時間間隔,默認是100ms。
- 提供了新的getLastError {j: true}選項來使客戶端等待group commit完成后才返回。
- 你可以臨時禁止Journaling日志,然后通過copy數據文件的方式進行熱備。詳見這里。
9.增加ContinueOnError選項
當進行批量插入時,如果設置了ContinueOnError選項,那么中間某個插入操作出問題不會影響后續的插入操作。
10.增加新的正則表達式支持
11.修改了system 這個Collection的結構
來源:www.mongodb.org
轉自:http://blog.nosqlfan.com/html/2920.html
MongoDB簡介
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數據類型。 Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:
- 面向集合存儲,易存儲對象類型的數據。
- 模式自由。
- 支持動態查詢。
- 支持完全索引,包含內部對象。
- 支持查詢。
- 支持復制和故障恢復。
- 使用高效的二進制數據存儲,包括大型對象(如視頻等)。
- 自動處理碎片,以支持云計算層次的擴展性
- 支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。
- 文件存儲格式為BSON(一種JSON的擴展)
- 可通過網絡訪問
所謂“面向集合”(Collenction-Orented),意思是數據被分組存儲在數據集中,被稱為一個集合(Collenction)。每個 集合在數據庫中都有一個唯一的標識名,并且可以包含無限數目的文檔。集合的概念類似關系型數據庫(RDBMS)里的表(table),不同的是它不需要定 義任何模式(schema)。
模式自由(schema-free),意味著對于存儲在mongodb數據庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的文件存儲在同一個數據庫里。
存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標識一個文檔,為字符串類型,而值則可以是各中復雜的文件類型。我們稱這種存儲形式為BSON(Binary Serialized dOcument Format)。
MongoDB服務端可運行在Linux、Windows或OS X平臺,支持32位和64位應用,默認端口為27017。推薦運行在64位平臺,因為MongoDB
在32位模式運行時支持的最大文件尺寸為2GB。
MongoDB把數據存儲在文件中(默認路徑為:/data/db),為提高效率使用內存映射文件進行管理。
項目地址:http://www.mongodb.org/
相關文檔:http://www.baiduhome.net/doc/search?q=mongodb&ft=all&od=0