原文来自:http://docs.mongodb.org/manual/release-notes/3.0/

2015年3月3日

MongoDB 3.0现已可供使用。关键新特性包括支持WiredTiger存储引擎,插件化存储引擎API,SCRAM-SHA-1身份验证机制,以及改进的explain功能。

MongoDB运维管理器(MongoDB Ops Manager),包括自动化,备份,监控现在可供使用。查看运维管理器运维管理器发布说明以获取更多内容。

小版本发布

3.0.1 - 2015年3月17日

主要修改

插件化存储引擎API

MongoDB 3.0引入了插件化存储引擎API,允许第三方为MongoDB实现存储引擎。

WiredTiger

MongoDB 3.0引入了WiredTiger存储引擎支持。在支持WiredTiger的前提下,MongoDB现在支持两个存储引擎:

  • MMAPv1,MongoDB之前版本中支持的存储引擎,它是MongoDB 3.0的默认存储引擎,以及:
  • WiredTiger,只在64位版本的MongoDB 3.0中支持。

WiredTiger使用

WiredTiger是MMAPv1存储引擎的一个可选替代项。WiredTiger支持所有MongoDB特性,包括所有服务器,数据库和集合统计方面的功能。但是切换到WiredTiger要求进行一次磁盘存储格式转换。要了解将存储引擎切换到WiredTiger的更多信息,请查看升级到MongoDB 3.0的对应章节。

MongoDB3.0 复制集和分片集群的成员可以使用不同的存储引擎。但是,随着负载变化它们的性能也会有不同的变化。欲知详情,请查看升级到MongoDB 3.0的对应章节。

WiredTiger存储引擎要求最新的官方MongoDB驱动。欲知更多信息,请查看WiredTiger与驱动版本兼容性

扩展阅读:

touch命令支持存储文档中的WiredTiger存储引擎章节

WiredTiger配置

要配置WiredTiger存储引擎的属性和行为,请查看storage.wiredTiger配置选项。你可以在命令行设置WiredTiger选项

扩展阅读:

存储文档中的WiredTiger存储引擎章节

WiredTiger并发和压缩

3.0 WiredTiger存储引擎提供了文档级别的锁和压缩。

默认情况下,WiredTiger使用snappy压缩库来压缩集合数据。WiredTiger默认对所有索引使用前缀压缩

扩展阅读:

生产环境备注中的WiredTiger章节

MMAPv1改进

MMAPv1并发改进

在3.0版本中,MMAPv1存储引擎加入了集合级别的锁。

MMAPv1配置变更

为了支持多存储引擎,一些MMAPv1的配置选项有些变化。请查看配置文件选项变化章节。

MMAPv1记录分配行为变更

MongoDB 3.0不再实现动态记录分配,空白因子也已标注为过期。在使用MMAPv1的实例中,集合默认的分配策略是2的次方分配,这已被证明在处理大尺寸文档时表现更优异。在3.0中,usePowerOf2Sizes选项被忽略,所以2的次方分配策略被应用在所有没有noPadding设置的集合上。

对于只有插入和更新(例如增长计数)工作负载的集合而言,可以选择禁用2的次方策略。要为某个集合禁用2的次方策略,使用noPadding标记的collMod命令,或带noPaddingdb.createCollection()方法。

警告:

如果工作负载包含删除或造成文档大小变更的更新,不要设置noPadding选项。欲知更多信息,请阅读无空白分配策略

当磁盘空间不足时,MongoDB 3.0不再在所有写操作上产生错误,而只针对无法分配要求的空间时产生错误。所以,当磁盘空间低时MongoDB现在仍然允许不变更大小的更新和删除操作。

扩展阅读:

动态记录分配

复制集

增加了复制集的最大成员数量

MongoDB 3.0中复制集可以有最多50个成员[1]。以下驱动支持大复制集:

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

因为C,C++,Perl,PHP以及早先版本的Ruby,Python和Node.JS驱动是顺序地发现和监控复制集成员,这些驱动不适宜用在大复制集中。

PyMongo 3.0目前正在开发中。

[1]最大投票成员数仍然是7个

复制集降级行为改变

复制集主成员降级过程有了以下改变:

  • 降级前,replSetStepDown将会尝试结束阻塞主成员降级的长时间运行的用户任务,例如建立索引,写操作,或map/reduce工作。
  • 为了防止回滚,replSetStepDown将会在降级等待有资格的后备成员追上当前主成员的同步状态。之前主成员会在降级前在10秒内等待后备成员追上同步状态(例如后备成员同步延迟在10秒内)。
  • replSetStepDown现在允许用户指定secondaryCatchUpPeriodSecs参数来设置主成员在降级前应该等待后备成员多长时间。

