Tarun-kishore opened a new pull request, #20235:
URL: https://github.com/apache/pinot/pull/20235

   Adds quota defaults on a tenant that apply to every table on the tenant that 
does not set the corresponding field in its own quota config:
   - storage and storageQuotaEnforcementMode, from the table's server tenant
   - maxQueriesPerSecond and queryQuotaEnforcementMode, from the table's broker 
tenant
   
   Defaults are stored at /CONFIGS/TENANT/<tenantName> as a QuotaConfig and 
managed via GET/PUT/DELETE /tenants/{tenantName}/quotas. Storage fields can 
only be set on a server tenant and query fields only on a broker tenant. The 
defaults are removed once the tenant no longer exists in either role.
   
   Resolution is per field (QuotaConfigUtils): a field set on the table wins, 
otherwise the tenant default applies. Each enforcement mode is resolved 
independently of its limit, so a tenant can run all its tables in SHADOW and a 
table can opt out of a tenant limit by setting its mode to DISABLED. Logical 
tables do not inherit tenant defaults.
   
   StorageQuotaChecker and the realtime pause comment resolve the effective 
quota from ZK on each check, so storage changes take effect on the next check. 
Brokers resolve the effective QPS quota when building rate limiters; since a 
tenant change does not bump the table config version, the controller sends a 
REFRESH_TENANT_CONFIG message so brokers rebuild the limiters of the tables on 
that broker tenant.
   
   Absent defaults keep today's behavior. Upgrade all controllers and brokers 
before setting tenant defaults, since older ones ignore them (older brokers 
treat the refresh message as a no-op), and set SHADOW mode first to observe 
breaches before enforcing.
   
   Fixes #20234
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to