Skip to content

docs: document the symbol capacity auto-scaling keys - #541

Open
PedroHenrique0713 wants to merge 1 commit into
questdb:mainfrom
PedroHenrique0713:docs/auto-scale-symbol-capacity
Open

docs: document the symbol capacity auto-scaling keys#541
PedroHenrique0713 wants to merge 1 commit into
questdb:mainfrom
PedroHenrique0713:docs/auto-scale-symbol-capacity

Conversation

@PedroHenrique0713

Copy link
Copy Markdown
Contributor

cairo.auto.scale.symbol.capacity and cairo.auto.scale.symbol.capacity.threshold are not on the Cairo engine configuration page, even though they control the automatic symbol capacity that concepts/symbol already describes as the behaviour from 9.0.0 onwards. This adds both to the Symbol and indexing section.

Values taken from the core rather than from the sample config:

  • PropServerConfiguration.java:1077 reads the flag with getBoolean(..., true), so the default is true. That matches @nwoolmer's note on multiple inconsistencies between the default configuration variables, their documentation and naming conventions #274 that feat(sql): enable symbol capacity auto-scaling by default questdb#6352 enabled it by default, and it is the opposite of what the commented-out line in the shipped server.conf suggests (#cairo.auto.scale.symbol.capacity=false), which is what made the reporter read it as a contradiction.
  • PropServerConfiguration.java:1078 reads the threshold with getDouble(..., "0.8"), and the next line rejects a non-positive or non-finite value with a ServerConfigurationException, so an invalid value stops startup instead of falling back to the default.
  • Neither key appears in the dynamicProps set in DynamicPropServerConfiguration.java, so neither is reloadable and both need a restart. The comment above that same line in the default server.conf says the opposite ("Database restart is NOT required when this setting is changed"), so I documented what the code does. Happy to drop the restart sentence if the config comment is the intended contract and the set is what is out of date.

Descriptions follow the javadoc on CairoConfiguration.

This covers the second of the three points in #274. The first (query.timeout) went in with #483; the third (line.tcp.auth.db.path missing from the generated config) is a core concern rather than a docs one.

cairo.auto.scale.symbol.capacity and cairo.auto.scale.symbol.capacity.threshold
govern the automatic symbol capacity described in concepts/symbol, but neither
key was listed on the Cairo engine configuration page.

Defaults and behaviour taken from the core: PropServerConfiguration reads the
flag with a default of true and the threshold with a default of 0.8, rejecting
a non-positive or non-finite threshold at startup. Neither key is in the
dynamicProps set of DynamicPropServerConfiguration, so both need a restart.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant