docs: cover the legacy shared.worker.* keys and the three-pool split - #536
Open
PedroHenrique0713 wants to merge 1 commit into
Open
docs: cover the legacy shared.worker.* keys and the three-pool split#536PedroHenrique0713 wants to merge 1 commit into
PedroHenrique0713 wants to merge 1 commit into
Conversation
The split into network, query and write pools (questdb/questdb#5805) is documented for the six new per-pool keys, but the legacy shared.worker.* keys that survived the split were not, and two pages still described the single-pool model. - shared-workers: document shared.worker.count and the four idle-tuning keys, and state that shared.worker.count is the default for *each* pool rather than a total, so a carried-over shared.worker.count=8 yields 24 threads. Also note the per-pool thread priorities. - query-engine: work is spread across three pools, not one. - capacity-planning: the total thread count is the sum of the three pools. Values read from PropServerConfiguration.java (the configureSharedThreadPool calls around L2216-2270) and PropertyKey.java on master.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #229.
The split into network, query and write pools (questdb/questdb#5805) is already documented for the six new per-pool keys in
shared-workers.md. What was missing is the other half: the legacyshared.worker.*keys survived the split and still drive the defaults, and two pages still described the single-pool model.What changed
configuration/shared-workers.mdshared.worker.countplus the four idle-tuning keys that had no entry:shared.worker.nap.threshold,shared.worker.sleep.threshold,shared.worker.sleep.timeout,shared.worker.yield.threshold. Onlyshared.worker.haltOnErrorwas covered before.shared.worker.countis the default for each pool, not a total to divide between them. A configuration carried over from a single-pool release withshared.worker.count=8gets 8 network + 8 query + 8 write threads, so 24.architecture/query-engine.md— said "most tasks are handled by a shared worker pool", singular. Now points at the three pools and links to the config page.getting-started/capacity-planning.md— the "CPU cores" section did not mention that the total thread count is the sum of three independently sized pools.Where the values come from
Read from
masterrather than from the changelog:PropertyKey.javaL533-544 for the key names.PropServerConfiguration.javaL2216-2270:shared.worker.countis resolved first and then passed as the default argument to each of the threeconfigureSharedThreadPoolcalls, which dogetInt(properties, env, workerCountProp, sharedWorkerCount). That is what makes it per-pool rather than a total. The four idle-tuning values are read once and applied to all three pools with no per-pool override.NORM_PRIORITY + 1, queryNORM_PRIORITY, writeNORM_PRIORITY - 1, matching the code comment about keeping the server responsive.DynamicPropServerConfiguration.java: none of these keys are reloadable, so every entry saysReloadable: no.I also verified the existing default-sizing table on the page against
cpuSpare(L1109-1124) and it is correct, so it is untouched.The issue also lists the networking-layer and data-ingestion architecture pages; those no longer exist in the current structure, so the architecture change lands in
query-engine.md.