Menu Docs
Página inicial do Docs
/
Sincronização de Cluster-to-Cluster do MongoDB
/ /

commit

Nesta página

  • Descrição
  • Requisitos
  • Solicitar
  • Parâmetros do corpo da solicitação
  • Resposta
  • Exemplo
  • Confirme se a sincronização está pronta
  • Enviar a solicitação de confirmação
  • Comportamento
  • Estado
  • Verificação de dados
  • Alterações nas características da coleção
  • Proteção de endpoint

Finaliza a sincronização entre o cluster de origem e o cluster de destino e interrompe a sincronização contínua entre clusters.

Para mais informações, consulte Finalizar Processo de Transferência.

Antes de usar o endpoint commit :

  • Interrompa seu aplicação para evitar novas gravações no cluster de origem. Durante a confirmação, você ainda pode ler do cluster de origem.

    Aviso

    Se você gravar no cluster de origem durante a confirmação, poderá sofrer perda de dados.

  • Use o endpoint de progresso para confirmar os seguintes valores:

    • lagTimeSeconds está próximo de 0 (Recomendado, mas não obrigatório)

      Observação

      lagTimeSeconds

      lagTimeSeconds indica o tempo entre o último evento aplicado e a hora do último evento atual. Quando você envia uma solicitação de commit , mongosync entra no estado COMMITTING pela quantidade de segundos relatada por lagTimeSeconds e, em seguida, faz a transição para o estado COMMITTED .

      Quando lagTimeSeconds é 0, os clusters de origem e destino estão em um estado consistente.

    • state: "RUNNING"

    • canCommit: true

Observação

Ao configurar várias instâncias mongosync para sincronizar entre clusters fragmentados, você deve enviar comandos de ponto de conexão da API idênticos para cada instância mongosync .

Para obter mais informações, consulte Commit sincronização de várias instâncias do mongosync .

POST /api/v1/commit

Este endpoint não usa parâmetros do corpo da solicitação HTTP. No entanto, você deve especificar a opção --data com um objeto vazio { }.

Campo
Tipo
Descrição

success

booleano

Quando a solicitação é bem-sucedida, esse valor é true.

error

string

Se ocorreu um erro, indica o nome do erro. Este campo é omitido da resposta quando success é true.

errorDescription

string

Descrição detalhada do erro que ocorreu. Este campo é omitido da resposta quando success é true.

O exemplo a seguir confirma a operação de sincronização no cluster de destino.

Antes de enviar uma solicitação para o endpoint commit , use o endpoint de progresso para confirmar se a sincronização está pronta 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"
},
"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
}

O endpoint progress retornou "canCommit":true, o que significa que a solicitação commit pode ser executada com sucesso.

O seguinte comando envia uma solicitação para o endpoint commit :

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

Se a solicitação commit for bem-sucedida, mongosync entrará no estado COMMITTED . Quando mongosync entra no estado COMMITTED , a sincronização contínua entre os clusters é interrompida.

Antes de transferir a carga do seu aplicativo do cluster de origem para o destino, verifique seus dados para garantir que a sincronização foi bem-sucedida.

Observação

Se mongosync parar durante o commit, antes que o endpoint /progress canWrite: true informe, você deverá reiniciar toda a migração para garantir que ela seja verificada.

Para obter mais informações, consulte Verificar a fonte de dados.

commit restaura as características da coleção que mongosync altera temporariamente durante a sincronização.

A tabela a seguir ilustra o impacto do commit nas características da collection que o mongosync altera durante o processo de sincronização.

Característica da collection
impacto de commit

Unique Indexes

commit redefine índices únicos que mongosync replicados como não únicos no cluster de destino.

TTL Indexes

commit redefine expireAfterSeconds que mongosync definiu para o valor de MAX_INT no cluster de destino.

Hidden Indexes

commit redefine índices ocultos que mongosync replicados como não ocultos no cluster de destino.

Bloqueio de gravação

Se você habilitar o bloqueio de gravação, mongosync bloqueará as gravações:

  • No cluster de destino durante a sincronização.

  • No cluster de origem quando commit é recebido.

Consulte também: Bloqueio de gravação

Capped collections

commit redefine o tamanho máximo exigido de capped collections que mongosync definiu para o tamanho máximo permitido no cluster de destino.

mongosync não protege o endpoint commit . No entanto, por padrão, a API é vinculada apenas ao host local e não aceita chamadas de outras fontes. Além disso, a chamada commit não expõe credenciais de conexão ou dados de usuário.

Voltar

retomar