dream feature coming from mongodb 2.0

mongoDB 2.0已经发布,带来了许多令人振奋的特性,越来越像企业级的数据库了.

下面简单的介绍一下,

1.  compact command

compact 命令主要的功能是重组collection,重建索引,类似整理碎片。2.0以前需要通过repair database来达到同样的目的,因此会中断全库的操作。compact 只中断单个collection的操作。同时compact操作不会被复制,因此在replica set环境,SLAVE节点也需要做同样的操作才能达到整理碎片的目的。

3. default stack size

默认stack size值降低到1MB或者小于系统默认设置,当数据库被连接数量很大(如>1000个连接)是可以减少mongod线程的内存开销。

4. index performance enhancements

mongoDB2.0的索引比以前来说,空间占用约减少25%,性能提升25%。在建立索引的时候需要加上{v:1}的标记位。如果不想使用新的索引格式,标记为{v:0}。因此如果加了{v:1}从2.0降级到1.8需要重建索引。

5. sharding authorizaiton

以前sharding是不支持auth的,会产生BUG。现在支持了。

6. replica set enhancements

6.1 priorities

以前replica set支持的优先级只有0和1,即0不提升为primary,1可以提升为primary。现在的优先级范围是0到1000的浮点型数值。

例如:

A的优先级是4 (primary)

B的优先级是2

C的优先级是3

当A挂掉了,或者不可用。选举发生的时候,如果B和C的up-to-date一致 (并且与primary的数据差异在10秒内)。那么C会被选举为primary。

如果C和A的差异超过了10秒,那么B将被选举为PRIMARY。如果B和C都进入了up-to-date状态,但是B比较接近A,那么还是C被选举为PRIMARY。而B将产生一个ROLLBACK文件,需要手工ROLLBACK超过C的部分数据。

这里算是高可用的一个折中方案吧。对于数据要求严谨的可能不太适用。

6.2 datacenter awareness

这是一个令人期待的特性,在做系统架构设计时,可以考虑到数据库节点的地域分布,机架分布。给replica set里的每个member都打上1个或者多个TAG。

利用这些TAG,和getLastError,可以控制这条DML操作需要在多少个打了某个你需要的TAG的MEMBER里面成功之后才返回。

例如,

Make sure there are at least three copies of the data and it is present on at least two continents.

All of the rules up until now have only had one condition, but you can include as many and-conditions as you want. Suppose we have the following:

Server Tags
S1 {"continent" : "nAmerica", "copies" : "S1"}
S2 {"continent" : "nAmerica", "copies" : "S2"}
S3 {"continent" : "Europe", "copies" : "S3"}
S4 {"continent" : "Africa", "copies" : "S4"}
S5 {"continent" : "Asia", "copies" : "S5"}

Then create a mode like:

level : {copies : 3, continent : 2} 

Note that modes can contain as many clauses as you need.

{    _id : replSetName,    members : [        {            “_id” : 0,            “host” : S1,            “tags” : {}        },        ...    ],    settings : {        getLastErrorModes : {            level : {copies : 3,continent : 2}        }    } }
使用下面的命令插入数据时,确保数据至少有3个拷贝,并且在2个地域被写入。
db.foo.insert(doc, {w : "level"})

6.3 w:"majority"

majority可以认为是少数服从多少的意思,如5个节点的replica set。majority就是3。

db.foo.insert(doc, {w : "majory"})
在5个节点的replica set环境。表示至少有3个节点被写入才返回正常。

7. journal 增强

7.1 journal压缩后写入磁盘,缩短了写入时间,降低磁盘占用。

7.2

2.0开始,journalCommitInterval支持配置,默认是100MS。配置范围2到300毫秒。

其实这个journal有点类似PostgreSQL在配置了synchronous_commit = off 时的wal_writer_delay 参数。

间隔多少时间做一次FSYNC,把journal的缓存写入到磁盘。

7.3

 {j: true}

DML操作时可以使用这个参数,使用之后journal会被立即写入到磁盘,不必等待journalCommitInterval的发生。使用这个参数那么这笔DML操作即达到了ACID的D的要求。

其他的可以参看release notes.

【参考】

http://www.mongodb.org/display/DOCS/2.0+Release+Notes

