devterview_$ iniciar simulação

Réplicas de leitura e o lag de replicação

MédioPlenoDados em escala

Pergunta

Adicionar réplicas de leitura escala a leitura de um banco. Que problema o lag de replicação cria e como lidar?

Resposta esperada

As réplicas recebem as escritas da primária de forma assíncrona, então ficam alguns milissegundos (às vezes segundos, sob carga) atrás. Problema clássico: o usuário faz uma escrita (posta um comentário), a resposta seguinte lê de uma réplica que ainda não recebeu a mudança, e o comentário 'some' — 'read your own writes' quebrado. Formas de lidar: rotear as leituras logo após uma escrita daquele usuário pra primária (sticky por uma janela de tempo); ler da primária só nos fluxos onde a consistência importa e aceitar réplica no resto; usar 'read from replica but check lag' (se a réplica está muito atrás, cai pra primária); ou tornar a UI otimista (mostrar localmente o que o usuário acabou de escrever). O ponto é decidir conscientemente por endpoint quais toleram dados um pouco velhos.

Por que perguntam isso

Pergunta pleno/sênior. Termo-chave: 'read your own writes'. Conecta com consistência eventual da arquitetura.

#read-replica#replication-lag#consistencia
publicidade

Relacionadas