Docs Menu
Docs Home
/ /

AutoMerger

A partir de MongoDB 7.0, el balanceador puede fusionar automáticamente fragmentos que cumplan con los requisitos. Requisitos de fusionabilidad.

AutoMerger se ejecuta en segundo plano como parte de las operaciones de balanceo. En la mayoría de los casos, la configuración predeterminada funciona correctamente. Para obtener más información sobre qué configuración personalizar para su implementación, consulte la Política de AutoMerger.

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

A menos que esté deshabilitado explícitamente, la fusión automática se inicia la primera vez que se habilita el balanceador y se detiene para la siguiente. autoMergerIntervalSecs después de los drenajes de rutina.

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

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

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

La autofusión se realiza como parte de las operaciones de balanceo. Para decidir si se ejecuta y cuándo, se tienen en cuenta las configuraciones en este orden:

  1. Configuraciónde equilibrio global

  2. Configuración de equilibrio por colección (configurada configureCollectionBalancing por)

  3. Configuraciónglobal de AutoMerger

  4. Configuración de AutoMerger por colección (configurada configureCollectionBalancing por)

mergeAllChunksOnShard Busca y fusiona todos los fragmentos fusionables de una colección en el mismo fragmento. Dos o más fragmentos contiguos de la misma colección son fusionables cuando cumplen todas estas condiciones:

  • Son propiedad del mismo fragmento.

  • No son fragmentosjumbo gigantes. Los fragmentos no se pueden fusionar porque no pueden participar en migraciones.

  • Su historial se puede purgar de forma segura, sin interrumpir las transacciones ni las lecturas de instantáneas:

Este ejemplo asume que el historial está vacío para todos los fragmentos y que todos son no jumbo. Dado que ambas condiciones son verdaderas, todos los intervalos contiguos en el mismo fragmento son fusionables.

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

fragmento ID
Min
Max
Partición

A

x: 0

x: 10

Fragmento0

B

x: 10

x: 20

Fragmento0

C

x: 20

x: 30

Fragmento0

D

x: 30

x: 40

Fragmento0

E

x: 40

x: 50

Fragmento1

F

x: 50

x: 60

Fragmento1

G

x: 60

x: 70

Fragmento0

H

x: 70

x: 80

Fragmento0

ME

x: 80

x: 90

Fragmento1

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

Este comando fusiona las secuencias contiguas de fragmentos:

  • ABCD

  • GH

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

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

Tras completar estos comandos, se fusionaron los fragmentos contiguos. Ahora hay cuatro fragmentos en total, en lugar de los nueve originales.

fragmento ID
Min
Max
Partición

ABCD

x: 0

x: 40

Fragmento0

EF

x: 40

x: 60

Fragmento1

GH

x: 60

x: 80

Fragmento0

ME

x: 80

x: 90

Fragmento1

Volver

Migrar rangos

En esta página