Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

AutoMerger

A partir de MongoDB 7.0, el balanceador puede fusionar automáticamente fragmentos que cumplan con la requisitos de fusión.

El AutoMerger se ejecuta en segundo plano como parte de las operaciones de balanceo. Para la mayoría de los casos de uso, la configuración por defecto funciona bien. Para obtener detalles sobre qué configuraciones personalizar para su implementación, consulte Política de combinación automática.

Cuando AutoMerger se ejecuta, combina todas las secuencias de fragmentos fusionables para cada partición de cada colección.

A menos que se desactive explícitamente, el AutoMerger se inicia la primera vez que se activa el balanceador y se pausa hasta la próxima vez. autoMergerIntervalSecs después de los drenajes rutinarios.

Cuando AutoMerger está habilitado, la fusión automática se realiza cada autoMergerIntervalSecs segundos.

Para una colección determinada, AutoMerger garantiza que las fusiones posteriores se retrasen al menos la cantidad especificada por autoMergerThrottlingMS.

Si se establece una ventana de equilibrio, AutoMerger solo se ejecuta durante la ventana.

La fusión automática ocurre como parte de las operaciones de balanceo. Para decidir si y cuándo ejecutar la función de auto-fusión, se tienen en cuenta los ajustes en este orden:

  1. configuraciones globales de equilibrio

  2. Configuraciones de balanceo por colección (configuradas por configureCollectionBalancing)

  3. Configuración global de AutoMerger

  4. Configuración de fusión automática por colección (configurada por configureCollectionBalancing)

mergeAllChunksOnShard encuentra y fusiona todos los fragmentos que se pueden fusionar para una colección en la misma partición. Dos o más fragmentos contiguos en la misma colección son fusionables cuando cumplen todas estas condiciones:

  • Son propiedad de la misma partición.

  • No son fragmentos jumbo. jumbo fragmentos no se pueden fusionar porque no pueden participar en las migraciones.

  • Su historial se puede purgar de manera segura, sin interrumpir las transacciones y las lecturas de snapshot:

Este ejemplo asume que el historial está vacío para todos los fragmentos y que todos los fragmentos no son jumbo. Ya que ambas condiciones son verdaderas, todos los intervalos contiguos en la misma partición se pueden fusionar.

Estos fragmentos pertenecen a una colección llamada coll con clave de partición x. Hay nueve fragmentos en total.

fragmento ID
Min
máximo
Partición

A

x: 0

x: 10

Partición0

B

x: 10

x: 20

Partición0

C

x: 20

x: 30

Partición0

D

x: 30

x: 40

Partición0

E

x: 40

x: 50

Shard1

F

x: 50

x: 60

Shard1

G

x: 60

x: 70

Partición0

H

x: 70

x: 80

Partición0

Yo

x: 80

x: 90

Shard1

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

Este comando fusiona las secuencias contiguas de fragmentos:

  • A-B-C-D

  • G-H

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

Este comando fusiona las secuencias contiguas de fragmentos E-F.

Después de que estos comandos se hayan completado, los fragmentos contiguos se han combinado. Hay cuatro fragmentos en total en lugar de los nueve originales.

fragmento ID
Min
máximo
Partición

A-B-C-D

x: 0

x: 40

Partición0

E-F

x: 40

x: 60

Shard1

G-H

x: 60

x: 80

Partición0

Yo

x: 80

x: 90

Shard1

Volver

Migrar rangos

En esta página