Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Membros atrasados do conjunto de réplicas

Nesta página

  • Considerações
  • Exemplo
  • Configuração

Membros atrasados contêm cópias de um conjunto de dados de conjunto de réplicas. No entanto, o conjunto de dados de um membro atrasado reflete um estado anterior ou atrasado do conjunto. Por exemplo, se o tempo atual for 09:52 e um membro tiver um atraso de uma hora, o membro atrasado não terá nenhuma operação mais recente do que 08:52.

Como os membros atrasados são um "backup contínuo" ou um snapshot "histórico" em execução do conjunto de dados, eles podem ajudá-lo a se recuperar de vários tipos de erro humano. Por exemplo, um membro atrasado pode possibilitar a recuperação de atualizações de aplicativos malsucedidas e erros de operador, incluindo bancos de dados e coleções descartados.

Membros atrasados:

Importante

Se seu conjunto de réplicas contiver membros atrasados, certifique-se de que os membros atrasados estejam ocultos e sem direito a voto.

A ocultação dos membros do conjunto de réplicas atrasadas impede que os aplicativos vejam e consultem os dados atrasados sem uma conexão direta com esse membro. Tornar os membros do conjunto de réplicas atrasadas sem direito a voto significa que eles não contarão para o reconhecimento das operações de gravação com a write concern "majority".

Se você não ocultar membros atrasados e um ou mais nós ficarem indisponíveis, o conjunto de réplicas deverá aguardar o membro atrasado e o ponto de confirmação atrasar. Um ponto de confirmação atrasado pode levar a problemas de desempenho.

Por exemplo, considere uma configuração de conjunto de réplicas Primary-Secondary-Delayed onde o secundário atrasado está votando com um atraso de 10 minutos.

Com uma secundária não atrasada indisponível, a configuração degradada de Primary-Delayed deve aguardar pelo menos 10 minutos para reconhecer uma operação de gravação com "majority". A maioria dos pontos de confirmação levará mais tempo para avançar, levando a problemas de desempenho semelhantes à pressão de cache com um conjunto de réplicas Primário com um Secundário e Arbitro (PSA).

Para obter mais informações sobre o ponto de confirmação da maioria, consulte Consistência causal e preocupações de leitura e gravação. Para detalhes adicionais sobre como resolver problemas de desempenho, consulte o tutorial de manutenção de conjunto de réplicas.

Membros atrasados copiam e aplicam operações do oplog de origem em um atraso. Ao escolher a quantidade de atraso, considere que a quantidade de atraso:

  • deve ser igual ou superior às durações esperadas da janela de manutenção.

  • deve ser menor do que a capacidade do oplog. Para obter mais informações sobre o tamanho do oplog, consulte Tamanho do oplog.

Os membros atrasados do conjunto de réplicas podem reconhecer as operações de gravação emitidas com w: <number>. Para operações de gravação emitidas com w : "majority", no entanto, membros atrasados também devem ser membros votantes (i.e. members[n].votes maior que 0) para reconhecer a operação de gravação "majority". Membros do conjunto de réplicas sem direito a voto (i.e. members[n].votes is 0) não pode contribuir para reconhecer operações de gravação com majority write concern.

Os secundários atrasados podem retornar a confirmação de gravação não antes do secondaryDelaySecsconfigurado.

Em clusters fragmentados, membros atrasados têm utilidade limitada quando o balanceador está habilitado. Como os membros atrasados replicam migrações em partes com atraso, o estado dos membros atrasados em um cluster fragmentado não é útil para a recuperação para um estado anterior do cluster fragmentado se alguma migração ocorrer durante a janela de atraso.

No conjunto de réplica de 5 membros a seguir, os primários e todos os secundários têm cópias do conjunto de dados. Um membro aplica operações com um atraso de 3600 segundos (uma hora). Este membro atrasado também é oculto e é um membro da prioridade 0.

Diagrama de um conjunto de réplicas de 5 membros com um membro 0 de prioridade atrasada oculto.

Um membro atrasado tem seu members[n].priority igual a 0, members[n].hidden igual a true e seu members[n].secondaryDelaySecs igual ao número de segundos de atraso:

{
"_id" : <num>,
"host" : <hostname:port>,
"priority" : 0,
"secondaryDelaySecs" : <seconds>,
"hidden" : true
}

Para configurar um membro atrasado, consulte Configurar um membro do conjunto de réplicas atrasado.

← Membros ocultos do conjunto de réplicas