Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

commit

Finaliza la sincronización entre el clúster de origen y el clúster de destino.

Para más información, consulte Finalizar el proceso de Cutover.

Antes de utilizar el endpoint commit:

  • Detén tu aplicación para evitar que se realicen más guardados en el clúster de origen. Durante la confirmación, aún puede leer desde el clúster de origen.

    Advertencia

    Si escribe en el clúster de origen durante la confirmación, podría experimentar pérdida de datos.

  • Utilice el punto final de progreso para confirmar los siguientes valores:

    • lagTimeSeconds para mongosync, el clúster de origen del verificador y el clúster de destino del verificador están todos cerca de 0 (Recomendado, pero no obligatorio)

      Nota

      lagTimeSeconds

      lagTimeSeconds indica el tiempo entre el último evento aplicado y el momento del último evento actual. Cuando envías una solicitud de commit, mongosync entra en el estado COMMITTING durante la cantidad de segundos reportados por lagTimeSeconds, y luego pasa al estado COMMITTED.

      Cuando lagTimeSeconds está 0, los clústeres de origen y destino están en un estado coherente.

      Para obtener más información sobre los lagTimeSeconds campos,progress consulte.

    • state: "RUNNING"

    • canCommit: true

Nota

Cuando configures múltiples instancias de mongosync para sincronizarse entre clústeres fragmentados, debes enviar comandos idénticos de puntos finales API a cada instancia de mongosync.

Para obtener más información, consulta Sincronización de confirmaciones desde múltiples instancias de mongosync.

POST /api/v1/commit

Este endpoint no utiliza parámetros del cuerpo de la solicitud HTTP. Sin embargo, debes especificar la opción --data con un objeto vacío { }.

Campo
Tipo
Descripción

success

booleano

Cuando la solicitud es exitosa, este valor es true.

error

string

Si se produce un error, se indicará el nombre del error. Este campo se omite de la respuesta cuando success es true.

errorDescription

string

Descripción detallada del error ocurrido. Este campo se omite en la respuesta cuando success es true.

El siguiente ejemplo compromete la operación de sincronización en el clúster de destino.

Antes de enviar una solicitud al punto final de commit, utiliza el punto final de progreso para confirmar que la sincronización está lista para ser confirmada.

curl localhost:27182/api/v1/progress -XGET
{
"progress":
{
"state":"RUNNING",
"canCommit":true,
"canWrite":false,
"info":"change event application",
"lagTimeSeconds":0,
"collectionCopy":
{
"estimatedTotalBytes":694,
"estimatedCopiedBytes":694
},
"directionMapping":
{
"Source":"cluster0: localhost:27017",
"Destination":"cluster1: localhost:27018"
},
"source":
{
"pingLatencyMs":250
},
"destination":
{
"pingLatencyMs":-1
},
"verification":
{
"source":
{
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
},
"destination": {
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
}
}
},
"success": true
}

El punto final progress devolvió "canCommit":true, lo que significa que la solicitud commit puede ejecutarse correctamente.

El siguiente comando envía una solicitud al punto final commit:

curl localhost:27182/api/v1/commit -XPOST --data '{ }'
{"success":true}

Si la commit solicitud es exitosa, mongosync pasa al COMMITTED estado. Una vez que mongosync entra en el estado de COMMITTED, la migración de datos entre los clústeres se detiene.

Antes de transferir la carga de la aplicación del clúster de origen al destino, verifica tus datos para asegurarte de que la sincronización haya sido exitosa.

Nota

Si mongosync se detiene durante la confirmación, antes de que el punto final /progress canWrite: true informe, debe reiniciar toda la migración para asegurarse de que esté verificada.

Para obtener más información, consulta Verificar la transferencia de datos.

Si configura buildIndexes en "afterDataCopy" o "excludeHashedAfterCopy" al llamar /start a, mongosync commit bloquea solicitudes hasta que haya creado todos los índices de origen en el clúster de destino.

commit restaura las características de la colección que mongosync modifica temporalmente durante la sincronización.

La siguiente tabla ilustra el impacto de commit en las características de la colección que mongosync altera durante el proceso de sincronización.

Característica de colección
Impacto de commit

Unique Indexes

commit restablece los índices únicos que mongosync replicó como no únicos en el clúster de destino.

TTL Indexes

commit restablece expireAfterSeconds, que mongosync se establece en el valor de MAX_INT en el clúster de destino.

Hidden Indexes

commit restablece los índices ocultos que mongosync replicó como no ocultos en el clúster de destino.

Bloqueo de escritura

Si se habilita el bloqueo dual de guardar, mongosync bloquea los guardados:

  • En el clúster de destino durante la sincronización.

  • En el clúster de origen cuando se recibe commit.

mongosync habilita el bloqueo de escritura solo en destino por defecto.

Para obtener más información, consulte Bloqueo de Escritura.

Colecciones con tamaño fijo

commit restablece el tamaño máximo requerido de las colecciones con límite que mongosync establece al tamaño máximo permitido en el clúster de destino.

mongosync no protege el punto de conexión commit. Sin embargo, por defecto, la API se vincula únicamente a localhost y no acepta llamadas de otras fuentes. Además, la llamada commit no expone credenciales de conexión ni datos de usuario.

Volver

currículum

En esta página