WSI (write-snapshot isolation) fixes SI’s serializability gap by checking stale reads instead of write-write conflicts, requiring one line of logic change.
Key Takeaways
Standard SI checks for write-write conflicts but this is the wrong invariant; stale reads are what actually cause non-serializable executions.
WSI aborts a transaction only if a value it read was overwritten before commit, directly addressing the root cause rather than bolting on extra checks like SSI.
PostgreSQL uses SSI (Cahill et al. 2009) as an add-on over SI; WSI would require replacing the core conflict-check logic, raising adoption friction.
WSI still under-approximates full serializability but the paper argues it achieves strict serializability under lock-free MVCC implementations.
The author notes WSI has seen no mainstream adoption partly due to timing (PostgreSQL SSI shipped first) and partly because plain SI is “good enough” for most workloads.