{"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"}],"derived_content_hash":"183c3307135c58a9a28391b66a4a385a06305a5c1b10af431b32e769c7824822","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"],"repair_provenance":{"original_source_revision":"english-manuals:63ffedf15ee8e7c840d10e77e0de64e91d1bedc724efc2c9f8c018d222f91d0e","receipt_sha256":"4578db9a2ec18a5b433d2e7a9d1502bb0660a73b20a192db3cb366de79d4f643","repair":"wiki-repair-20261023"},"short_desc":"Minimum number of concurrent open transactions to require before performing the commit_delay delay.","short_desc_zh":"","source_rev":"wiki-repair-20261023:a781dcb877b0d0fa120909ffd032c8fa2172752c349bfecfea5b8c467f932f99","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"commit_siblings","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"commit_siblings","SourceRevision":"wiki-repair-20261023:a781dcb877b0d0fa120909ffd032c8fa2172752c349bfecfea5b8c467f932f99","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.","description_zh":"执行 commit_delay 延迟前要求的并发活动事务的最小数目。大一些的值会导致在延迟间隔期间更可能有至少另外一个事务准备好提交。默认值是五个事务。","description_zh_html":"\u003cp\u003e\n        执行 \u003ccode class=\"varname\"\u003ecommit_delay\u003c/code\u003e 延迟前要求的并发活动事务的最小数目。大一些的值会导致在延迟间隔期间更可能有至少另外一个事务准备好提交。默认值是五个事务。\n       \u003c/p\u003e","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","translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/runtime-config-wal.html","sha256":"94cdacb1171b4c528492ca0aec6aafa48a2c758276225fe0dbfe5b12452d4930"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"unit":null,"vartype":"integer","zh_from":"same-version-pgdoc"},"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":"wiki-repair-20261023:a781dcb877b0d0fa120909ffd032c8fa2172752c349bfecfea5b8c467f932f99","ContentHash":"26b967e28cb5fdd46e84b982ddcc1bb47d1f751e08a1aee03786b83b83e5eaf3","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":"en","Fallback":false,"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","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
