Definición
mergeAllChunksOnShardmergeAllChunksOnShardEncuentra y fusiona todo fragmentos fusionables que una partición posee para una colección determinada.
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
El comando tiene la siguiente sintaxis:
db.adminCommand( { mergeAllChunksOnShard: <name of the collection>, shard: <name of the shard>, maxNumberOfChunksToMerge: <maximum number of chunks to merge> /* optional */ } )
Campos de comandos
El comando toma los siguientes campos:
Campo | Tipo | Necesidad | Descripción |
|---|---|---|---|
| string | Requerido | Nombre de la colección. |
| string | Requerido | Nombre de la partición. |
| entero | Opcional | Número máximo de fragmentos a fusionar. |
Comportamiento
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 de la misma partición.
No son fragmentos jumbo.
jumbofragmentos no se pueden fusionar porque no pueden participar en las migraciones.Su historial se puede purgar de forma segura, sin interrumpir las transacciones ni las lecturas de instantáneas:
La última migración que involucró al fragmento ocurrió hace al menos tantos segundos como el valor
minSnapshotHistoryWindowInSecondsde.La última migración que involucró al fragmento ocurrió hace al menos tantos segundos como el valor
transactionLifetimeLimitSecondsde.
Ejemplo
Este ejemplo asume que el historial está vacío para todos los fragmentos y que todos los fragmentos no son jumbo. Como ambas condiciones se cumplen, todos los intervalos contiguos en la misma partición son fusionables.
Configuración
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 |
|
| Partición0 |
B |
|
| Partición0 |
C |
|
| Partición0 |
D |
|
| Partición0 |
E |
|
| Shard1 |
F |
|
| Shard1 |
G |
|
| Partición0 |
H |
|
| Partición0 |
ME |
|
| Shard1 |
Pasos
Resultado
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 |
|
| Partición0 |
E-F |
|
| Shard1 |
GH |
|
| Partición0 |
ME |
|
| Shard1 |