On this page
MongoDB 3.2 发行说明
在本页面
- 2015 年 12 月 8 日*
MongoDB 3.2 现在可用。主要功能包括 WiredTiger 作为默认存储引擎,复制选举增强功能,配置服务器作为副本集,readConcern
以及文档验证。
还可以使用 OpsManager 2.0. 有关更多信息,请参见Ops Manager 文档和Ops Manager 发行说明。
Minor Releases
-
- [MMAP](release-notes-3.2-changelog.html#mmap)
-
- [MMAP](release-notes-3.2-changelog.html#id126)
-
- [MMAP](release-notes-3.2-changelog.html#id192)
3.2.22-2018 年 12 月 28 日
SERVER-38425 Oplog 可见性查询是 3.2.21 中的集合扫描
3.2.21-2018 年 9 月 7 日
SERVER-32999:平台支持:删除 Debian 7.
SERVER-36010将 Windows 堆栈跟踪的日志消息更改为使用 error()或 strict()而不是 log()。
SERVER-30724初始同步可能会错过开始时正在运行的操作。
3.2.20-2018 年 5 月 10 日
SERVER-32241:即使嵌套的 applyOps 失败,applyOps 也会报告成功。
SERVER-32923:平台支持:删除 SLES11 版本。
SERVER-31535:平台支持:删除 Ubuntu 12.04 版本。
3.2.19-2018 年 2 月 6 日
SERVER-30189:减少大型$ in 表达式对分配器的调用
SERVER-30853:更新 Mongod 初始化脚本以设置无限的锁定内存
SERVER-32001:对部分唯一索引中的键取消索引可能会导致服务器崩溃
SERVER-32048:使用数字路径组件进行更新可能会导致无法创建索引条目
3.2.18-2017 年 11 月 29 日
SERVER-29287:将 pcre 升级到 8.41
SERVER-31101:由于长期运行 OperationContext,在删除集合后未删除 WT 表
SERVER-31149:启用恢复进度消息
3.2.17-2017 年 9 月 28 日
Issues fixed:
SERVER-30636:RangeDeleterassert 由于复制滞后而失败
SERVER-30943:尝试访问 JS 范围内的无效 BSON 对象时出现分段错误
WT-3327:如果时间倒流,检查点可能会挂起
3.2.16-2017 年 7 月 27 日
Issues fixed:
SERVER-26952:缓存 SCRAM-SHA-1 ClientKey
SERVER-28578:从 PV0 升级到 PV1 时,在写入 lastVote 文档之前,我们不应该从重新配置中返回。
SERVER-29568:通过 setParameter 启用 OpenSSL 密码套件的配置
3.2.15-2017 年 7 月 5 日
Issues fixed:
SERVER-29237:为mongos添加 ShardingTaskExecutorPoolMaxConnecting 标志。
SERVER-29850:由于 WiredTiger 内部页面拆分中的错误而导致访问冲突。
WT-3362:在检查点期间,游标打开永远不会阻塞。
3.2.14-2017 年 6 月 13 日
Issues fixed:
SERVER-26452:
renameCollection
应该处理写冲突。SERVER-29365:无操作
applyOps
在返回之前不 await 多数 writeConcern。SERVER-28014:当 ssl 模式为
preferSSL
时,应记录不使用 SSL 的连接。
3.2.13 – 2017 年 5 月 1 日
Issues fixed:
SERVER-3181:将
nameOnly
选项添加到 listDatabases,仅获取数据库名称,而不获取大小信息。SERVER-21818:在 FTDC 中捕获系统 Metrics
SERVER-25318:限制大容量索引构建的总内存利用率
3.2.12 – 2017 年 2 月 1 日
Issues fixed:
如果
pv1
中的SERVER-27125仲裁人可以看到与候选人同等或更高优先级的健康初选,则他们应在选举中不投票。SERVER-25012:
createIndex
按住锁定时阻止了检查点的持续时间。SERVER-25865:$group在 Windows 上运行缓慢。
3.2.11 – 2016 年 11 月 18 日
Issues fixed:
SERVER-26182:在具有 v3.2 和 v3.0 成员的混合版本副本集中,从 v3.0 成员同步 v3.2 成员可能会导致查询响应超过 16 MB BSON 大小限制,并使 v3 崩溃。 2 名成员。
SERVER-24662:升级到与 Perl 兼容的正则表达式(PCRE 8.39)。
SERVER-26652 Debian 在
systemd
配置中无效的定义。聚合管道中的SERVER-24386:
killCursor
操作可能导致分段错误。
3.2.10 – 2016 年 9 月 30 日
Issues fixed:
SERVER-25974:当 WT 缓存利用率已满时,应用程序线程可能会停滞较长时间。
SERVER-20306:具有 WiredTiger 的 MongoDB 可能会遇到过多的内存碎片,从而导致交换和/或内存不足错误。
SERVER-16801:将一种数字类型的字段更新为相同数量的不同数字类型时,更新操作会将其视为 noop。
3.2.9 – 2016 年 8 月 16 日
Issues fixed:
SERVER-7285:在将来兼容的 Ubuntu 发行版中支持 systemd。
WT-2798:禁用日记功能时,在 WiredTiger 上创建操作可能会导致崩溃而导致数据不一致。
SERVER-17856:在mongod个实例上,用户可以自行运行currentOp和killOp。
3.2.8 – 2016 年 7 月 12 日
Issues fixed:
SERVER-18329:Debian 8(Jessie)软件包。
SERVER-24580:WiredTiger 缓存已满时提高性能。
WT-2696:不正常关机时的竞争状况可能会丢失具有较大更新的日志记录。
WT-2706:日志文件开关上的争用情况可能会导致缺少日志记录。
3.2.7 – 2016 年 6 月 7 日
Issues fixed:
SERVER-24054:某些 NaN 加载时 JS 分段错误。
SERVER-24058:连接池 asio 不接受设置超时。
SERVER-24117:Mongo 二进制文件 ELF 堆栈已变为可执行文件。
3.2.6 – 2016 年 4 月 28 日
- 内存存储引擎的第一个生产版本。
Issues fixed:
SERVER-22970:后台索引构建可能会导致额外的索引键条目,这些条目与索引文档不对应。
SERVER-22043:mongo Shell 方法count()忽略读取首选项。
3.2.5 – 2016 年 4 月 14 日
Issues fixed:
SERVER-22964:在 awaitWiredTiger 缓存逐出时保持 IX GlobalLock。
SERVER-22831:查询速率低,缓存压力大,并且有一个空闲的集合。
SERVER-21681:包括内存存储引擎的索引大小统计信息。
3.2.4 – 2016 年 3 月 8 日
Issues fixed:
SERVER-22495,SERVER-22728:在禁用日记功能的情况下运行时更新 optime。
SERVER-22269:已阅读问题
majority
反映了主数据库上的日记状态SERVER-22683:replication.enableMajorityReadConcern忽略实际设置值,而是表示
true
。mongo shell 中的SERVER-22043:count()方法不应用读取首选项。
3.2.3 – 2016 年 2 月 17 日
Issues fixed:
SERVER-22261:对于 MMAPv1 日记记录,“最后序号”文件(
lsn
文件)可能在同步到数据文件之前。SERVER-22167:在某些情况下,插入操作无法将
_id
字段添加到大型文档中。SERVER-22456:查询操作日志的超时时间增加到 1 分钟。
3.2.2 – 2016 年 2 月 16 日
被 MongoDB 3.2.3 取代。希望运行 MongoDB 3.2 的用户应跳过 3.2.2 并直接升级到 3.2.3.
3.2.1 – 2016 年 1 月 12 日
Issues fixed:
SERVER-21868:在常规关闭副本集期间,辅助副本可能会将某些已复制但尚未应用的操作标记为成功应用。
SERVER-20262:在 Windows 上使用 WiredTiger 改善插入工作负载性能。
SERVER-21366:在块移动期间长时间运行的事务。
默认为 WiredTiger
从 3.2 开始,MongoDB 使用 WiredTiger 作为默认存储引擎。
要指定 MMAPv1 存储引擎,您必须指定存储引擎设置之一:
- 在带有
--storageEngine
选项的命令行中:
mongod --storageEngine mmapv1
- 或在configuration file中,使用storage.engine设置:
storage:
engine: mmapv1
Note
对于现有部署,如果未指定--storageEngine
或storage.engine设置,则 MongoDB 3.2 可以自动确定用于在--dbpath
或storage.dbPath中创建数据文件的存储引擎。
如果指定--storageEngine
或storage.engine,则如果dbPath
包含由指定存储引擎以外的存储引擎创建的数据文件,则mongod将不会启动。
See also
WiredTiger 默认缓存大小
从 MongoDB 3.2 开始,默认情况下,WiredTiger 内部缓存将使用以下两者中的较大者:
60%的 RAM 减去 1 GB,或者
1 GB.
有关更多信息,请参见WiredTiger 和内存使用。
WiredTiger 日记写频率
MongoDB 3.2 将 WiredTiger 配置为每 50 毫秒写入一次日记文件。这是对现有日志写入间隔和条件的补充。有关更多信息,请参见Journaling Process。
复制选举功能增强
从 MongoDB 3.2 开始,MongoDB 减少了副本集故障转移时间,并加快了对多个同时存在的主数据库的检测。
作为此增强功能的一部分,MongoDB 引入了复制协议的版本 1.默认情况下,新副本集将使用protocolVersion: 1。 MongoDB 的早期版本使用协议的版本 0.
此外,MongoDB 引入了新的副本集配置选项electionTimeoutMillis。 electionTimeoutMillis指定以毫秒为单位的时间限制,以检测副本集的主数据库何时不可用。
electionTimeoutMillis仅在使用replication protocol的版本 1 时适用。
See also
分片群集增强
MongoDB 3.2 不赞成将三个镜像的mongod实例用于配置服务器。
而是从 3.2 开始,可以将分片群集的config servers部署为副本集。副本集配置服务器必须运行 WiredTiger 存储引擎。
由于 MongoDB 可以利用标准副本集读写协议来分摊配置数据,因此此更改可提高配置服务器之间的一致性。此外,由于副本集最多可包含 50 个成员,因此这允许分片群集具有 3 个以上的配置服务器。
有关更多信息,请参见Config Servers。要使用副本集配置服务器部署“新”分片集群,请参阅部署分片集群。
MongoDB 3.6 不赞成使用主从复制。
自 MongoDB 3.2 起,分片群集组件已弃用主从复制。
readConcern
MongoDB 3.2 为副本集和副本集分片引入了readConcern
查询选项。对于WiredTiger 存储引擎,readConcern
选项允许 Client 端选择其读取的隔离级别。您可以指定_6 的readConcern
来读取已写入大多数节点并且因此无法回滚的数据。默认情况下,MongoDB 使用"local"
的readConcern
返回查询时该节点可用的最新数据,即使该数据尚未持久化到大多数节点并可能回滚。使用MMAPv1 存储引擎时,您只能指定"local"
的readConcern
。
readConcern
需要为 MongoDB 3.2 更新的 MongoDB 驱动程序。
有关readConcern
的详细信息,包括支持该选项的操作,请参见Read Concern。
Partial Indexes
MongoDB 3.2 提供了创建仅对满足指定过滤器表达式的集合中的文档编制索引的索引的选项。通过索引集合中文档的子集,部分索引具有较低的存储需求,并降低了索引创建和维护的性能成本。您可以为所有 MongoDB index types指定partialFilterExpression
选项。
partialFilterExpression
选项接受使用以下条件指定条件的文档:
等式表达式(即
field: value
或使用$eq运算符),$exists: true expression,
$type expressions,
$and仅限顶级运算符
有关详细信息,请参见Partial Indexes。
Document Validation
从 3.2 开始,MongoDB 提供了在更新和插入期间验证文档的功能。验证规则是基于每个集合指定的。
要在新集合上指定文档验证,请在db.createCollection()方法中使用新的validator
选项。要将文档验证添加到现有集合中,请在collMod命令中使用新的validator
选项。有关更多信息,请参见Schema Validation。
要查看集合的验证规范,请使用db.getCollectionInfos()方法。
以下操作可以使用新选项bypassDocumentValidation
绕过每个操作的验证:
Command | mongo Shell 方法 |
---|---|
aggregate与$out一起使用 | db.collection.aggregate()与$out一起使用 |
applyOps | |
cloneCollection | |
clone | |
copydb | |
findAndModify | db.collection.findAndModify() |
insert | |
mapReduce | db.collection.mapReduce() |
update |
对于已启用访问控制的部署,您必须执行bypassDocumentValidation操作。内置角色dbAdmin和restore提供此操作。
汇总框架增强功能
MongoDB introduces:
新阶段,累加器和表达式。
累加器表达式的可用性进入$project阶段。
Performance improvements在分片群集上。
新的聚集阶段
Stage | Description | Syntax |
---|---|---|
$sample | 从其 Importing 中随机选择 N 个文档。 | { $sample: { size: <positive integer> } } |
$indexStats | 返回有关索引使用情况的统计信息。 | { $indexStats: { } } |
$lookup | 与另一个集合执行左外部联接。 | { |
$lookup: { from: <collection to join>, localField: <fieldA>, foreignField: <fieldB>, as: <output array field> } } |
$ group 阶段的新累加器
Accumulator | Description | Syntax |
---|---|---|
$stdDevSamp | 计算标准偏差。 | { $stdDevSamp: <array> } |
$stdDevPop | 计算总体标准差。 | { $stdDevPop: <array> } |
新的聚合算术运算符
Operator | Description | Syntax |
---|---|---|
$sqrt | 计算平方根。 | { $sqrt: <number> } |
$abs | 返回数字的绝对值。 | { $abs: <number> } |
$log | 以指定的底数计算数字的对数。 | { $log: [ <number>, <base> ] } |
$log10 | 计算数字的以 10 为底的对数。 | { $log10: <number> } |
$ln | 计算数字的自然对数。 | { $ln: <number> } |
$pow | 将数字提高到指定的指数。 | { $pow: [ <number>, <exponent> ] } |
$exp | 将* e *提高到指定的指数。 | { exp: <number> } |
$trunc | 将数字截断为其整数。 | { $trunc: <number> } |
$ceil | 返回大于或等于指定数字的最小整数。 | { $ceil: <number> } |
$floor | 返回小于或等于指定数字的最大整数。 | { floor: <number> } |
新的聚合阵列运算符
Operator | Description | Syntax |
---|---|---|
$slice | 返回数组的子集。 | { $slice: [ <array>, <n> ] } |
or { $slice: [ <array>, <position>, <n> ] } |
||
$arrayElemAt | 返回指定数组索引处的元素。 { $arrayElemAt: [ <array>, <idx> ] } |
|
$concatArrays | Concatenates arrays. | { $concatArrays: [ <array1>,<array2>,...] } |
$isArray | 确定操作数是否为数组。 { $isArray: [ <expression> ] } |
|
$filter | 根据条件选择数组的子集。 | { $filter: { input: <array>, as: <string>, cond: <expression> } } |
累加器表达式的可用性
从 3.2 版开始,以下以前仅在$group阶段可用的累加器表达式现在在$project阶段也可用:
当用作$project阶段的一部分时,这些累加器表达式可以接受以下任一个:
单个参数:
<accumulator> : <arg>
多个参数:
<accumulator> : [ <arg1>, <arg2>, ... ]
General Enhancements
在 MongoDB 3.2 中,$project阶段支持使用方括号
[]
直接创建新的数组字段。有关示例,请参见投影新的数组字段。MongoDB 3.2 在$geoNear阶段引入了
minDistance
选项。$unwind阶段不再在非数组操作数上出错。如果操作数不能解析为数组,但不丢失,为 null 或为空数组,则$unwind会将操作数视为单个元素数组。
$unwind阶段可以:
通过在阶段规范中指定新的选项
includeArrayIndex
,在输出中包含数组元素的数组索引。- 通过在阶段规范中指定新选项
preserveNullAndEmptyArrays
,输出缺少数组字段,空值或空数组的文档。
- 通过在阶段规范中指定新选项
为了支持这些新功能,$unwind现在可以采用其他语法。有关详情,请参见$unwind。
Optimization
索引可以cover聚合操作。
MongoDB 改善了大型分片群集中管道的整体性能。
如果管道在分片键上以精确的$match开头,则整个管道仅在匹配的分片上运行。以前,管道会被拆分,并且合并它的工作必须在主碎片上完成。
对于在多个分片上运行的聚合操作,如果这些操作不需要在数据库的主分片上运行,则这些操作可以将结果路由到任何分片以合并结果,并避免该数据库的主分片过载。需要在数据库的主分片上运行的聚合操作为$out阶段和$lookup阶段。
Compatibility
有关兼容性的更改,请参见聚合兼容性更改。
MongoDB 工具增强功能
mongodump和mongorestore通过新的
--archive
选项添加了对存档文件和标准输出/Importing 流的支持。此增强功能允许通过管道在网络设备上流转储数据。有关示例,请参见mongodump和mongorestore通过新的
--gzip
选项添加了对压缩数据转储的支持。此增强功能减少了转储文件的存储空间。有关示例,请参见:
加密的存储引擎
Enterprise Feature
仅在 MongoDB Enterprise 中可用。
Important
仅适用于 WiredTiger 存储引擎。
静态加密与传输加密和保护相关帐户,密码和加密密钥的良好安全策略结合使用时,可以帮助确保符合 HIPAA,PCI-DSS 和 FERPA 等安全和隐私标准。
MongoDB Enterprise 3.2 为 WiredTiger 存储引擎引入了本机加密选项。此功能允许 MongoDB 加密数据文件,以便只有具有解密密钥的各方才能解码和读取数据。有关详细信息,请参见加密存储引擎。
文本搜索增强
Literals 索引版本 3
MongoDB 3.2 引入了text index的版本 3.新版本索引的主要功能是:
Improved case insensitivity.
Additional 标记化的分隔符.
从 MongoDB 3.2 开始,版本 3 是新text索引的默认版本。
See also
$ text 运算符增强
$text运算符增加了对以下内容的支持:
区分大小写的文本搜索使用新的
$caseSensitive
选项,以及变音符号敏感文本搜索和新的
$diacriticSensitive
选项。
有关更多信息和示例,请参见$text运算符参考部分Case Insensitivity和Diacritic Insensitivity。
支持其他语言
Enterprise Feature
仅在 MongoDB Enterprise 中可用。
从 3.2 开始,MongoDB Enterprise 支持以下语言:阿拉伯语,波斯语(特别是达里语和伊朗波斯语),乌尔都语,简体中文和繁体中文。
有关详细信息,请参见使用基础技术 Rosette 语言学平台进行文本搜索。
新的存储引擎
inMemory 存储引擎
Enterprise Feature
仅在 MongoDB Enterprise 中可用。
MongoDB Enterprise 3.2 提供了一个内存存储引擎。除某些元数据外,内存中存储引擎不维护任何磁盘上的数据。通过避免磁盘 I/O,内存中存储引擎使数据库操作的延迟更可预测。
要选择此存储引擎,请指定
--storageEngine选项或storage.engine设置为
inMemory
。--dbpath
。尽管内存存储引擎不会将数据写入文件系统,但它会在--dbpath
中维护小型元数据文件和诊断数据以及用于构建大型索引的临时文件。
inMemory
存储引擎使用文档级锁定。有关更多详细信息,请参见内存中存储引擎。
ephemeralForTest 存储引擎
MongoDB 3.2 提供了一个新的可测试存储引擎。除了某些元数据外,测试存储引擎不会维护任何磁盘上的数据,从而消除了在测试运行之间进行清理的需要。测试用存储引擎不受支持。
Warning
仅用于测试目的。请勿在 Producing 使用。
要选择此存储引擎,请指定
--storageEngine选项或storage.engine设置为
ephemeralForTest
。--dbpath
。尽管测试存储引擎不会将数据写入文件系统,但会在--dbpath
中维护小的元数据文件。
ephemeralForTest
存储引擎使用集合级锁定。
General Enhancements
位测试查询运算符
MongoDB 3.2 提供了新的查询运算符来测试位值:
SpiderMonkey JavaScript 引擎
MongoDB 3.2 使用 SpiderMonkey 作为mongo shell 和mongod服务器的 JavaScript 引擎。 SpiderMonkey 支持其他平台,并具有改进的内存 Management 模型。
此更改会影响所有 JavaScript 行为,包括命令mapReduce,group和查询运算符$where; 但是,此更改对用户应该是完全透明的。
See also
mongo Shell 和 CRUD API
为了提供与 MongoDB 驱动程序的 CRUD(创建/读取/更新/删除)API 的一致性,mongo shell 引入了与驱动程序的 CRUD API 一致的其他 CRUD 方法:
New API | Description |
---|---|
db.collection.bulkWrite() | 等效于初始化Bulk()操作构建器,使用Bulk methods添加操作以及运行Bulk.execute()执行操作。 |
MongoDB 3.2 弃用Bulk()及其关联的methods。
| db.collection.deleteMany() |相当于db.collection.remove()。|
| db.collection.deleteOne() |相当于db.collection.remove(),且justOne
设置为 true;即
db.collection.remove( <query>,true)或db.collection.remove( <query>, )。|
| db.collection.findOneAndDelete() |等效于remove
设置为 true 的db.collection.findAndModify()方法。
| db.collection.findOneAndReplace() |等效于update
设置为替换文档的db.collection.findAndModify()方法。
| db.collection.findOneAndUpdate() |相当于将update
设置为指定使用update operators进行修改的文档的db.collection.findAndModify()方法。
| db.collection.insertMany() |等效于以文件数组作为参数的db.collection.insert()方法。
| db.collection.insertOne() |等效于以单个文档作为参数的db.collection.insert()方法。
| db.collection.replaceOne() |等效于db.collection.update( <query>, <update>)方法,其中替换文档为<update>
参数。
| db.collection.updateMany() |等效于<update>
文档的db.collection.update( <query>, <update>, { multi: true, ... })方法,该文档指定使用update operators并将multi
选项设置为 true 的修改。
| db.collection.updateOne() |等效于<update>
文档的db.collection.update( <query>, <update>)方法,该文档指定使用update operators进行的修改。
WiredTiger 和 fsyncLock
从 MongoDB 3.2 开始,WiredTiger 存储引擎通过lock
选项或mongo shell 方法db.fsyncLock()支持fsync命令。也就是说,对于 WiredTiger 存储引擎,这些操作可以保证数据文件不会更改,从而确保创建备份的一致性。
Platform Support
从 3.2 开始,不建议使用 32 位二进制文件,并且在以后的版本中将不可用。
MongoDB 3.2 还弃用了对 Red Hat Enterprise Linux 5 的支持。
$ type 运算符接受字符串别名
$type运算符除了 BSON 类型对应的数字外,还接受 BSON 类型的字符串别名。
explain()支持 distinct()操作
db.collection.explain()添加了对db.collection.distinct()方法的支持。有关更多信息,请参见db.collection.explain()。
解释对 findAndModify 和不同命令的支持
explain添加了对distinct和findAndModify命令的支持。有关更多信息,请参见explain。
弃用 HTTP 接口
从 3.2 开始,MongoDB 弃用其 HTTP 接口。
个键已检查的计数包括最后扫描的键
对于以executionStats
或allPlansExecution
模式运行的explain
操作,explain output包含keysExamined
统计信息,表示在索引扫描期间检查的索引键的数量。
在 3.2 之前的版本中,某些查询中的keysExamined
计数不包含最后扫描的关键字。从 3.2 开始,此错误已得到纠正。有关更多信息,请参见~explain.executionStats.executionStages.inputStage.keysExamined`。
诊断日志和系统分析器将报告此统计信息。
Geospatial Optimization
MongoDB 3.2 引入了2dsphere indexes的第 3 版,该版本以更好的等级索引GeoJSON geometries。新版本提高了在较小区域内2dsphere index查询的性能。此外,对于2d indexes和2dsphere indexes,对于密集数据集,geoNear 查询的性能已得到改善。
See also
诊断数据捕获
为了便于 MongoDB 工程师分析 MongoDB 服务器行为,MongoDB 3.2 引入了诊断数据收集机制,用于定期将服务器统计信息记录到诊断文件中。默认情况下,该机制每隔 1 秒捕获一次数据。要修改间隔,请参见diagnosticDataCollectionPeriodMillis。
MongoDB 在mongod实例的--dbpath
或storage.dbPath下创建一个diagnostic.data
目录。诊断数据存储在此目录下的文件中。
诊断文件的最大大小可通过diagnosticDataCollectionFileSizeMB配置,而diagnostic.data
目录的最大大小可通过diagnosticDataCollectionDirectorySizeMB配置。
选择捕获间隔的默认值和最大大小是为了向 MongoDB 工程师提供有用的数据,而对性能和存储大小的影响最小。通常,这些值仅需要按 MongoDB 工程师的要求进行修改才能用于特定的诊断目的。
Write Concern
对于使用protocolVersion: 1的副本集,无论j选项如何,辅助节点都会在辅助成员已将其写入各自的磁盘journals之后写入写入操作。
对于使用protocolVersion: 1的副本集,w: "majority"表示j: true。
使用j: true,MongoDB 仅在请求数量的成员(包括主要成员)写入日志后才返回。以前,副本集中的j: true写关注只需要primary写入日志,而不考虑w: <value>写关注。
journalCommitInterval for WiredTiger
MongoDB 3.2 增加了对指定 WiredTiger 存储引擎的日志提交间隔的支持。请参阅--journalCommitInterval选项。在以前的版本中,该选项仅适用于 MMAPv1 存储引擎。
对于相应的配置文件设置,MongoDB 3.2 添加了storage.journal.commitIntervalMs设置并弃用了storage.mmapv1.journal.commitIntervalMs。弃用的storage.mmapv1.journal.commitIntervalMs设置充当新storage.journal.commitIntervalMs设置的别名。
影响兼容性的更改
MongoDB 3.2 的某些更改可能会影响兼容性,并可能需要用户采取措施。有关兼容性更改的详细列表,请参见MongoDB 3.2 中的兼容性更改。
-
- [Changes to the mongo Shell](release-notes-3.2-javascript.html#changes-to-the-mongo-shell) - [Removed Non\-Standard V8 Features](release-notes-3.2-javascript.html#removed-non-standard-v8-features)
Upgrade Process
-
- [Replace with 3\.2 binaries](release-notes-3.2-upgrade.html#replace-with-3-2-binaries)
-
- [Step down the replica set primary\.](release-notes-3.2-upgrade.html#step-down-the-replica-set-primary) - [Upgrade the primary\.](release-notes-3.2-upgrade.html#upgrade-the-primary)
-
- [Upgrade the shards\.](release-notes-3.2-upgrade.html#upgrade-the-shards) - [Upgrade the config servers\.](release-notes-3.2-upgrade.html#upgrade-the-config-servers) - [Upgrade the mongos instances\.](release-notes-3.2-upgrade.html#upgrade-the-mongos-instances) - [Re\-enable the balancer\.](release-notes-3.2-upgrade.html#re-enable-the-balancer)
-
- [Downgrade each shard, one at a time\.](release-notes-3.2-downgrade.html#downgrade-each-shard-one-at-a-time) - [Downgrade the SCCC config servers\.](release-notes-3.2-downgrade.html#downgrade-the-sccc-config-servers) - [Downgrade the mongos instances\.](release-notes-3.2-downgrade.html#downgrade-the-mongos-instances) - [Re\-enable the balancer\.](release-notes-3.2-downgrade.html#re-enable-the-balancer)
-
- [Check the minOpTimeUpdaters value\.](release-notes-3.2-downgrade.html#check-the-minoptimeupdaters-value) - [Prepare CSRS Config Servers for downgrade\.](release-notes-3.2-downgrade.html#prepare-csrs-config-servers-for-downgrade) - [Update the protocolVersion for each shard\.](release-notes-3.2-downgrade.html#update-the-protocolversion-for-each-shard) - [Downgrade the mongos instances\.](release-notes-3.2-downgrade.html#id3) - [Downgrade Config Servers\.](release-notes-3.2-downgrade.html#downgrade-config-servers) - [Downgrade each shard, one at a time\.](release-notes-3.2-downgrade.html#id4) - [Re\-enable the balancer\.](release-notes-3.2-downgrade.html#id5)
有关完整的升级说明,请参见将 MongoDB 升级到 3.2。
3.2.1 中的已知问题
3.2.1 版本中的已知问题列表:
当节点之间的时钟偏差大于
electionTimeout
:SERVER-21744时,Client 端可能无法发现新的主节点。从未为操作日志中的删除设置
fromMigrate
标志:SERVER-21678在连接到 v3.0
mongos
的 v3.2mongo
Shell 程序或连接到 v3.0mongos
的 v3.0mongo
Shell 程序中但以 v3.2 碎片运行explain与_不兼容:SERVER-21661connPoolStats 命令的结果不再正确:SERVER-21597
ApplyOps 后台索引创建可能会死锁:SERVER-21583
使用副本集协议版本
w:majority
写入的性能回归版本 1:SERVER-21581支持 Unicode 的文本处理逻辑(文本索引 v3)的性能回归:SERVER-19936
$indexStats运算符的结果未考虑使用$match或mapReduce函数的查询:SERVER-22048
3.2.0 中的已知问题
3.2.0 版本中的已知问题列表:
探查器未捕获到的 findAndModify 操作:SERVER-21772
getMore命令未设置
"nreturned"
操作计数器:SERVER-21750当节点之间的时钟偏差大于
electionTimeout
:SERVER-21744时,Client 端可能无法发现新的主节点。从未为操作日志中的删除设置
fromMigrate
标志:SERVER-21678在连接到 v3.0
mongos
的 v3.2mongo
Shell 程序或连接到 v3.0mongos
的 v3.0mongo
Shell 程序中但以 v3.2 碎片运行explain与_不兼容:SERVER-21661connPoolStats 命令的结果不再正确:SERVER-21597
ApplyOps 后台索引创建可能会死锁:SERVER-21583
使用副本集协议版本
w:majority
写入的性能回归版本 1:SERVER-21581支持 Unicode 的文本处理逻辑(文本索引 v3)的性能回归:SERVER-19936
Windows 下使用 WiredTiger 的插入工作负载中的性能严重下降:SERVER-21792
$indexStats运算符的结果未考虑使用$match或mapReduce函数的查询:SERVER-22048
Download
要下载 MongoDB 3.2,请转到downloads page。
See also