对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

AutoMerger

Starting in MongoDB 7.0, the balancer can automatically merge chunks that meet the mergeability requirements.

The AutoMerger runs in the background as part of balancing operations. For most use cases, the default settings perform well. For details on which settings to customize for your deployment, see AutoMerger Policy.

当 AutoMerger 运行时,它会将每个集合的每个分片的所有可合并数据块序列压缩在一起。

除非明确禁用,否则 AutoMerger 将在负载均衡器第一次启用时启动,并在例程耗尽后暂停下一个 autoMergerIntervalSecs。

启用 AutoMerger 后,每autoMergerIntervalSecs秒进行一次自动合并。

对于给定的集合,AutoMerger 保证后续合并至少延迟 autoMergerThrottlingMS 指定的时间。

如果设置了均衡窗口,AutoMerger 仅在该窗口期间运行。

自动合并是均衡操作的一部分。 为了决定是否以及何时执行自动合并,按以下顺序考虑设置:

  1. 每个集合的平衡设置(通过 configureCollectionBalancing 配置)

  2. 每个集合的 AutoMerger 设置(通过 configureCollectionBalancing 配置)

mergeAllChunksOnShard 查找并合并同一分片上collection的所有可合并数据块。同一collection中的两个或多个连续数据块在满足以下所有条件时是可合并的:

  • 它们属于同一个分片。

  • 它们不是 jumbo 块。jumbo 块不可合并,因为它们无法参与迁移。

  • 可以安全地清除它们的历史记录,而不会中断事务和快照读取:

此示例假定所有数据块的历史记录为空,并且所有数据块都是非巨型数据块。由于这两个条件都成立,因此同一分片上的所有连续间隔都是可合并的。

这些数据块属于一个名为 coll 的集合,其分片键为 x。总共有九个数据块。

数据段ID
Min
Max
分片

A

x: 0

x: 10

分片0

B

x: 10

x: 20

分片0

C

x: 20

x: 30

分片0

D

x: 30

x: 40

分片0

E

x: 40

x: 50

分片 1

F

x: 50

x: 60

分片 1

G

x: 60

x: 70

分片0

h

x: 70

x: 80

分片0

I

x: 80

x: 90

分片 1

1
db.adminCommand( { mergeAllChunksOnShard: "db.coll", shard: "Shard0" } )

此命令会合并连续的数据段序列:

  • A-B-C-D

  • G-H

2
db.adminCommand( { mergeAllChunksOnShard: "db.coll", shard: "Shard1" } )

此命令会合并连续的数据段 EF 序列。

这些命令完成后,连续的块将被合并。总共有四个块,而不是原来的九个。

数据段ID
Min
Max
分片

A-B-C-D

x: 0

x: 40

分片0

E-F

x: 40

x: 60

分片 1

G-H

x: 60

x: 80

分片0

I

x: 80

x: 90

分片 1

给本页内容打分

在此页面上