Specifies the amount of memory to use to cache the contents of pg_commit_ts (see pgdata_contents_table).
At a glance
| Property | Value |
|---|---|
| Parameter | commit_timestamp_buffers |
| Category | Resource Consumption |
| Default | 0 |
| Value type | integer |
| Change scope | Server restart required (postgresql.conf) |
| Available in | PostgreSQL 17, 18, 19 (added in 17) |
What it does
Specifies the amount of memory to use to cache the contents of pg_commit_ts (see pgdata_contents_table). If this value is specified without units, it is taken as blocks, that is BLCKSZ bytes, typically 8kB. The default value is 0, which requests shared_buffers/512 up to 1024 blocks, but not fewer than 16 blocks. This parameter can only be set at server start.
(Description quoted from the official PostgreSQL documentation.)
How to apply a change
Set it in postgresql.conf (or with ALTER SYSTEM) and restart the server — this parameter cannot change without a restart.
Inspect the current value and source with SHOW commit_timestamp_buffers; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'commit_timestamp_buffers';.
Tuning guidance
This parameter is rarely a performance lever. Leave it at the default unless you have a specific, documented reason to change it, change it on one session or one role/database first, and confirm the effect with pg_settings and your own measurements before rolling it out cluster-wide.