MongoDB 7.1 发布说明
重要
MongoDB 7.3是一个快速发布,仅支持MongoDB Atlas。 不支持在本地部署使用MongoDB 7.3 。 有关更多信息,请参阅 MongoDB版本控制。
补丁版本
7.1.1 - 2023 年 11月 27 日
修复的问题:
SERVER-81106 接收分片在开始分片阶段之前不会等待集合版本在本地持久化
SERVER-81133 将路由表缓存持久化的加速逻辑
SERVER-81201 限制接收分片在克隆阶段的内存使用
SERVER-81966 避免在刷新期间修改以前的 ChunkMap 实例
WT-7929 研究避免 FTDC 在检查点阶段停滞的解决方案
聚合(Aggregation)
新的聚合阶段
MongoDB 7.1引入以下聚合阶段:
阶段 | 说明 |
---|---|
返回已记录查询的运行时统计信息。 |
警告
$queryStats
聚合阶段不受支持,也不能保证在未来版本中保持稳定。 不要构建依赖于此阶段的特定输出格式的功能,因为输出可能会在将来的版本中发生变化。
一般性变更
分片集合上的 UpdateOneupsert
行为
从MongoDB 7.1开始,在分分片的集合上使用updateOne()
和upsert: true
时,您不需要在过滤中包含完整的分分片键。
并发 DDL 操作
从MongoDB 7.1开始,当您运行针对同一数据库中不同集合的多个DDL 操作时, MongoDB会并发运行这些操作。
此更改向serverStatus
locks
字段和currentOp.locks
输出添加了两种新类型:
DDLDatabase
DDLCollection
为分片集群启用排出游标
从MongoDB7.1 开始,当客户端的mongos
getMore 请求设置 exhaustAllowed 标志时, 支持耗尽游标。当客户端收到数据库服务器针对单个请求的多个回复时,这可以提高分分片的集群上的查询性能。
改进索引构建
从 MongoDB 7.1 开始,索引构建得到了改进,报告速度更快,韧性更强。您还可以使用新的indexBuildMinAvailableDiskSpaceMB
参数设置索引构建所需的最小可用磁盘空间,如果磁盘空间太低,该参数会停止索引构建。
添加了以下新的索引构建指标:
有关完整详细信息,请参阅索引构建。
新增用于数据块迁移的分片统计信息
从 MongoDB 7.1(以及 7.0、6.3.2、6.0.6 和 5.0.18)开始提供。
MongoDB 包含以下用于数据块迁移的新分片统计信息:
分片集群的自管理备份
从 MongoDB 7.1开始, fsync
和fsyncUnlock
命令可以对分片集群执行 fsync 操作。
当在mongos
上运行且lock
字段设立为true
时, fsync
命令会将写入操作从存储层刷新到磁盘并锁定每个分分片,从而阻止其他写入操作。 然后可以使用fsyncUnlock
命令解锁集群。
此功能支持使用mongodump
进行分分片的集群的自我管理备份。
新增参数
auditConfig 参数
MongoDB 7.1添加了auditConfig
集群参数,其中包含有关来自mongod
和mongos
服务器实例的Atlas 审核配置的信息。
indexBuildMinAvailableDiskSpaceMB 参数
MongoDB 7.1添加了indexBuildMinAvailableDiskSpaceMB
参数,该参数允许您设立索引构建所需的最小可用磁盘空间。
使用部分分片键进行查询
从 MongoDB 7.1开始, findAndModify
和deleteOne()
可以使用部分分片键来查询分片集合。
mongos端口范围
从MongoDB 7.1开始, mongos
接受来自 [ 0 , 65535 ] 的--port
值。 有关更多信息,请参阅--port
。
使用提示字段指定查询的索引
从MongoDB 7.1开始,提示字段在distinct
命令中可用,允许您指定查询的索引。
TTL Indexes
从 MongoDB7.1 开始,您可以在固定大小 集合 上创建 TTL 索引 。
超过管道大小限制的错误代码
从 MongoDB 7.1开始,当管道超过管道阶段限制时,聚合命令将引发错误。 有关更多详细信息,请参阅阶段数限制。
serverStatus 输出变更
serverStatus
在其输出中包含以下新字段: