10.1. Linearizabilidade
Linearizável = parece haver uma única cópia e cada operação acontece num instante. Custa disponibilidade e latência.
Resumo
- Linearizabilidade: o sistema age como se houvesse uma só cópia; leitura vê a escrita mais recente confirmada.
- Necessária para locks e eleição de líder, restrições de unicidade e quando há canais paralelos (fila + arquivo).
- Líder único pode ser linearizável; consenso é; multi-líder e sem líder (mesmo com quórum) em geral não.
- CAP: com partição de rede, escolha linearizabilidade ou disponibilidade. Teorema estreito; o livro prefere pensar em trade-offs.
- Custo principal é latência: mesmo sem falhas, garantias fortes exigem coordenação. Por isso muitos sistemas abrem mão.
Perguntas-chave
responda de cabeça, depois abraLinearizabilidade é o mesmo que serializabilidade?
Não. Serializabilidade é sobre transações com vários objetos; linearizabilidade é garantia de recência de leituras e escritas num objeto.
Por que unicidade de nome de usuário exige linearizabilidade?
Dois cadastros simultâneos precisam concordar sobre quem pegou o nome primeiro; com cópias desatualizadas, ambos ganhariam.
Qual a crítica do livro ao CAP?
O teorema cobre só um modelo de consistência e um tipo de falha (partição); serve pouco para projetar sistemas reais.
Exercícios de fixação
0/5 respondidas1.
Alice vê o placar final; Bob, ao lado, recarrega depois e vê o jogo ainda em andamento. O que foi violado?
2.
Um serviço grava a foto no storage e envia uma mensagem para gerar a miniatura. O gerador lê uma versão antiga da foto. Por quê?
3.
Sistema sem líder com n = 3, w = 2, r = 2 é linearizável?
4.
Durante uma partição entre dois datacenters, um banco linearizável precisa:
5.
Para eleger um único líder sem split brain, o sistema precisa de: