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 corte.

Antes de utilizar el punto final commit:

  • Detenga la aplicación para evitar más escrituras en el clúster de origen. Durante la confirmación, aún podrá 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 mongosyncPara, el clúster de origen para el verificador y el clúster de destino para el 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 es 0, los clústeres de origen y destino están en un estado consistente.

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

    • state: "RUNNING"

    • canCommit: true

Nota

Cuando configura varias instancias mongosync para sincronizar entre clústeres fragmentados, debe enviar comandos de punto final de API idénticos a cada instancia mongosync.

Para obtener más información, consulte Confirmar sincronización desde varias mongosync instancias.

POST /api/v1/commit

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

Campo
Tipo
Descripción

success

booleano

Cuando la solicitud es exitosa, este valor es true.

error

string

Si se produjo un error, indica su nombre. Este campo se omite en 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 confirma la operación de sincronización en el clúster de destino.

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

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 solicitud commit es exitosa, mongosync pasa al estado COMMITTED. Una vez que mongosync pasa al estado COMMITTED, se detiene la migración de datos entre los clústeres.

Antes de transferir la carga de su aplicación desde el clúster de origen al destino, verifique sus datos para asegurarse de que la sincronización se haya realizado correctamente.

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, consulte Verificar 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 altera 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 la colección
Impacto de commit

Unique Indexes

commit restablece índices únicos que mongosync se replicaron como no únicos en el clúster de destino.

TTL Indexes

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

Hidden Indexes

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

Bloqueo de escritura

Si habilita el bloqueo de escritura dual, mongosync bloquea las escrituras:

  • 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 de manera predeterminada.

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

Colecciones con tamaño fijo

commit restablece el tamaño máximo requerido de colecciones limitadas que mongosync establece en el tamaño máximo permitido en el clúster de destino.

mongosync No protege el punto final commit. Sin embargo, por defecto, la API se vincula únicamente al host local y no acepta llamadas de otras fuentes. Además, la llamada commit no expone las credenciales de conexión ni los datos del usuario.

Volver

reanudar

En esta página