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

戻る

範囲の移行

項目一覧