Skip to content

commit_siblings

commit_siblings — Sets the minimum number of concurrent open transactions required before performing “commit_delay”. Observed in PG9.0–19 Beta 3; its last measured boot default is 5 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.
Note

Fact — official short description: “Sets the minimum number of concurrent open transactions required before performing “commit_delay”.”

Identity

Type , Valueinteger
Upstream pg_settings type
Context , Valueuser
Settable by an ordinary user
Unit , Value
Raw unit
Range , Value01000
Raw limits in the last observed version
Enum values , Value
— for non-enum types
Category , ValueWrite-Ahead Log / Settings
Upstream classification
Latest boot value , Value5
5

Lifecycle

Fact Value
First observed PG9.0 (research boundary)
Present in PG9.0–19 Beta 3
Removed in No
Introduction commit Not asserted: predates the PG9.0 research boundary
Commit date
Discussion

Default history

Measured PG9.0–19 Beta 3 boot defaults
Versions Raw boot_val Unit Human value
PG9.0–19 Beta 3 5 5

How it works

Sets the minimum number of concurrent open transactions required before performing “commit_delay”. It can be changed at session scope, so different sessions may observe different behavior.

This is the concurrency gate for commit_delay, counted from other active transactions when a commit flush is needed. It is not a count of commits already waiting and has no useful effect while commit_delay is zero.

Monitor and change commit_siblings together with commit_delay, synchronous_commit, wal_writer_delay. Validate on the relevant server role and real workload, then use its user context to choose session change, reload, or restart; a historical boot default is not the current effective value.

Tuning advice

Tip

Advice. These are workload-specific starting points and must be validated with measurements.

Workload Guidance
OLTP Benchmark commit_siblings only under high commit concurrency with material WALSync waits and an acceptable p95/p99 latency budget. Tune commit_delay and commit_siblings as a pair and retain a zero-delay baseline.
OLAP Bulk jobs should usually reduce commit frequency with sensible transaction batches; do not use group-commit delay to compensate for row-at-a-time ETL commits.
Small nodes Low concurrency provides little opportunity, so commit_delay=0 is simplest. Even a microsecond value needs end-to-end latency evidence.

Pigsty

Values use the fixed 8-vCPU, 32-GiB, 100-GiB SSD fixture and render the current Pigsty templates for PG19 Beta 3; this does not assert current Pigsty support for that historical or beta release.

Template Effective value Versus upstream boot Source expression
OLTP 10 different 10
OLAP 10 different 10
CRIT 10 different 10
TINY 10 different 10
Caution

Advice — pending human review. Fact from the current Pigsty template projection: OLTP: PG9.0–19 Beta 3 = 10 (dcs); OLAP: PG9.0–19 Beta 3 = 10 (dcs); CRIT: PG9.0–19 Beta 3 = 10 (dcs); TINY: PG9.0–19 Beta 3 = 10 (dcs). Advice, pending human review — Editorial interpretation, pending human maintainer review: the override appears intended to apply commit_delay only after the server has substantial concurrent transaction activity; confirm it against the current Pigsty templates, hardware fixture, and operational guarantees before publication.

Common pitfalls

  • Tuning it while commit_delay is zero, in which case the threshold has no effect.
  • Treating it as a count of commits already waiting rather than other active transactions.
  • Setting the gate too low and adding latency during ordinary moderate concurrency.
  • Applying a session-level experiment globally without comparing commit latency and WALSync behavior.

commit_delay · synchronous_commit · wal_writer_delay · wal_sync_method · fsync · full_page_writes

References