时间: 2024-11-01 18:49:09

dream feature coming from mongodb 2.0的相关文章

使用WebSphere Application Server Feature Pack for Web 2.0创建基于Ajax的

使用WebSphere Application Server Feature Pack for Web 2.0创建基于Ajax的动态Web应用程序 简介 与 Web 2.0 相关的技术,比如 Asynchronous JavaScript XML (Ajax).Web 远程和 Web 消息传递等,在当今的 Web 应用程序中变得日益流行.与传统 Web 应用程序相比,基于 Ajax 的应用程序 可以提供更好的响应性和交互性.在那些并入了 Ajax 架构的 Web 应用程序中 ,用户不需要等待整个

深入探讨WebSphere Application Server Feature Pack for Web 2.0

功能部件包演示 在 IBM Software Group 中观察开发团队围绕 Ajax(Asynchronous JavaScript and XML)架构创建并交付创新的设计是非常令人兴奋的事情.Ajax 代表下一代 Web 开发,并且可以用于创建创新的基于浏览器的用户界面.作为一名开发人员,我发现重量级图形用户界面应用程序之间的界限开始变得模糊,这些应用程序运行在它们自己的本地操作系统上,并见证了当今的浏览器和设备的丰富性. 通过使用 Feature Pack for Web 2.0,IBM

mongodb 3.0 如何启动新引擎??????高手速来。。。

问题描述 mongodb 3.0 如何启动新引擎??????高手速来... mongodb 3.0 如何启动新引擎??????高手速来... mongodb 3.0 如何启动新引擎??????高手速来... 解决方案 难道不是启动服务就自动启动新引擎

Ubuntu中MongoDB 3.0安装与升级的方法

由于服务器中使用了阿里云提供的源,安装的MongoDB版本太低(好像是MongoDB 2.0.4),MongoDB 3.0出来也有一段时间了,咱也尝尝鲜.下面来介绍我的升级方法,此安装方法来自于MongoDB官网http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/. (小虾 虎鱼原创) 导入public GPG Key: Import the public key used by the package manage

MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务

本文原文连接: http://blog.csdn.net/freewebsys/article/details/45368809 转载请注明出处! 1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只提升7到10倍的写入效率以及增加80%的数据压缩率,还能减少95%的运维成本. MongoDB 3.0主要新特性包括: ·可插入式的存储引擎 API ·支持 W

mongoDB 3.0创建访问控制权限的方法及Mongodb GetLastError写入安全机制

mongoDB 3.0 安全权限访问控制 mongoDB 3.0 访问控制改了很多,需要注意这个参数authenticationMechanisms.为了兼用2.6版本,我直接指定下面的参数: setParameter:  authenticationMechanisms: MONGODB-CRParameter:  authenticationMechanisms: MONGODB-CR 下面看看如何创建访问控制权限 不使用 -auth 参数,启动 mongoDB mongodb-<a hre

CentOS7 安装MongoDB 3.0服务器

1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只提升7到10倍的写入效率以及增加80%的数据压缩率,还能减少95%的运维成本.  MongoDB 3.0主要新特性包括:  ·可插入式的存储引擎 API  ·支持 WiredTiger 存储引擎  ·MMAPv1 提升  ·复制集全面提升  ·集群方面的改进  ·提升了安全性  ·工具的提升 WiredTi

mongoDB 2.0.0 shard implemention with noauth=true

配置和1.8差不多,只是mongoDB2.0.0本身带来了一些新的特性,所以参数配置有点不一样.以下是详细部署过程 :  产品部署注意事项 :  do not use hugepage use ntp use ext4/xfs mount with option : noatime  Do not use NUMA DELL服务器关闭NUMA : Node Interleaving 改为Enabled则安装对称内存配置时支持内存交错.如果为 Disabled(已禁用),系统支持非一体化内存体系结

Linux下安装配置MongoDB 3.0版本数据库教程

说明: 操作系统:CentOS 5.X 64位 IP地址:192.168.21.128 实现目的: 安装配置MongoDB数据库 具体操作: 一.关闭SElinux.配置防火墙 1.vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq! #保存退出 setenforce 0 #使配置立即生效 2.vi /etc/sysconfig/iptables #编