docs: GUC and feature flag configuration reference#2
Conversation
Add docs/configuration-reference.md — a comprehensive reference table for all 91+ boolean feature flags and dozens of system/background-job GUC parameters exposed by DocumentDB under the documentdb.* prefix. Covers four source files: pg_documentdb/src/configs/feature_flag_configs.c pg_documentdb/src/configs/system_configs.c pg_documentdb/src/configs/background_job_configs.c pg_documentdb_extended_rum/core/src/rumconfigs.c Each entry includes the full GUC name, default value, scope (USERSET / SUSET / POSTMASTER), and a plain-English description drawn from the gettext_noop() strings in the source. Pending-stabilization flags are called out explicitly so operators know which ones are safe to rely on. Also includes SQL snippets for inspecting and changing values at runtime. Signed-off-by: richardsimmonds <richardsimmonds314@gmail.com>
Docs Review — NEEDS CHANGESSolid first pass. The structure is sensible, the scope key table is clear, and the SQL snippets are helpful. One blocking accuracy issue in the RUM section, plus two smaller corrections before this lands. BlockingRUM GUC prefix is wrong. The section header claims the RUM GUCs live "under the same
DocumentDBRumInitCore("documentdb_rum", "documentdb_rum");Both set documentdb_rum.enable_parallel_index_build to on;
set documentdb_rum.prune_rum_empty_pages to on;
set documentdb_rum.rum_default_page_fill_factor to 100;
set documentdb_rum.enable_support_dead_index_items to on;Every GUC name in the RUM section needs the prefix corrected:
The opening claim "All parameters live under the The Minor (fix before merge)
Nit (no blocker)
Looks good
Fix the RUM prefix and the ALTER SYSTEM note and this is ready. Review by docs-reviewer (Hermes Agent) |
richardsimmonds
left a comment
There was a problem hiding this comment.
Inline comments attached — see summary comment above for the full verdict.
| @@ -0,0 +1,325 @@ | |||
| # DocumentDB Configuration Reference | |||
|
|
|||
| DocumentDB exposes its settings as PostgreSQL Grand Unified Configuration (GUC) | |||
There was a problem hiding this comment.
Accuracy error. "All parameters live under the documentdb. prefix" is wrong for the RUM module. DocumentDBRumInitCore is called with both prefix args set to "documentdb_rum" (documentdb_rum_init.c:74), and every test SET call uses documentdb_rum.*. Suggested fix: "Most parameters live under the documentdb. prefix; the RUM index module uses the documentdb_rum. prefix — see the RUM Index Configuration section below."
| ## RUM Index Configuration | ||
|
|
||
| The RUM index module registers its own GUCs under the same `documentdb.` prefix | ||
| (via the `documentdb_rum.` sub-prefix internally resolved to `documentdb.`). |
There was a problem hiding this comment.
Accuracy error. This sentence says the RUM GUCs are "internally resolved to documentdb." which is not true. DocumentDBRumInitCore("documentdb_rum", "documentdb_rum") registers them directly under documentdb_rum.* with no remapping. The test suite confirms: set documentdb_rum.enable_parallel_index_build to on;, set documentdb_rum.rum_default_page_fill_factor to 100;, etc. Remove the claim about internal resolution.
| ### System / Tuning | ||
|
|
||
| | GUC name | Default | Range | Description | | ||
| |---|---|---|---| |
There was a problem hiding this comment.
Wrong prefix. Should be documentdb_rum.rum_fuzzy_search_limit. Same correction applies to all 19 GUC names in this RUM section — they all need documentdb_rum. not documentdb.
|
|
||
| -- Persistent (requires superuser, takes effect after reload) | ||
| ALTER SYSTEM SET documentdb.maxWriteBatchSize = 50000; | ||
| SELECT pg_reload_conf(); |
There was a problem hiding this comment.
Minor inaccuracy. "cannot be changed with ALTER SYSTEM SET at runtime" is misleading — the command doesn't error out. It writes to postgresql.auto.conf successfully; the change just isn't applied until a server restart. Suggested: "Parameters with POSTMASTER scope require a full server restart; ALTER SYSTEM SET can stage the change but pg_reload_conf() will not apply it."
| ORDER BY name; | ||
|
|
||
| -- Only feature flags (boolean, non-default) | ||
| SELECT name, setting |
There was a problem hiding this comment.
Wrong prefix in query. WHERE name LIKE 'documentdb.%' misses all RUM GUCs since they live under documentdb_rum.*. Change to WHERE name LIKE 'documentdb%' or add a second clause OR name LIKE 'documentdb_rum.%'.
Summary
DocumentDB exposes 91+ boolean feature flags and dozens of system/background-job GUC parameters with zero documentation. This PR adds docs/configuration-reference.md, a comprehensive reference table.
What is included
Four source files catalogued:
Format
Each entry: full GUC name, default value, scope (USERSET/SUSET/POSTMASTER), plain-English description from gettext_noop() strings, and Pending stabilization callout where applicable. SQL snippets for inspecting and changing values included.
Testing
Docs-only change. No code changes, no test impact.