MongoDB 3.0的发布说明

2015年3月3日

MongoDB 3.0现已推出。主要功能包括支持WiredTiger存储引擎、可插拔存储引擎API、SCRAM-SHA-1身份验证机制以及改进的explain功能。

MongoDB Ops Manager现在也可用,其中包括自动化、备份和监控。请参阅Ops Manager文档Ops Manager发布说明了解更多信息。

主要变化

可插拔存储引擎API

MongoDB 3.0引入了一个可插拔存储引擎API,允许第三方为MongoDB开发存储引擎。

WiredTiger

MongoDB 3.0引入了对WiredTiger存储引擎。由于支持WiredTiger,MongoDB现在支持两个存储引擎:

  • MMAPv1,以前版本的MongoDB可用的存储引擎和MongoDB 3.0的默认存储引擎,以及
  • WiredTiger,仅在MongoDB 3.0的64位版本中可用。
WiredTiger使用

WiredTiger是默认MMAPv1存储引擎的替代品。WiredTiger支持所有MongoDB功能,包括报告服务器、数据库和集合统计信息的操作。然而,切换到WiredTiger需要更改磁盘存储格式。有关将存储引擎更改为WiredTiger的说明,请参阅升级MongoDB到3.0文档中的相应部分。

MongoDB 3.0复制集和分片集群可以具有具有不同存储引擎的成员;但是,性能可能因工作量而异。有关详细信息,请参阅升级MongoDB到3.0文档中的相应部分。

WiredTiger存储引擎需要最新的官方MongoDBdrivers。有关更多信息,请参阅WiredTiger和驱动程序版本兼容性。

另见:

WiredTiger配置

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

另见:

WiredTiger存储引擎

WiredTiger并发和压缩

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

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

另见:

博客文章《生产说明》中的WiredTiger部分MongoDB 3.0中的新压缩选项

MMAPv1改进

MMAPv1并发改进

在3.0版本中,MMAPv1存储引擎增加了对集合级锁定的支持。

MMAPv1配置更改

为了支持多个存储引擎,MMAPv1的一些配置设置已经更改。请参阅配置文件选项更改。

MMAPv1记录分配行为更改

MongoDB 3.0不再实现动态记录分配并弃用paddingFactor。在使用MMAPv1的实例中,集合的默认分配策略是2分配的幂,已对其进行了改进以更好地处理大型文档。在3.0中,该 usePowerOf2Sizes标志将被忽略,因此2策略的幂将用于所有未noPadding设置标志的集合。

对于仅由插入或就地更新(如增量计数器)组成的工作负载集合,您可以禁用2strategy的幂。要禁用集合2策略的幂,请使用collMod带有noPadding标志或db.createCollection()方法与noPadding选项。

警告:

如果工作负载包括可能导致文档增长的删除或任何更新,请勿设置noPadding。有关更多信息,请参阅没有填充分配策略。

当磁盘空间不足时,MongoDB 3.0不再在所有写入上出错,而仅在所需的磁盘分配失败时出错。因此,MongoDB现在允许就地更新,并在磁盘空间不足时进行删除。

另见:

动态记录分配

副本集

副本集成员数量增加

在MongoDB 3.0中,复制集最多可以有50个成员。以下驱动程序支持较大的副本集:

  • 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驱动程序,可以串列发现和监控副本集成员,因此不适合与大型副本集一起使用。

投票成员的最大数量保持为7。

复本集降级行为更改

副本集的主要成员用于下台的过程有以下更改:

  • 在下台之前,replSetStepDown将尝试终止长期运行的用户操作,这些操作将阻止主操作下调,例如索引构建、写入操作或地图减少作业。
  • 为了帮助防止回滚,replSetStepDown将等待可选择的中学赶上初选状态,然后再下台。以前,初选会在初选后10秒内等待次要赶上(即复制滞后为10秒或更短的次要),然后再下台。
  • replSetStepDown现在允许用户指定asecondaryCatchUpPeriodSecs参数,以指定主参数在降级之前应该等待多长时间才能赶上。

其他副本集操作更改

  • 初始同步可以更有效地为每个集合构建索引,并使用线程批量应用oplog条目。
  • w的定义:“多数”写入关注更改为平均大多数投票节点。
  • 副本集配置的更严格限制。有关详细信息,请参阅Replica Set配置验证。
  • 对于辅助成员的先前存在集合,MongoDB 3.0不再自动构建缺失的_id索引。

另见:

