Definición
mergeAllChunksOnShardmergeAllChunksOnShardEncuentra y fusiona todo fragmentos fusionables que un fragmento 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 del fragmento. |
| 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 del mismo fragmento.
No son fragmentos
jumbogigantes. 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:
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 son no jumbo. Dado que ambas condiciones son verdaderas, todos los intervalos contiguos en el mismo fragmento son fusionables.
Configuración
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 |
|
| Fragmento0 |
B |
|
| Fragmento0 |
C |
|
| Fragmento0 |
D |
|
| Fragmento0 |
E |
|
| Fragmento1 |
F |
|
| Fragmento1 |
G |
|
| Fragmento0 |
H |
|
| Fragmento0 |
ME |
|
| Fragmento1 |
Pasos
Resultado
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 |
|
| Fragmento0 |
EF |
|
| Fragmento1 |
GH |
|
| Fragmento0 |
ME |
|
| Fragmento1 |