Skip to content

docs: document Enterprise resource groups for query workload isolation - #548

Open
kafka1991 wants to merge 5 commits into
mainfrom
ent_resource_group
Open

docs: document Enterprise resource groups for query workload isolation#548
kafka1991 wants to merge 5 commits into
mainfrom
ent_resource_group

Conversation

@kafka1991

@kafka1991 kafka1991 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Resource groups let one Enterprise instance run competing query workloads without one starving another.

New pages:

  • concepts/resource-groups.md covers how a query is assigned to a group, what is managed, and what each control actually guarantees.
  • operations/resource-groups.md covers creating groups, mapping principals, choosing limits, inspection and troubleshooting.
  • configuration/resource-groups.md covers the seven instance settings.

query/functions/meta.md gains current_resource_group(), resource_groups() and resource_group_mappings(), and its query_activity() column list was four columns out of date. operations/logging-metrics.md gains the ten per-group and seven instance-wide series. sidebars.js gains three entries.

The pages are explicit about what each control cannot do. Weights do nothing while only one group has work. The CPU cap is a rate over roughly a 100 ms window, not an instantaneous ceiling. Memory accounting is batched per worker, so a group can overshoot briefly. Admission is the only exact control. Getting this wrong is the main way someone ends up disappointed by the feature.

The first scenario on the operations page is the one likely to be read during an incident: the instance stops answering while CPU looks idle. Worth a close read. It says that enabling the feature alone frees the workers, and that Fiber pools without resource groups do not, which neither setting's name suggests.

Claims were checked against the implementation rather than design notes: managed statement types, mapping resolution order, policy value ranges, the error strings clients see, both table function schemas, the metric names, and the -1 versus NULL difference between the Prometheus and SQL views of an uncapped group.

One ordering note. The pages describe the feature as it stands on the Enterprise branch, including that it disables itself rather than refusing to start when it is left at its default and a SQL worker pool is in legacy mode. This should not merge ahead of that release.

Add three pages and wire them into the sidebar. The concept page covers how
a query is assigned to a group, what is managed, and how strong each of the
four controls actually is: admission is an exact gate, CPU weight is a share
that only bites under contention, the CPU cap is a rate over a short window,
and memory limits are batched per worker. It also explains why CPU control is
cooperative, what happens on a replica and after an internal fault, and what
the feature costs when nothing competes.

The operations page covers day-to-day use: quick start, requirements, the
instance settings, group and mapping statements, policy parameters, six
worked scenarios, the inspection functions, the per-group metrics, the errors
clients see, and troubleshooting. The scenarios start with an instance that
stops answering while CPU looks idle, which is the case resource groups
address most directly, since a query that reaches a cooperative checkpoint
releases its worker instead of holding it to completion.

The configuration page documents the seven instance settings, including that
the feature turns itself off rather than refusing to start when it was left
at its default and an SQL pool is in legacy mode.

Complete the query_activity() column list, document current_resource_group(),
resource_groups() and resource_group_mappings() in the function reference, and
add the resource group series to the metrics reference.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nua5uVhTxq3uBnUD31b1aD
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

🚀 Build success!

Latest successful preview: https://preview-548--questdb-documentation.netlify.app/docs/

Commit SHA: 8d2f734

📦 Build generates a preview & updates the link on each commit.

@kafka1991 kafka1991 changed the title docs: document QuestDB Enterprise resource groups docs: document Enterprise resource groups for query workload isolation Sep 9, 2026
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