ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

AutoMerger

項目一覧

MongoDB 7.0以降、バランサーは マージ可能性 要件を満たすチャンクを自動的にマージできます。

AutoMerger は、バランシング操作の一部としてバックグラウンドで実行されます。 ほとんどのユースケースでは、デフォルト設定が適切にパフォーマンスされます。 配置に合わせてカスタマイズする設定の詳細については、「 AutoMerger ポリシー 」を参照してください。

AutoMerger が実行されると、各コレクションの各シャードのマージ可能なチャンクのすべてのシーケンスがまとめられます。

明示的に無効にされていない限り、バランサーが初めて有効になっているときに AutoMerger は起動され、ルーチンが空になった後に次のautoMergerIntervalSecsのために一時停止します。

AutoMerger が有効になっている場合、自動マージはautoMergerIntervalSecs秒ごとに発生します。

AutoMerger は特定のコレクションに対して、後続のマージが少なくともautoMergerThrottlingMSで指定された量より遅延することを保証します。

バランシング ウィンドウが設定されている場合、AutoMerger は ウィンドウ中にのみ実行されます。

オートマージはバランシング操作の一部として行われます。 オートマージを実行するかどうか、またいつ実行するかを決定するために、 設定が次の順序で考慮されます。

  1. グローバルバランシング設定

  2. コレクションごとのバランシング設定( configureCollectionBalancingによって構成)

  3. グローバルAutoMerger 設定

  4. コレクションごとの AutoMerger 設定( configureCollectionBalancingによって構成)

mergeAllChunksOnShardは、同じシャード上にコレクションのすべての マージ可能なチャンク を検索してマージします。 同じコレクション内の 2 つ以上連続するチャンクは、次の条件をすべて満たす場合にマージできます。

この例では、履歴がすべてのチャンクで空で、すべてのチャンクが非 ジャンボ であることを前提としています。 両方の条件が true であるため、同じシャード上のすべての連続した間隔がマージ可能です。

これらのチャンクは、シャードキーx coll持つ という名前のコレクションに属しています。 チャンクは合計 9 個あります。

チャンク 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" } )

このコマンドは、連続する チャンク シーケンスをマージします。

  • ABCD

  • SH

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

このコマンドは、チャンク Ref の連続したシーケンスをマージします。

これらのコマンドが完了すると、連続するチャンクがマージされます。 チャンクは元の 9 つではなく 4 つあります。

チャンク ID
Min
Max
シャード

ABCD

x: 0

x: 40

シャード0

FS

x: 40

x: 60

シャード 1

SH

x: 60

x: 80

シャード0

I

x: 80

x: 90

シャード 1

項目一覧