Ch8 Sol1a: dirty probes, read skew, lost update

Ch8 Sol1a: dirty probes, read skew, lost update A sequence diagram generated by Archify. UPDATE acct id=2 to 400 (uncommitted) SELECT sees 500: old committed value COMMIT: 400 visible all at once UPDATE same row: BLOCKS on the row lock BEGIN: move 100 A -> B (A=400, B=600) RC: read A -> 500 (pre-commit) COMMIT transfer RC: read B -> 600: 500+600=1100 SKEW SI re-run: snapshot 500+500=1000, clean read counter -> 10 read counter -> 10 (same stale read) write 11, COMMIT write 11, COMMIT: T1's +1 is LOST balance=balance+1 twice -> 12, no loss Dirty probes: prevented at every level Read skew: RC vs snapshot Lost update: fix the write Session A · writer / mover · Sequence participant Session A writer / mover Session B · reader / rival writer · Sequence participant Session B reader / rival writer PostgreSQL 18 · documented rules only · Sequence participant PostgreSQL 18 documented rules only Legend main request return security message