You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The CPU Time Token system previously used two work queues, one for
system tenant traffic and one for application tenant traffic. While
this does allow us to set different top-level utilization targets for
the system tenant vs the application tenant, we believe we can get
most of the benefit by mapping all serverless-mode system-tenant
requests into a group that is almost surely going to be prioritized
over any other tenant.
This collapse allows us to delete resourceTier,
cpuTimeTokenChildGranter, and the per-tier arrays that organized the
system into two WorkQueues, two requesters, and four token
buckets. The granter now holds two buckets
(canBurst, noBurst): and implements the granter interface directly.
The coordinator owns a single WorkQueue, and GetKVWorkQueue always
returns it when CTT is enabled.
Settings are consolidated: KVCPUTimeUtilGoal becomes the canonical
target under admission.cpu_time_tokens.target_util, with the old
system_tenant key retired.
Also delete the activeMode/lastMode indirection that was previously
used to track mode transitions across the filler. GetKVWorkQueue
and resetInterval read the cpuTimeTokenACMode cluster setting
directly.
The per-tier CPU time token metrics (suffixed .system_tenant and
.app_tenant) are replaced by single, untiered metrics.
Epic: none
Release note: none
Co-Authored-By: roachdev-claude <roachdev-claude-bot@cockroachlabs.com>
description: Cumulative nanoseconds the app_tenant/can_burst CPU time token bucket has spent exhausted (tokens <= 0); rate() gives the fraction of wall-clock time the bucket was exhausted
description: Cumulative nanoseconds the can_burst CPU time token bucket has spent exhausted (tokens <= 0); rate() gives the fraction of wall-clock time the bucket was exhausted
description: Cumulative nanoseconds the app_tenant/no_burst CPU time token bucket has spent exhausted (tokens <= 0); rate() gives the fraction of wall-clock time the bucket was exhausted
description: Cumulative nanoseconds the system_tenant/can_burst CPU time token bucket has spent exhausted (tokens <= 0); rate() gives the fraction of wall-clock time the bucket was exhausted
description: Cumulative nanoseconds the system_tenant/no_burst CPU time token bucket has spent exhausted (tokens <= 0); rate() gives the fraction of wall-clock time the bucket was exhausted
description: Cumulative nanoseconds the no_burst CPU time token bucket has spent exhausted (tokens <= 0); rate() gives the fraction of wall-clock time the bucket was exhausted
description: Cumulative number of requests admitted per tenant by CPU time token admission control; use with wait_time_nanos to compute mean wait time via rate(wait_time) / rate(admitted_count)
description: Cumulative number of requests admitted per tenant by CPU time token admission control; use with wait_time_nanos to compute mean wait time via rate(wait_time) / rate(admitted_count)
description: Cumulative CPU time tokens returned per tenant, for example when actual CPU usage was lower than the initial estimate; rate() gives the per-tenant token return rate
description: Cumulative CPU time tokens returned per tenant, for example when actual CPU usage was lower than the initial estimate; rate() gives the per-tenant token return rate
description: Cumulative nanoseconds of admission queue wait time per tenant in CPU time token admission control; use with admitted_count to compute mean wait time via rate(wait_time) / rate(admitted_count)
description: Cumulative nanoseconds of admission queue wait time per tenant in CPU time token admission control; use with admitted_count to compute mean wait time via rate(wait_time) / rate(admitted_count)
description: Cumulative tokens added to the system_tenant/can_burst CPU time token bucket via the refill process; rate() gives the effective refill rate
description: Cumulative tokens added to the system_tenant/no_burst CPU time token bucket via the refill process; rate() gives the effective refill rate
0 commit comments