~/talk

Concurrency Deep-Dive

Talkat PostgresOpen Silicon Valley 2017 · 2017-09-06..09-08· [databases]
speakerdeck:tejasmanohar
slides:none on file

Postgres uses MVCC with per-row Xmin/Xmax transaction IDs (32-bit, monotonically increasing) and compare-and-swap to expire versions, so reads never block writes and vice versa. Autovacuum (introduced in Postgres 9) reclaims dead row versions or databases run out of disk and risk XID wraparound outages (real incidents like Sentry/Joyent). Defaults use read committed; enable serializable to avoid serialization anomalies but expect aborts and retries. Use ON CONFLICT for idempotent inserts.

AI-written summary · about

  1. 0:00Introduction to concurrency
  2. 2:02Acid transaction basics
  3. 5:10Consistency and durability
  4. 7:07Concurrency race conditions
  5. 8:44Database locking mechanisms
  6. 11:06Timestamp ordering
  7. 14:01MVCC explained
  8. 17:19MVCC data updates
  9. 18:33Row version internals
  10. 22:04Vacuum process overview
  11. 24:54Avoiding transaction wraparound
  12. 26:58Configuring autovacuum
  13. 28:51Isolation levels
  14. 30:40Read committed isolation
  15. 32:37Repeatable read anomalies
  16. 35:50Serializable isolation
  17. 38:53Isolation level summary
  18. 40:09Advanced locking and monitoring
  19. 41:45Deadlock handling
  20. 43:31Upsert handling
  21. 45:18Q&A and concluding remarks
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.