~/talk

Tuning PostgreSQL for High Write Workloads

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

Starts with a 9-index test table (UUID PK, many random columns) that peaks ~25k TPS then collapses; updates run ~3.7k TPS. Major causes are full-page writes and log-buffer throughput. Turning on wal_compression barely helps for random data; raising max_wal_size=16GB extends good performance but raises recovery from ~3s to ~91s. Removing a few indexes yields steady ~20–26k TPS for days. Making UUIDs right-leaning and vacuuming in memory (3.5s vs 165s) also cuts cost; Aurora Postgres’ log-based storage reaches ~26k inserts and ~17k updates.

AI-written summary · about

  1. 0:00Introduction
  2. 0:52High Write Workloads
  3. 2:20Table Setup
  4. 3:10Indexing
  5. 3:34Performance
  6. 4:33Updates
  7. 5:19Checkpoints
  8. 6:33Full page writes
  9. 6:49Full block writes
  10. 7:00Why do we do full page writes
  11. 8:06Cut down view
  12. 8:55Wall compression
  13. 9:26Reran test
  14. 9:47Data compression
  15. 10:27Longer checkpoints
  16. 11:56Update workload
  17. 12:07Async
  18. 13:53Tradeoff
  19. 14:07Example
  20. 22:11Results
  21. 22:52Vacuuming
  22. 26:20Vacuums
  23. 30:00Aurora Postgres
  24. 30:32Stop and Go
  25. 32:26Aurora PostgreSQL
  26. 33:17Update PostgreSQL
  27. 33:43Questions
~/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.