6.2. Problemas do atraso de replicação
Ler de réplica atrasada mostra o passado: garanta ler as próprias escritas, leituras monotônicas e prefixo consistente.
Resumo
- Consistência eventual: réplicas convergem se as escritas pararem, sem prazo garantido. O atraso pode chegar a minutos.
- Ler as próprias escritas (read-after-write): o usuário sempre vê o que acabou de gravar. Ex.: ler o próprio perfil do líder.
- Leituras monotônicas: não voltar no tempo entre leituras. Solução: o usuário lê sempre da mesma réplica.
- Prefixo consistente: escritas com causalidade aparecem na ordem certa (pergunta antes da resposta).
- Garantias fracas na leitura viram bugs na aplicação; transações e consistência forte evitam empurrar isso ao dev.
Perguntas-chave
responda de cabeça, depois abraComo garantir que o usuário veja o que acabou de escrever?
Ler do líder dados que o próprio usuário edita, ou lembrar o timestamp da última escrita e só ler de réplica que já chegou nele.
O que viola as leituras monotônicas?
Atualizar a página e cair numa réplica mais atrasada que a anterior, vendo um comentário sumir.
Quando o prefixo consistente é violado?
Quando escritas relacionadas vão para partições diferentes e um observador vê a resposta antes da pergunta.
Exercícios de fixação
0/5 respondidas1.
O usuário edita o nome no perfil, recarrega a página e vê o nome antigo. Qual garantia faltou?
2.
Um comentário aparece, e ao recarregar some, e depois volta. Qual técnica evita isso?
3.
Num chat com dados particionados, um observador vê "Às 15h" antes de "Que horas é a reunião?". Qual garantia foi violada?
4.
Usuário edita o perfil no celular e confere no notebook. Por que ler as próprias escritas fica mais difícil?
5.
Qual frase descreve corretamente consistência eventual?