MongoDB 3.0正式 发布 ,更新主要涉及存储引擎、备份集、分片集群和安全。
MongoDB 3.0的默认存储引擎仍然是MMAPv1,但除了增加集合级锁改进并发和更改 部分设置 支持多存储引擎外,它还更改了记录分配行为。该版本不再使用动态记录分配策略,并弃用了 paddingFactor 标识,改用 2的幂分配 策略。因此,在3.0版本中,usePowerOf2Sizes标识会被忽略,在不设置noPadding标识的情况下,所有集合都将使用该策略。不过,如果集合的工作负载只包含插入或就地更新,则应该禁用这一策略。
除了改进默认存储引擎外,MongoDB 3.0还引入了可插拨的存储引擎API,允许第三方为MongoDB开发存储引擎。另外,该版本还支持 WiredTiger 存储引擎,不过只限于MongoDB 3.0的64位版本。作为MMAPv1的一个替代方案,WiredTiger支持MongoDB的所有特性。需要注意的是,切换到WiredTiger需要更改 磁盘存储格式 。关于存储引擎的切换指令,请查看 MongoDB 3.0升级文档 。而且,WiredTiger还需要最新版本的MongoDB官方驱动,有关驱动版本兼容信息请查看 这里 。
MongoDB 3.0 将备份集的成员数量增加到50,不过投票成员的最大数量还是7。目前,只有下列驱动支持大备份集:
而PyMongo 3.0、Ruby Driver 2.0和Node.JS Driver 2.0正在开发中。另外,备份集“ 主成员 (primary member)”的降级行为也发生了变化。
在分片集群方面,MongoDB 3.0进行了以下增强:
在安全方面,MongoDB 3.0增加了一种新的用户身份验证机制 SCRAM-SHA-1 ,并且增加了使用 Localhost Exception 机制访问MongoDB的限制(更多细节请查看 这里 )。
其它方面的改进包括:增加新的查询自省系统,改进查询输出格式;将部分日志消息分类到特定的组件或操作下,提高日志的可用性,并且可以为组件设置信息显示级别;用Go语言重写所有的MongoDB工具,并且每种工具都作为一个独立的项目维护;改进索引和增强查询。
同MongoDB 3.0一起,MongoDB Ops Manager也正式发布,感兴趣的读者可以其 发布说明 。
感谢郭蕾对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。