~/talk

TDE as an Extension: A Different Path for PostgreSQL Encryption

Talkat PostgreSQL Conference Europe 2025 · 2025-10-21..10-24· [databases, security]
links:none on file
slides:none on file

An extension-first implementation builds several prototypes: an initial access-method prototype that encrypts tuples per-connection works for simple queries but causes corruption and memory spikes; switching to storage manager + WAL hooks requires a few hundred lines of core patches, adds event-trigger mapping from tables to files, and forces WAL tooling changes (pg_waldump → pgtd_waldump). Performance starts poor, improves threefold but still runs at about 60% of non‑encrypted throughput for heavy sequential workloads; a forked Percona build is currently required for production.

AI-written summary · about

  1. 0:00Introduction and speaker welcome
  2. 1:09What is transparent data encryption
  3. 6:08PostgreSQL community efforts on TDE
  4. 8:37Why build an extension instead of a fork
  5. 10:01Access methods as encryption hook
  6. 12:28First prototype and its limitations
  7. 16:46Memory management challenges
  8. 17:29Performance testing and results
  9. 19:15Index encryption concerns
  10. 21:21Storage manager as new approach
  11. 23:10Extension points in storage manager
  12. 25:16Handling database object abstraction
  13. 27:01Edge cases like VACUUM FULL
  14. 28:48Partitioning and inheritance issues
  15. 30:32Write-Ahead Log encryption
  16. 32:19WAL encryption key management
  17. 34:05Tool compatibility with encrypted WAL
  18. 35:29Current limitations and open questions
  19. 37:56Lessons learned from development
  20. 39:47Q&A session part one
  21. 41:57Q&A session part two
~/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.