Modelos de consistência definem como os dados são sincronizados em sistemas distribuídos. Compreender esses modelos ajuda a projetar sistemas que atendam aos requisitos específicos de desempenho e confiabilidade. Este artigo explora exemplos práticos e cálculos relacionados a vários modelos de consistência.

Tipos de modelos de coerência

Os modelos comuns de consistência incluem consistência eventual, consistência forte e consistência causal. Cada um oferece diferentes garantias sobre visibilidade e sincronização de dados entre nós.

Exemplo prático: Operações de leitura e escrita

Considere uma base de dados distribuída com três nós. Um usuário escreve dados para o nó A, e outro usuário lê do nó B. O modelo de consistência determina se a leitura reflete a escrita mais recente.

Cálculos para Garantias de Coerência

Suponha que o sistema tenha um atraso de 50 milissegundos. Em consistência, os dados podem levar até este atraso para sincronizar entre nós. Para uma consistência forte, o sistema deve esperar por agradecimentos de todos os nós antes de confirmar uma escrita, aumentando a latência.

  • Consistência do evento: Os dados propagam-se assíncrona, com possíveis leituras antigas.
  • Consistência forte: As leituras refletem sempre a última escrita, com maior latência.
  • Consistência da causa: Garante que as atualizações relacionadas causalmente são vistas em ordem.
  • Impacto Latência: A consistência forte pode adicionar atrasos proporcionais ao número de nós.