{"Entry":{"collection":"guc","key":"commit_siblings","name":"commit_siblings","aliases":[],"metadata":{"baseline":true,"boot_human":"Not specified","boot_val":null,"category":"Write-Ahead Log / Settings","category_zh":"","changed_in":["9.1","15","17"],"changes":[{"documentation_changed":true,"fields":{},"from":"8.1","status":"changed","to":"8.2"},{"documentation_changed":false,"fields":{"min_val":{"from":"1","to":"0"}},"from":"9.0","status":"changed","to":"9.1"},{"documentation_changed":false,"fields":{"short_desc":{"from":"Sets the minimum concurrent open transactions before performing commit_delay.","to":"Sets the minimum number of concurrent open transactions required before performing commit_delay."}},"from":"14","status":"changed","to":"15"},{"documentation_changed":false,"fields":{"short_desc":{"from":"Sets the minimum number of concurrent open transactions required before performing commit_delay.","to":"Sets the minimum number of concurrent open transactions required before performing \"commit_delay\"."}},"from":"16","status":"changed","to":"17"}],"content_hash":"7d6ba31c77533fb7a60b2016287dbc712179b23c7f000d1db7776d8178f0d837","context":"","default_changed_in":[],"default_history":[{"from":"9.0","to":"19","value":"5"}],"editorial":{"advice":{"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.","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.","small":"Low concurrency provides little opportunity, so commit_delay=0 is simplest. Even a microsecond value needs end-to-end latency evidence."},"mechanism":["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."],"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."],"references":[{"title":"PostgreSQL 19 Beta 4: commit_siblings","url":"https://www.postgresql.org/docs/19/runtime-config-wal.html#GUC-COMMIT-SIBLINGS"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["commit_delay","synchronous_commit","wal_writer_delay","wal_sync_method","fsync","full_page_writes"],"summary":"commit_siblings — Sets the minimum number of concurrent open transactions required before performing \"commit_delay\". Observed in PG9.0–19 Beta 4; its last measured boot default is 5 in PG19 Beta 4, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"7.4","group":"Write-Ahead Log","group_slug":"wal","imported_at":"2026-09-27T17:57:30.965633+08:00","intro_commit":{},"key":"commit_siblings","last_version":"20","max_val":"","min_val":"","name":"commit_siblings","position":65,"present_in":["7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"short_desc":"Minimum number of concurrent open transactions to require before performing the commit_delay delay.","short_desc_zh":"","source_rev":"english-manuals:63ffedf15ee8e7c840d10e77e0de64e91d1bedc724efc2c9f8c018d222f91d0e","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"commit_siblings","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"commit_siblings","SourceRevision":"english-manuals:63ffedf15ee8e7c840d10e77e0de64e91d1bedc724efc2c9f8c018d222f91d0e","Facts":{"boot_val":"5","category":"Write-Ahead Log / Settings","context":"user","description":"Minimum number of concurrent open transactions to require before performing the commit_delay delay. A larger value makes it more probable that at least one other transaction will become ready to commit during the delay interval. The default is five transactions.","doc":{"anchor":"GUC-COMMIT-SIBLINGS","file":"runtime-config-wal.html","lang":"en","sha256":"d2646404a06e8f7ac655204b4f28c049ae8f3fd4f2272db080fcefa2c4af0763","slug":"18"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":"1000","metadata_version":"18","min_val":"0","name":"commit_siblings","short_desc":"Sets the minimum number of concurrent open transactions required before performing \"commit_delay\".","source":"pg-settings-source-snapshot","unit":null,"vartype":"integer"},"ManualEvidence":{"doc":{"anchor":"GUC-COMMIT-SIBLINGS","file":"runtime-config-wal.html","lang":"en","sha256":"d2646404a06e8f7ac655204b4f28c049ae8f3fd4f2272db080fcefa2c4af0763","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"commit_siblings","SourceDatabase":"center","Version":"18","Locale":"en","Title":"commit_siblings","Summary":"Minimum number of concurrent open transactions to require before performing the commit_delay delay. A larger value makes it more probable that at least one other transaction will become ready to commit during the delay interval. The default is five transactions.","BodyHTML":"\u003cp\u003eMinimum number of concurrent open transactions to require before performing the commit_delay delay. A larger value makes it more probable that at least one other transaction will become ready to commit during the delay interval. The default is five transactions.\u003c/p\u003e","SourceRevision":"english-manuals:63ffedf15ee8e7c840d10e77e0de64e91d1bedc724efc2c9f8c018d222f91d0e","ContentHash":"561f56764ea9e022281db902287c75e2be0953f534053dc6819a7a7d60908957","Payload":{"description":"Minimum number of concurrent open transactions to require before performing the commit_delay delay. A larger value makes it more probable that at least one other transaction will become ready to commit during the delay interval. The default is five transactions."}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["10","11","12","13","14","15","16","17","18","19","20","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
