Hey guys! We are evaluating <https://docs.pinot.a...
# random
p
Hey guys! We are evaluating https://docs.pinot.apache.org/operate-pinot/tuning/workload-query-isolation We essentially want to limit cpu and memory per user. We use Zk Basic Auth. There is no way currently to set these values on user level. We are thinking of creating one workload config per user. Our custom pinot proxy, will automatically inject
SET workloadName = USERNAME_workload;
at the top of every query. Is this the right approach and is it scalable? (let's say we have 1000 users) Thanks!
p
@piby Creating one workload per user would likely work technically — 1000 workloads means roughly 1000 workload configs / ZK znodes, which is not huge by itself, and we have tested similar scale internally at LinkedIn. That said, I would be careful using it this way. The current workload-isolation model is better suited for a small number of coarse workload classes, for example ,
batch
,
high_priority
,
low_priority
, or
tenant/table-level
groups. Managing 1000 per-user configs means more config churn, and harder budget tuning, especially because CPU/memory budgets are absolute per enforcement window rather than a simple “queries per user” quota. A more scalable pattern would be to group users into workload tiers and inject the workload name based on tier, Then use application-level QPS/concurrency quotas for true per-user limits. The proxy can still use the authenticated username to enforce those quotas, while this features protects Pinot from noisy-neighbor workload classes.