Content-Length: 265076 | pFad | https://github.com/postgrespro/postgres/commit/9a20a9b21baa819df1760b36f3c36f25d11fc27b

FB Improve scalability of WAL insertions. · postgrespro/postgres@9a20a9b · GitHub
Skip to content

Commit 9a20a9b

Browse files
committed
Improve scalability of WAL insertions.
This patch replaces WALInsertLock with a number of WAL insertion slots, allowing multiple backends to insert WAL records to the WAL buffers concurrently. This is particularly useful for parallel loading large amounts of data on a system with many CPUs. This has one user-visible change: switching to a new WAL segment with pg_switch_xlog() now fills the remaining unused portion of the segment with zeros. This potentially adds some overhead, but it has been a very common practice by DBA's to clear the "tail" of the segment with an external pg_clearxlogtail utility anyway, to make the WAL files compress better. With this patch, it's no longer necessary to do that. This patch adds a new GUC, xloginsert_slots, to tune the number of WAL insertion slots. Performance testing suggests that the default, 8, works pretty well for all kinds of worklods, but I left the GUC in place to allow others with different hardware to test that easily. We might want to remove that before release. Reviewed by Andres Freund.
1 parent 5372275 commit 9a20a9b

File tree

6 files changed

+1641
-496
lines changed

6 files changed

+1641
-496
lines changed

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://github.com/postgrespro/postgres/commit/9a20a9b21baa819df1760b36f3c36f25d11fc27b

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy