Skip to main content
Apache Pinot supports three types of query-level quotas that work together in a hierarchical system to control query rates and prevent resource exhaustion.

Overview of Quota Types

The three quota types are enforced in hierarchical order, with the most restrictive (lowest QPS) quota taking precedence

1. Table-Level Quotas

Table quotas limit QPS for specific tables and have the highest precedence in the hierarchy. This can be specified in the table config as shown in this example:

2. Database-Level Quotas

Database quotas apply to all tables within a specific database and are checked before table quotas. This is typically set in the cluster config as shown below:
This can also be set using the database API

3. Application-Level Quotas

Application quotas limit QPS based on the application identifier passed in query options. This can be set in the cluster config as shown below:
You could also use the API directly:
In case of application specific quota, you do need to specify the application name in the query as shown:
For more details on the syntax, how they’re imposed - please refer to the Apache Pinot documentation page that describes this in detail: Query Quotas

Example Scenarios