MongoDB v3.0新特性

链接:https://docs.mongodb.org/manual/release-notes/3.0/


支持2种存储引擎

  MMAPv1       

  MongoDB一直以来使用的存储引擎,也是当前默认的存储引擎。

  新版本支持collection级别的锁。

  在空间分配上把powerof2allocation作为默认方式,不必再设置usePowerOf2Sizes参数。对于只有insert和in-place update操作的集合,可以使用noPadding标志取消这种空间分配方式。

  当磁盘空间不足时,只针对要求新分配空间的操作报错。

  

  WiredTiger   

  3.0版本新增的可选的存储引擎,仅支持64位的MongoDB。

  复制集和分片中的成员可以混搭使用这2种存储引擎。

  WiredTiger支持document级别的锁和压缩存储。


对复制集的改变

   成员数量扩展到50。

   针对step down的改变。

       在执行step down之前,mongo尝试结束一下长时间运行的操作,如建立索引、写入操作和map-redunce等操作会等到一个secondary节点完全赶上当前的Primary节点时,才会降级(旧版本是赶到10s之内)。这样能有效避免rollback的发生。同时允许指定secondaryCatchUpPeriodSecs参数,该参数指定Primary节点在这段时间内等待某个secondary赶上来。

    提高了初始同步时,建索引的效率;使用线程批量接受oplog。

        这点可能对主从同步有改善。

    对“w:majority”的定义有所改变,majority只针对进行投票的节点。

    对复制集的配置做了改动。

    对于secondary节点上已有的集合,如果当初没建_id索引,不再自动创建。


对分片的改变

  增加了sh.removeTagRange()方法,强化对带标签的集合的管理。

  更好的预读偏好判断。mongos不再绑定连接到某个分片,而是根据查询行为的变化做出更好的预读判断

  增加了针对块迁移的write concern。

  在sh.status()中增加了关于balancer状态的信息。


安全性的改进

  新增SCRAM-SHA-1机制

  增强了Localhost Exception访问MongoDB的限制,只能在admin库中创建第一个用户。旧版本中允许使用这个机制对MongoDB做任何操作。


改进

  对解释计划做了改进。

  对log做了改进,可分类对特定组件或操作进行记录。

  对MongoDB的相关工具,如mongodump等做了改进

  对索引的改进

    当索引正在后台建设中,这时执行dropDatabase, drop, dropIndexes操作,会报错,但是不再打断索引的建设进程。

    使用createIndexes建立多个索引时,只扫描一次集合;如果有一个索引已在前台建立,其它也将在前台建立。

    如果索引包含片键,可以通过mongos实现覆盖查询。

  其它对查询的改进

  非企业版开始支持SSL。


评论

© 听雨残荷 | Powered by LOFTER