其他复制集可选变更

  • 初始同步现在使用多线程更有效率地为集合构建索引和应用oplog记录。
  • 定义w:"majority"写关注现在的意义变为指大多数有投票权的结点。
  • 复制集配置现在有更强的约束。欲知详情,请阅读复制集配置验证章节。
  • 对后备成员上已经存在的集合,MongoDB 3.0不再自动构建丢失的_id索引。

扩展阅读:

MongoDB 3.0 兼容性变更中的复制集变更

分片集群

MongoDB 3.0为分片集群提供以下增强:

  • 增加了一个新的sh.removeTagRange()帮助方法来改带标签的进分片集合的管理。新的sh.removeTagRange()方法是sh.addTagRange()方法的补充。
  • 使读首选项的行为更可预料。当进行读操作时,mongos实例不再把连接固定在复制集的成员上。相反,mongos为每个操作重新评估读首选项,从而当读首选项变化时提供一个更可预料的读首选项行为(有点难懂,请先了解读首选项——译注)。
  • 提供了一个新的writeConcern设置来配置数据片断迁移操作的写关注。你可以为平衡器以及moveChunkcleanupOrphaned命令配置独立的写关注。
  • 改进平衡器操作的透明性。sh.status()包含了平衡器的状态信息。查看sh.status()以得到了解更多细节。

扩展阅读:

MongoDB 3.0兼容性变更中的分片集群设定

安全性改进

MongoDB 3.0包含了以下安全性增强:

  • 添加新的SCRAM-SHA-1用户认证机制。
  • 当使用本地例外访问MongoDB时增加了更多的约束。欲知详情,请查看本地例外变更

扩展阅读:

安全变更

改进

新的查询自测系统

MongoDB 3.0包含了一个新的查询自测系统,可以提供更好的输出格式化和把自测信息更好地应用到查询计划和查询执行中。

欲知详情,请查看新的db.collection.explain()方法和新的explain命令,以及更新过的cursor.explain()方法。

要了解更多关于新输出格式的信息,请查看explain结果

增强的日志

为了增加日志消息在诊断过程中的可用性,MongoDB分类了一些特定组件或操作的日志消息,提供了为这些组件设置日志明细等级的能力。欲知详情,请阅读日志消息

MongoDB工具改进

所有MongoDB工具现在都由Go语言编写,作为独立项目维护。

  • mongodumpmongorestore的并行新选项。你可以用--numParallelCollections选项为mongorestore指定并行恢复的集合数。
  • 新选项-excludeCollection和--excludeCollectionsWithPrefix可以为mongodump指定排除的集合。
  • mongorestore现在除了从文件中读取BSON数据外,还支持从标准输入流中接受BSON数据。
  • mongostatmongotop现在可以使用--json选项指定输出JSON格式。
  • mongoimportmongorestoremongofiles添加了可配置的写关注,请使用--writeConcern选项。
  • mongofiles现在允许使用--prefix选项配置GridFS前缀,因此现在可以使用自定义的命名空间在同一个数据库中存储多个GridFS命名空间。

扩展阅读:

MongoDB工具改进

索引

  • 后台构建索引现在不会因为dropDatabasedropdropIndexes操作影响到相关数据库或集合而中断。dropDatabasedropdropIndexes命令现在和2.6版本中一样,会返回“后台操作正在进行”而失败。
  • 如果你为createIndexes命令指定了多个索引,
    • 命令只会扫描集合一次,并且
    • 如果至少有一个集合需要在前台构建,该操作会在前台构建所有索引。
    • 对于分版集合,现在如果索引包含了分片键,则可以覆盖针对mongos进行的查询。

扩展阅读:

MongoDB 3.0兼容性改进中的索引章节

查询加强

MongoDB 3.0包含了以下查询增强:

发行版

多数非企业级MongoDB发行版现在包含了SSL支持。之前只有MongoDB企业版发行版自带SSL支持;而对于非企业版发行版,你只能使用--ssl标识在本地编译MongoDB(例如scons --ssl)。

MongoDB企业版特性

审计

MongoDB企业版中的审计功能可以按审计消息中的任意字段过滤,包括在param文档中的的字段。这个加强,加上auditAuthorizationSuccess参数,使审计可能过滤CRUD操作。然而,相对于只对认证失败时开启auditAuthorizationSuccess,对所有授权成功的审计开启会降低性能。

附加信息

影响兼容性的改进

在3.0中的一些修改可能影响兼容性,可能需要用户关注。需要阅读影响兼容性的所有修改,请参考MongoDB 3.0兼容性改进

升级过程

查看升级到MongoDB 3.0以获取完整的升级说明。

下载

要下载MongoDB 3.0请到下载页面

