MongoDB 3.0正式发布,支持多存储引擎

jopen 10年前

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。目前,只有下列驱动支持大备份集:

  • C# (.NET) Driver 1.10
  • Java Driver 2.13
  • Python Driver (PyMongo) 3.0+
  • Ruby Driver 2.0+
  • Node.JS Driver 2.0+

而PyMongo 3.0、Ruby Driver 2.0和Node.JS Driver 2.0正在开发中。另外,备份集“ 主成员 (primary member)”的降级行为也发生了变化。

在分片集群方面,MongoDB 3.0进行了以下增强:

  • 增加sh.removeTagRange(),作为对sh.addTagRange()的补充;
  • 提供一种预见性更强的“读取首选项( read preference )”, mongos 实例执行读取操作时不再将连接固定到备份集的成员上,而是每次操作时都重新评估读取首选项;
  • 提供了一个新的writeConcern设置,用于配置块迁移操作的“写关注( write concern )”,也可以为 balancermoveChunkcleanupOrphaned 命令配置;
  • 提升balancer操作的可见性, sh.status() 包含balancer的状态信息。

在安全方面,MongoDB 3.0增加了一种新的用户身份验证机制 SCRAM-SHA-1 ,并且增加了使用 Localhost Exception 机制访问MongoDB的限制(更多细节请查看 这里 )。

其它方面的改进包括:增加新的查询自省系统,改进查询输出格式;将部分日志消息分类到特定的组件或操作下,提高日志的可用性,并且可以为组件设置信息显示级别;用Go语言重写所有的MongoDB工具,并且每种工具都作为一个独立的项目维护;改进索引和增强查询。

同MongoDB 3.0一起,MongoDB Ops Manager也正式发布,感兴趣的读者可以其 发布说明

原文  http://www.infoq.com/cn/news/2015/03/mongodb-3-release