MongoDB 3.0中兼容性变化的复制变化

分片集群

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

另见:

MongoDB 3.0兼容性更改中的分片集群设置

安全性改进

MongoDB 3.0包括以下安全增强功能:

  • MongoDB 3.0添加了新的 SCRAM-SHA-1 质询-响应用户身份验证机制。SCRAM-SHA-1如果您当前的驱动程序版本不支持,则需要升级驱动程序SCRAM-SHA-1。有关支持的驱动程序版本SCRAM-SHA-1,请参阅Requirements.
  • 增加了使用Localhost异常访问MongoDB时的限制。有关详细信息,请参阅本地主机异常已更改。

另见:

安全变更

改进

新的查询自检系统

MongoDB 3.0包括一个新的查询自检系统,该系统提供了改进的输出格式以及对查询计划和查询执行的更细粒度的自检。

有关详细信息,请参阅新的db.collection.explain()方法和新的explain命令以及更新的cursor.explain()方法。

有关新输出格式的信息,请参阅解释结果。

增强的日志记录

为了提高日志消息用于诊断的可用性,MongoDB将一些日志消息归类为特定组件或操作下,并提供为这些组件设置详细度级别的能力。有关信息,请参阅日志消息。

MongoDB工具增强功能

mongosniffmongoperf外,所有MongoDB工具现在都用Go编写,并作为一个单独的项目进行维护。

  • 并行化的新选项mongodumpmongorestore。您可以控制收集的数量mongorestore将使用--numParallelCollections选项一次恢复。
  • 新选项 -excludeCollection--excludeCollectionsWithPrefix 用于 mongodump排除集合。
  • mongorestore除了从文件中读取BSON数据外,现在还可以接受标准输入的BSON数据输入。
  • mongostatmongotop现在可以使用--json选项以JSON格式返回输出。
  • mongoimportmongorestore,和mongofiles。使用--writeConcern选项。默认的writeConcern已更改为“w:majority”。
  • mongofiles现在允许您使用--prefix选项配置GridFS前缀,以便您可以使用自定义命名空间并将多个GridFS命名空间存储在单个数据库中。

另见:

MongoDB工具更改

索引

  • 如果受索引构建影响的数据库或集合发生dropDatabasedropdropIndexes操作,后台索引构建将不再自动中断。ThedropDatabase、dropdropIndexes命令仍然会失败,其中包含a background operation is currently running的错误消息,如2.6。
  • 如果您为createIndexes命令指定多个索引,
    • 命令只扫描一次集合,并且
    • 如果要在前台构建至少一个索引,则操作将在前台构建所有指定的索引。
  • 对于分片集合,如果索引包含碎片键,索引现在可以覆盖针对mongos执行的查询

另见:

MongoDB 3.0中兼容性变化的指数

查询增强功能

MongoDB 3.0包括以下查询增强功能:

另见:

2d索引和地理空间近查询

发行版和支持版本

大多数非企业MongoDB发行版现在都支持TLS/SSL。以前,只有MongoDB Enterprise发行版包含TLS/SSL支持;对于非企业发行版,您必须使用--ssl标志(即scons --ssl)在本地构建MongoDB。

32位MongoDB版本可用于测试,但不用于生产。32位MongoDB版本不包括WiredTiger存储引擎。

MongoDB为Solaris构建的不支持WiredTiger存储引擎。

MongoDB版本适用于Windows Server 2003和Windows Vista(作为“64位遗产”),但官方支持的最低版本是Windows Server 2008。

另见:

平台支持

软件包存储库

适用于3.0及更高版本的非企业MongoDB Linux软件包在一个新存储库中。按照适当的Linux安装说明从新位置安装3.0软件包。

MongoDB企业功能

审计

MongoDB Enterprise中的审计可以过滤审计消息中的任何字段,包括param文档中返回的字段。此增强功能以及auditAuthorizationSuccess参数,使审计能够过滤CRUD操作。然而,使auditAuthorizationSuccess审计所有授权成功比仅审计授权失败更能降低性能。

其他信息

影响兼容性的变化

3.0中的一些更改可能会影响兼容性,并可能需要用户操作。有关兼容性更改的详细列表,请参阅MongoDB 3.0中的兼容性更改。

升级流程

有关完整的升级说明,请参阅将MongoDB升级到3.0

下载

要下载MongoDB 3.0,请转到下载页面。

另见:

译者:韩鹏帅 参见

原文 - Release Notes for MongoDB 3.0

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""