额外资源

[译]MongoDB 3.0发布说明的更多相关文章

  1. (转)重磅出击:MongoDB 3.0正式版即将发布

    MongoDB 今天宣布 3.0 正式版本即将发布.这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统. MongoDB 3.0 在性能和伸缩性方面都 ...

  2. 【转】MongoDB 3.0 正式版本即将发布,强力推荐

    MongoDB 今天宣布3.0 正式版本即将发布.这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统. MongoDB 3.0 在性能和伸缩性方面都有 ...

  3. WiredTiger 4.1.0 发布,MongoDB 存储引擎

    WiredTiger 4.1.0 发布了.WiredTiger 是一个开源的.高性能.可伸缩的 MongoDB 数据存储引擎. 下面是一些性能比较图表: 该版本暂未提供更新内容. 下载地址: Sour ...

  4. 译 .NET Core 3.0 发布

    原文:<Announcing .NET Core 3.0> 宣布.NET Core 3.0 发布 很高兴宣布.NET Core 3.0的发布.它包括许多改进,包括添加Windows窗体和W ...

  5. CentOS7 安装MongoDB 3.0服务器

    1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...

  6. 新年新技术:MongoDB 3.0

    前一篇介绍了HTTP/2,这一篇简单介绍下3月3号发布的MongoDB 3.0. What’s new in MongoDB 3.0? 新的存储引擎WiredTiger MongoDB 3.0的存储引 ...

  7. MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务

    目录(?)[-] 1下载安装 2MongoDB CRUD 1创建数据 2更新数据 3删除 4查询 5更多方法 3MongoDB可视化工具 4总结   本文原文连接: http://blog.csdn. ...

  8. CentOS7 安装MongoDB 3.0服务

    1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...

  9. [译]MongoDb生产环境注意事项

    译注: 本文是翻译MongoDB Manuel中的MongoDB Production Notes一节内容.这节内容重点关注生产环境中影响性能和可靠性的各种注意事项,值得正在部署MongoDB的工作者 ...

随机推荐

  1. ElasticSearch 常用的查询过滤语句

    query 和  filter 的区别请看: http://www.cnblogs.com/ghj1976/p/5292740.html Filter DSL term 过滤 term主要用于精确匹配 ...

  2. 立体匹配:关于OpenCV读写middlebury网站的给定的视差并恢复三维场景的代码

    Middlebury是每个研究立体匹配算法的人不可能不使用的网站,Middlebury提供了许多标准的测试库,这极大地推进了立体匹配算法的进展.Middlebury提供的标准库,其计算出的视差保存在后 ...

  3. Chapter Querying Data

    Chapter Querying Data XF获取数据的三种方法: 其中参数schema,参见 Chapter Schema. 下面列出一个后面将会用到的schema片段,称之为片段A: <U ...

  4. JS浮点数运算BUG破法

    JS里,0.3*3 = 0.8999999999999999 破法1:((0.3*10)*3)/10 破法2:(0.3*3).toFixed(2)//保留两位小数 原因:js浮点数用的是IEEE754 ...

  5. 0901~0907面试总结(腾讯CDC、金蝶)

    纯脑记,但应该不会差太多 20150901腾讯CDC面试(初级外包岗) 0826的上午先用QQ进行了初步沟通,要求做一个不考虑AI的井字棋游戏,0830上午E-mail上交了做好的DEMO,然后等了几 ...

  6. C/C++程序基础

    作为一名cocos2dx前端(客户端)开发,知乎上看到一片文章,怎么看待做手游cocos前端开发,lua用的多,c++用的少面试会被鄙视? 为了不被鄙视,所以要学好C++,多做积累.本文主要是根据&l ...

  7. qemu-kvm和openvswitch安装部署-qemu-kvm和openvswitch原型环境部署和基本测试 (1)

    qemu-kvm和openvswitch安装部署 本文包含两个部分: qemu-kvm的安装部署 openvswitch的安装部署 参考文档: kvm官网:http://www.linux-kvm.o ...

  8. 慕课网-安卓工程师初养成-4-14 Java 循环语句之多重循环

    来源:http://www.imooc.com/code/1497 循环体中包含循环语句的结构称为多重循环.三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环.在二重循环中,外层循环每执行 ...

  9. js判断汉字字数

    js判断汉字字数的东东 //**************************************************************** //* 名 称:DataLength // ...

  10. Windows7下安装IIS出现“出现错误,并非所有的功能被成功更改

    1.开始,搜索输入UAC-->选择 “更改用户账户控制设置” 2.调到最低 3.打开控制面板-->程序-->打开或关闭windows功能,去掉图里的2个选项,点确定,重启 4.重启后 ...