MongoDB2.8(rc版)新特性

拿到投资之后的10Gen明显加快脚步,距离上一个大版本才过去半年多,MongoDB2.8第二个候选版就即将发出了,这里对候选版给出的新特性做个汇总。

 存储引擎、锁、压缩

 MongoDB2.8会支持两个存储引擎MMAPV1和WiredTiger.

 MMAPV1是MongoDB之前所有版本使用的存储引擎,也是唯一的存储引擎,新的2.8版本仍将它设为默认的存储引擎。有个好消息是,MMAPV1支持collection级别的锁。

 WiredTiger是2.8新增的存储引擎,非常牛X的是,它支持document级别的锁,默认情况下WiredTiger引擎对所有collection是压缩存储的,依赖Snappy库。

 WiredTiger支持所有MongoDB的特性,在同一个复制集环境或分片环境中可以与MMAPV1协同工作。要开启WiredTiger引擎,按如下方式启动mongod进程

mongod --storageEngine wiredtiger

 有一点要注意的是:WiredTiger引擎不能和--directoryperdb 兼容。

WiredTiger引擎本身有很多可配置的参数,这些参数可以在启动mongod进程时显示的指定,按照下边的方式:

--wiredTigerEngineConfig "<option>=<setting>,<option>=<setting>"

 针对所有新创建的collection生效的配置方式:

--wiredTigerIndexConfig "<option>=<setting>,<option>=<setting>"

 针对新建索引的配置

--wiredTigerIndexConfig "<option>=<setting>,<option>=<setting>"

 也可以在使用db.createCollection()方法时为collection单独配置wiredTiger参数

db.createCollection("<collectionName>", {storageEngine: {

wiredtiger: {configString:"<option>=<setting>,<option>=<setting>"}}});

 增加复制集成员数量

 2.8版的复制集最大可以支持50个成员,之前的版本不能超过12个成员,最多只能有7个可投票成员。

相关信息可以参见我之前的文章《MongoDB的限制和门槛标准》。

 安全改进

 增加SCRAM-SHA-1认证机制,这是一个混淆认证机制,它满足部署级别的challenge-response认证机制的需求。

目前MongoDB默认的认证机制是MONGODB-CR

2.8之前支持的认证机制如下

 

MONGODB-CR MongoDB实现的challenge-response认证机制
MONGODB-X509 MongoDB SSL证书认证
PLAIN plain认证方式,只能在企业版使用
GSSAPI gss-api,只能在企业版使用

 如果要明确指定认证机制,可在启动mongod时声明

mongod --setParameter authenticationMechanisms=PLAIN--auth

 安全方面,还针对localhost exception 做了修改。

在这之前,为一个全新部署的MongoDB环境创建用户时,第一个用户必须在admin库中创建,这样它有创建其它用户的权限,所有从localhost进入的连接对当前实例有所有访问权限。

2.8版中,通过localhost exception访问MongoDB将会是受限的。

 查询引擎引进

 explain()方法将会显示更多信息,MongoDB的所有查询都可以通过explain()来获取信息,新版本会增加queryPlanner、executionStats、serverInfo等字段来描述查询的执行情况以及负载信息。

 对于分片collection,也能做到索引覆盖查询了。

 升级到2.8

 官方提供了还算详细的升级方法,和以往的升级方法差不多,主要是复制集和Shard的升级。

复制集比较好说,一个节点一个节点升;Shard会复杂一些,因为meta信息存储在config进程中。

具体的升级过程请大家观看官方文档。

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