Conceitos
Replicação geográfica, failover e metas de RPO/RTO
Intuição
Imagine uma loja com um caderno de contas importante. Para não perder tudo se um prédio pegar fogo, você mantém cópias do caderno em prédios de cidades diferentes. Aí surgem duas perguntas práticas: se o prédio principal sumir, quanto das últimas anotações você aceita perder, e quanto tempo você aceita ficar sem atender clientes até outro prédio assumir? Quanto menos você aceita perder e esperar, mais caro fica manter as cópias em dia e prontas para assumir.
Como funciona
Terminologia da indústria (não é afirmação dos papers): RPO (recovery point objective) é a quantidade máxima de dados, medida em tempo, que se aceita perder num desastre; RTO (recovery time objective) é o tempo máximo aceito até o serviço voltar. Os papers mostram os dois lados dessa troca. No Spanner, os dados ficam em zonas, que são a unidade de isolamento físico e o conjunto de locais de replicação; cada tablet é replicado por um grupo Paxos, com réplicas em várias zonas e replicação síncrona, em contraste com o Bigtable, que só oferecia replicação eventualmente consistente entre datacenters. A configuração de replicação é definida por diretório (aplicações escolhem onde cada dado fica) e os diretórios podem ser movidos entre grupos Paxos enquanto clientes operam. O failover é automático: o líder de cada grupo é eleito por leases de tempo, cuja duração padrão é 10 segundos, e no teste de matar uma zona inteira sem aviso as leituras caíram quase a zero e se recuperaram em cerca de 10 segundos, ligado à duração dos leases. Leitura do aluno, como interpretação e não como afirmação do paper: com escrita replicada de forma síncrona por maioria Paxos, a perda de dados aceita tende a ser nula (RPO próximo de zero) e o RTO fica na ordem do tempo de reeleição do líder. O Dynamo escolhe outro ponto: a escrita é aceita mesmo com réplicas inalcançáveis, via sloppy quorum e hinted handoff, em que outro nó guarda a escrita com uma dica do destino real e a repassa quando a réplica volta, ao custo de réplicas temporariamente divergentes que read repair e anti-entropia reconciliam depois. Também como vocabulário da indústria (Well-Architected e o whitepaper de DR na AWS), a escada de estratégias vai de backup e restore, passando por pilot light e warm standby, até active-active, com RPO e RTO menores e custo maior a cada degrau; o Spanner com réplicas ativas em várias zonas se aproxima do degrau active-active.
Na prática
Comece definindo RPO e RTO por serviço a partir do custo de perder dados e de ficar fora do ar, e só então escolha o degrau da escada (termos da indústria): backup e restore para o que tolera horas, active-active para o que quase não tolera perda. Como exemplo dos papers, o F1 usa cinco réplicas do Spanner (duas na costa oeste e três na leste dos EUA) e relata que o failover automático foi quase invisível, enquanto um carrinho de compras no estilo Dynamo prefere continuar aceitando escritas durante falhas e resolver divergências depois. Em arquitetura multirregião, a pergunta central é quanta latência de escrita entre regiões você aceita pagar para ter RPO próximo de zero.
Use em um desenho
Pratique na escola de System Design os casos que dependem deste conceito.