Descripción
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.
Requisitos
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:
lagTimeSecondsmongosyncPara, el clúster de origen para el verificador y el clúster de destino para el verificador están todos cerca de0(recomendado, pero no obligatorio)Nota
lagTimeSeconds
lagTimeSecondsindica el tiempo entre el último evento aplicado y el momento del último evento actual. Cuando envías una solicitud decommit,mongosyncentra en el estadoCOMMITTINGdurante la cantidad de segundos reportados porlagTimeSeconds, y luego pasa al estadoCOMMITTED.Cuando
lagTimeSecondses0, los clústeres de origen y destino están en un estado consistente.Para obtener más información sobre los
lagTimeSecondscampos,progressconsulte.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.
Solicitud
POST /api/v1/commit
Parámetros del cuerpo de la solicitud
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.
Respuesta
Campo | Tipo | Descripción |
|---|---|---|
| booleano | Cuando la solicitud es exitosa, este valor es |
| string | Si se produjo un error, indica su nombre. Este campo se omite en la respuesta cuando |
| string | Descripción detallada del error ocurrido. Este campo se omite en la respuesta cuando |
Ejemplo
El siguiente ejemplo confirma la operación de sincronización en el clúster de destino.
Confirmar que la sincronización está lista
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.
Solicitud
curl localhost:27182/api/v1/progress -XGET
Respuesta
{ "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.
Enviar la solicitud de confirmación
El siguiente comando envía una solicitud al punto final commit:
Solicitud
curl localhost:27182/api/v1/commit -XPOST --data '{ }'
Respuesta
{"success":true}
Comportamiento
Estado
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.
Verificación de datos
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.
Creación de índices
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.
Cambios en las características de la colección
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 |
|
TTL Indexes |
|
Hidden Indexes |
|
Bloqueo de escritura | Si habilita el bloqueo de escritura dual,
Para obtener más información, consulte Bloqueo de Escritura. |
Colecciones con tamaño fijo |
|
Protección de endpoints
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.