Empirical Isolation Verification
Hermitage SQL Isolation Matrix
Empirical comparison of transaction isolation boundaries across SQLite, PostgreSQL, and MySQL through systematic concurrency fuzzing executed with `chaossql matrix`.
PREVENTED: Safe Isolation
PERMITTED: Anomaly Risk
| Anomaly / Code | Formal Cycle | SQLite (WAL) | Postgres (RC) | Postgres (SSI) | MySQL (InnoDB RR) |
|---|---|---|---|---|---|
| P4 — Lost Update (Perda de Atualização) | T1 ──(rw)──► T2 ──(ww)──► T1 | PERMITTED | PERMITTED | PREVENTED | PREVENTED |
| A5B — Write Skew (Distorção de Escrita) | T1 ──(rw)──► T2 ──(rw)──► T1 | PERMITTED | PERMITTED | PREVENTED | PERMITTED |
| A5A — Read Skew (Distorção de Leitura) | T1 ──(rw)──► T2 ──(wr)──► T1 | PERMITTED | PERMITTED | PREVENTED | PREVENTED |
| G0 — Dirty Write (Escrita Suja) | T1 ──(ww)──► T2 ──(ww)──► T1 | PREVENTED | PREVENTED | PREVENTED | PREVENTED |
| G1a — Dirty Read / Aborted Read (Leitura Suja) | w1(x) ... r2(x) ... a1 | PREVENTED | PREVENTED | PREVENTED | PREVENTED |
| G2 — Anti-Dependency Cycle (Ciclo de Anti-Dependência) | T1 ──(rw)──► T2 ──(rw)──► T3 ──(rw)──► T1 | PERMITTED | PERMITTED | PREVENTED | PERMITTED |
| G-DL — Deadlock Cycle & Recovery (Bloqueio Mútuo) | T1 ──(waits)──► T2 ──(waits)──► T1 | Timeout | 40P01 | 40P01 | 1213 |
P4
Lost Update (Perda de Atualização)
Two concurrent transactions read the same row and overwrite mutations blindly without transactional conflict serialization.
Reproduction command:
chaossql demo banking