Docs Menu
Docs Home
/ /

Supervisar la desfragmentación de una colección particionada

Para supervisar la desfragmentación de una colección particionada, utilice la balancerCollectionStatus .

Puedes ver el estado actual de desfragmentación y el número de fragmentos restantes a procesar. Esto te muestra el progreso de la desfragmentación.

La desfragmentación utiliza las siguientes fases para reducir el número de fragmentos en una colección y mejorar el rendimiento:

  1. Combinar fragmentos en la misma partición que se puedan combinar.

  2. Migre fragmentos más pequeños a otras particiones. Un fragmento pequeño es aquel que contiene datos inferiores al 25% de la configuración de chunkSize.

  3. Fusiona los fragmentos restantes en la misma partición que puedan ser fusionados.

El procedimiento en esta tarea utiliza una colección particionada de ejemplo llamada ordersShardedCollection en una base de datos llamada test.

Puedes usar tu propia colección particionada y base de datos en el procedimiento.

En el procedimiento para esta tarea, supervisa las fases y observa el progreso de la desfragmentación.

1

Ejecuta:

db.adminCommand(
{
balancerCollectionStatus: "test.ordersShardedCollection"
}
)
2

El comando anterior devuelve un documento con información sobre el estado de la desfragmentación, la fase actual y el trabajo de desfragmentación restante. Por ejemplo:

{
"balancerCompliant": false,
"firstComplianceViolation": "defragmentingChunks",
"details": {
"currentPhase": "moveAndMergeChunks",
"progress": { "remainingChunksToProcess": 1 }
}
}

La siguiente tabla describe los campos del documento.

Campo
Tipo
Descripción

balancerCompliant

Booleano

false si se deben mover los fragmentos de la colección. Si no, true.

firstComplianceViolation

String

Indica el motivo por el cual los fragmentos para el espacio de nombres deben trasladarse o fusionarse. Solo se devuelve si balancerCompliant es false.

details

Objeto

Información adicional sobre el estado actual de la desfragmentación. Solo se devuelve si firstComplianceViolation es defragmentingChunks.

currentPhase

String

Fase de desfragmentación actual:

  • Para la fase uno, currentPhase es mergeAndMeasureChunks.

    La fase uno fusiona los fragmentos contiguos ubicados en la misma partición y calcula el tamaño de los datos de esos fragmentos.

  • Para la segunda fase, currentPhase es moveAndMergeChunks.

    Después de que se complete la fase uno, podrían quedar algunos fragmentos pequeños. La fase dos migra esos pequeños fragmentos a otras particiones y fusiona los fragmentos en esas particiones.

remainingChunksToProcess

entero

Número de fragmentos restantes por procesar en la fase actual.

Para obtener información adicional sobre los campos de documento devueltos, consulta el documento de salida del estado de la colección del balanceador.

3

Una vez que la desfragmentación se completa, el comando devuelve cualquiera de las siguientes opciones:

  • balancerCompliant: true si tu colección está equilibrada.

  • balancerCompliant: false con firstComplianceViolation configurado en una string diferente a defragmentingChunks si tu colección no está equilibrada.

Ejemplo de salida para una colección equilibrada después de completar la desfragmentación:

{
chunkSize: 0.2,
balancerCompliant: true,
ok: 1,
'$clusterTime': {
clusterTime: Timestamp({ t: 1677543079, i: 1 }),
signature: {
hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0),
keyId: Long("0")
}
},
operationTime: Timestamp({ t: 1677543079, i: 1 })
}

Si la desfragmentación aún no se ha completado, puedes detenerla. Para obtener más información, consulta Detener la desfragmentación de una colección particionada.

  • Imprimir estado de la partición, consulte db.printShardingStatus()

  • Para recuperar detalles sobre el estado de las particiones, consulte sh.status()

  • Para ver los campos de la colección de estado de partición, consulte colección particionada

  • Ver instancias activas de mongos, ver Instancias activas de mongos

  • Supervise las particiones usando MongoDB Atlas, consulte Revisar los clústeres sharded

Volver

Inicio

En esta página