From: | Kirill Bychik <kirill(dot)bychik(at)gmail(dot)com> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | WAL usage calculation patch |
Date: | 2020-02-05 13:35:59 |
Message-ID: | CAB-hujrP8ZfUkvL5OYETipQwA=e3n7oqHFU=4ZLxWS_Cza3kQQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello pgsql-hackers,
Submitting a patch that would enable gathering of per-statement WAL
generation statistics, similar to how it is done for buffer usage.
Collected is the number of records added to WAL and number of WAL
bytes written.
The data collected was found valuable to analyze update-heavy load,
with WAL generation being the bottleneck.
The usage data is collected at low level, after compression is done on
WAL record. Data is then exposed via pg_stat_statements, could also be
used in EXPLAIN ANALYZE if needed. Instrumentation is alike to the one
used for buffer stats. I didn't dare to unify both usage metric sets
into single struct, nor rework the way both are passed to parallel
workers.
Performance impact is (supposed to be) very low, essentially adding
two int operations and memory access on WAL record insert. Additional
efforts to allocate shmem chunk for parallel workers. Parallel workers
shmem usage is increased to fir in a struct of two longs.
Patch is separated in two parts: core changes and pg_stat_statements
additions. Essentially the extension has its schema updated to allow
two more fields, docs updated to reflect the change. Patch is prepared
against master branch.
Please provide your comments and/or code findings.
Attachment | Content-Type | Size |
---|---|---|
wal_stats.ext.patch | application/octet-stream | 27.1 KB |
wal_stats.core.patch | application/octet-stream | 11.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2020-02-05 13:56:10 | Re: Documentation patch for ALTER SUBSCRIPTION |
Previous Message | Sehrope Sarkuni | 2020-02-05 13:28:22 | Re: Internal key management system |