Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

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

戻る

範囲の移行

項目一覧