Optimistic concurrency
Read freely; check for conflicts at commit; retry if conflict.
Origin
Kung and Robinson, "On Optimistic Methods for Concurrency Control," ACM TODS 1981. Postgres SERIALIZABLE uses SSI (Cahill et al., 2008) — the canonical production implementation.
Where it shows up in production
- PostgreSQL SERIALIZABLE Uses Serializable Snapshot Isolation — track read/write conflicts at commit, abort the loser.
- CouchDB / MongoDB versioned writes Client passes the version it read; server rejects on mismatch.
- HTTP ETag / If-Match The HTTP analogue — conditional PUT with the version you read.
Sources & further reading
Found this useful?