Mostrar mensagens com a etiqueta two-phase. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta two-phase. Mostrar todas as mensagens

quinta-feira, 9 de fevereiro de 2012

😈 CAP Theorem explicado para quem já confiou em commit em duas fases

 


😈 CAP Theorem explicado para quem já confiou em commit em duas fases


00:00 — Introdução: quando a teoria virou dor real

Se você é mainframer e já confiou em Two-Phase Commit, já viveu o CAP Theorem antes dele ter nome.
A diferença é que, no mainframe, chamávamos isso de:

“Ou o dado está certo, ou o sistema fica em pé. Os dois ao mesmo tempo… depende.”

O Teorema CAP nasceu no mundo distribuído moderno, mas suas raízes estão lá atrás, nos tempos de IMS, CICS, DB2, sysplex e coordenação distribuída feita no braço.



1️⃣ O que é CAP (sem marketing)

CAP diz que, em um sistema distribuído, quando ocorre uma falha de rede, você só pode garantir duas das três propriedades:

  • C – Consistency (Consistência)
    Todos veem o mesmo dado ao mesmo tempo.

  • A – Availability (Disponibilidade)
    O sistema sempre responde.

  • P – Partition Tolerance (Tolerância a partições)
    O sistema continua funcionando mesmo com falhas de rede.

⚠️ Spoiler mainframer:
P não é opcional. Se existe rede, vai haver partição.


2️⃣ A tradução CAP → dialeto mainframe 🧠

CAPMainframe raiz entende como
ConsistencyCommit garantido, dado íntegro
AvailabilityRegião em pé, SLA preservado
PartitionLink caiu, LPAR isolada, XCF brigando

👉 CAP não é escolha ideológica.
É decisão de sobrevivência.


3️⃣ Two-Phase Commit: o trauma fundador 😵

Fase 1 – Prepare

  • Todos dizem: “posso gravar?”

  • Locks segurados

  • Esperança intacta

Fase 2 – Commit

  • Coordenador manda gravar

  • Um nó não responde…

  • Silêncio

  • Lock eterno

  • DBA acordado

😈 Easter egg:
Quem já viu in-doubt transaction sabe que CAP não é slide de PowerPoint.


4️⃣ Onde o CAP dói de verdade

🔥 Consistência vs Disponibilidade

  • Quer dado correto?
    → Pode ficar indisponível.

  • Quer sistema respondendo?
    → Pode responder com dado antigo.

No mainframe, a escolha histórica foi:

Consistência acima de tudo.

No mundo web:

Disponibilidade acima de tudo.


5️⃣ Por que P não se discute

Em ambiente distribuído:

  • Switch falha

  • Roteador reinicia

  • Zona cai

  • Cloud provider “pisca”

📌 Curiosidade:
No sysplex, a IBM passou décadas tentando domar P com hardware, coupling facility e engenharia absurda.

Mesmo assim… partição acontece.


6️⃣ Modelos modernos (com cheiro de legado)

CP – Consistent + Partition tolerant

  • DB2

  • Sistemas financeiros

  • Core banking

💬 “Se não gravar certo, melhor não gravar.”

AP – Available + Partition tolerant

  • Cassandra

  • DynamoDB

  • Sistemas de catálogo, feeds, logs

💬 “Mostra algo agora, conserta depois.”


7️⃣ Eventual Consistency: o nome chique do “daqui a pouco acerta”

Mainframer traduz:

“Batch de reconciliação”

  • Dados podem divergir temporariamente

  • Em algum momento, convergem

  • Desde que não falhe tudo 😈

📎 Easter egg:
Você já fez eventual consistency com VSAM + batch noturno e nem percebeu.


8️⃣ Passo a passo para decidir CAP na prática

1️⃣ O dado é financeiro ou regulatório?
C é obrigatório

2️⃣ O usuário pode esperar?
→ Talvez A não seja crítica

3️⃣ Se a rede cair, pode parar tudo?
→ Se não, aceite inconsistência temporária

4️⃣ Existe reconciliação posterior?
→ Batch, eventos, compensação

5️⃣ Quem assume o erro?
→ Sistema ou negócio?


9️⃣ Guia de estudo para mainframers inquietos 📚

Conceitos

  • CAP Theorem

  • PACELC (CAP com latência)

  • Eventual Consistency

  • Sagas (compensação)

Ferramentas e paralelos

  • XA / 2PC → Transaction Coordinator

  • Kafka → MQ + replay

  • Sagas → Rollback manual versão cloud

  • Observabilidade → SMF espiritual


🔟 Aplicações práticas no mundo híbrido

  • Integrar DB2 com microservices

  • Decidir quando expor APIs síncronas

  • Projetar sistemas resilientes

  • Evitar 2PC em cloud (sim, evite!)

  • Atuar como arquiteto de verdade, não só operador

🎯 Mainframer que entende CAP vira arquiteto respeitado.


1️⃣1️⃣ Comentário final (02:17 da manhã)

CAP não é teoria acadêmica.
É a explicação formal da dor que você já sentiu.

Se você já:

  • Perdeu noite por commit travado

  • Desconfiou de dado “meio gravado”

  • Escolheu derrubar tudo para não corromper

Então parabéns.
Você praticou CAP antes de virar hype.

🖤 El Jefe Midnight Lunch conclui:
Cloud é só o mainframe que esqueceu suas lições.