cockroachdb / cockroachdb/cockroach

roachtest: user-defined resource groups end-to-end

Open
#173,086 4 comments 0 reactions 0 assignees View on GitHub
A-admission-control O-agent T-kv
Dominant language
Go
Stars
32.5k
Forks
4.1k
PR merge metrics
PR metrics pending

Description

Roachtest that exercises the full path: `CREATE RESOURCE GROUP` via DDL → `SET experimental_resource_group` in a workload's `--conn-init` → observe RG-based CPU scheduling under contention on the resourcemanager Grafana dashboard. Two concurrent kv workloads shaped as an OLTP service (latency-sensitive, low concurrency) and a bulk throughput job (noisy neighbor, high concurrency), targeting separate databases so the story reads as two applications sharing a cluster. Before/after arc: RM mode off → noisy neighbor degrades the critical group's p99 → RM mode on → critical p99 recovers, noisy is clamped but not starved. Grafana annotations at each phase boundary. Registered as `ManualOnly` initially, promotable once stable. cockroachlabs/cockroach#1064 is adjacent — it tells the same story on the two built-in groups today; this issue pivots it onto DDL-created groups once the rangefeed/cache/AC-granter items above land, and doubles as demo material for upcoming customer conversations.

Epic CRDB-66387
Jira issue: CRDB-66386

Contributor guide

Open the contributing guide

Research direction

Start with the roachtest entry point and the resourcemanager Grafana dashboard flow described here, including CREATE RESOURCE GROUP and workload --conn-init settings. Verify the rangefeed, cache, and AC-granter prerequisites before implementing the two concurrent workloads. Done means the ManualOnly test shows the off/on p99 recovery and throttling phases with Grafana annotations, without starving the noisy workload.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, grafana, sql
Domain
databases, observability, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.