Problem
Two users edit same record. Second save overwrites first. Pessimistic locking (SELECT FOR UPDATE) blocks and deadlocks.
Also known as: optimistic-concurrency, version-field, cas, compare-and-swap
Prevent lost updates in concurrent writes without blocking, using version numbers or timestamps to detect conflicts.
Two users edit same record. Second save overwrites first. Pessimistic locking (SELECT FOR UPDATE) blocks and deadlocks.
None — column + query pattern
Low — monitor conflict rate
Low — standard pattern
Lost update: retry not implemented, conflict silently ignored
Retry storm: high conflict, exponential backoff needed
Timestamp collision: same millisecond, false conflict
Version overflow: integer wraps (use BIGINT)
Stale read: read old version, write succeeds but based on stale data