Validação Empírica de Isolamento
Matriz Hermitage de Isolamento SQL
Comparação empírica dos limites reais de isolamento transacional entre SQLite, PostgreSQL e MySQL através de fuzzing concorrente sistemático executado com o comando `chaossql matrix`.
PREVENIDO: Isolamento Seguro
PERMITIDO: Risco de Anomalia
| Anomalia / Código | Grafo Formal | SQLite (WAL) | Postgres (RC) | Postgres (SSI) | MySQL (InnoDB RR) |
|---|---|---|---|---|---|
| P4 — Lost Update (Perda de Atualização) | T1 ──(rw)──► T2 ──(ww)──► T1 | PERMITIDO | PERMITIDO | PREVENIDO | PREVENIDO |
| A5B — Write Skew (Distorção de Escrita) | T1 ──(rw)──► T2 ──(rw)──► T1 | PERMITIDO | PERMITIDO | PREVENIDO | PERMITIDO |
| A5A — Read Skew (Distorção de Leitura) | T1 ──(rw)──► T2 ──(wr)──► T1 | PERMITIDO | PERMITIDO | PREVENIDO | PREVENIDO |
| G0 — Dirty Write (Escrita Suja) | T1 ──(ww)──► T2 ──(ww)──► T1 | PREVENIDO | PREVENIDO | PREVENIDO | PREVENIDO |
| G1a — Dirty Read / Aborted Read (Leitura Suja) | w1(x) ... r2(x) ... a1 | PREVENIDO | PREVENIDO | PREVENIDO | PREVENIDO |
| G2 — Anti-Dependency Cycle (Ciclo de Anti-Dependência) | T1 ──(rw)──► T2 ──(rw)──► T3 ──(rw)──► T1 | PERMITIDO | PERMITIDO | PREVENIDO | PERMITIDO |
| G-DL — Deadlock Cycle & Recovery (Bloqueio Mútuo) | T1 ──(waits)──► T2 ──(waits)──► T1 | Timeout | 40P01 | 40P01 | 1213 |
P4
Lost Update (Perda de Atualização)
Duas transações leem o mesmo registro e calculam novas versões com base em leituras defasadas. A segunda escrita comita e sobrescreve cegamente a primeira.
Comando para reproduzir:
chaossql demo banking