Parte II · Dados distribuídos
12 tópicos · 60 exercícios de fixação · 0/12 concluídos
- 6.1Replicação com líder único
Um líder recebe as escritas e envia o log aos seguidores; síncrono garante cópia, assíncrono garante disponibilidade.novo - 6.2Problemas 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.novo - 6.3Replicação multi-líder e sem líder
Vários pontos de escrita trazem conflitos; quóruns w + r > n leem pelo menos uma cópia nova.novo - 7.1Sharding: chaves, faixas e hashes
Divida os dados em shards para escalar; escolha a chave para espalhar carga e evitar hot spots.novo - 7.2Rebalanceamento, roteamento e índices secundários
Mova dados com o mínimo de impacto, saiba qual nó tem cada chave e escolha índice local ou global.novo - 8.1Transações, ACID e isolamento fraco
ACID simplifica erros e concorrência; read committed e snapshot isolation evitam muitos, mas não todos, os bugs.novo - 8.2Lost update, write skew e serializabilidade
Ler-modificar-escrever concorrente perde dados; só serializabilidade elimina write skew e fantasmas.novo - 8.3Transações distribuídas e exactly-once
Two-phase commit dá atomicidade entre nós, ao custo de bloquear se o coordenador sumir.novo - 9.1Falhas parciais, redes e relógios não confiáveis
Sem resposta não diz se o outro morreu; relógios mentem. Projete supondo os dois.novo - 9.2Pausas, maioria, leases e fencing
Um nó pode pausar sem saber; a verdade é decidida pela maioria, e tokens de fencing barram o líder zumbi.novo - 10.1Linearizabilidade
Linearizável = parece haver uma única cópia e cada operação acontece num instante. Custa disponibilidade e latência.novo - 10.2IDs, relógios lógicos, consenso e coordenação
Relógios lógicos ordenam por causalidade; consenso decide um valor entre nós mesmo com falhas.novo