论坛首页 综合技术论坛

MongoDB2.8(rc版) 新特性

浏览 3735 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-11-24  

更多关于MongoDB的技术分享请关注我的公众号:mongodb_side

欢迎大家可以给我留言。

 

原创文章,对官方Release Notes做了扩展描述

作者 shingo(6623662005@163.com


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

 

存储引擎、锁、压缩

 

MongoDB2.8会支持两个存储引擎MMAPV1WiredTiger.

 

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()来获取信息,新版本会增加queryPlannerexecutionStatsserverInfo等字段来描述查询的执行情况以及负载信息。

 

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

 

升级到2.8

 

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

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

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

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics