githubEdit

Cluster

Cluster Configs Definition

These are the properties that be set at the cluster level.

Property
Default
Description

allowParticipantAutoJoin

true

This is a Helix Property that allows any Pinot Server/Broker/Controller to automatically join the cluster. This is true by default. Operators can set this to false for more control. If you set this to false, you will have to explicitly invoke /Instance/addInstance API. This property is checked when a Pinot node starts and has no effect once the node is connected to the cluster.

enable.case.insensitive

true

By default, Pinot queries are case insensitive. Table name, column name, etc are case insensitive. This is because the schema is still optional for batch tables. If you have a schema, you can set this to false and pinot will accept any case for table names and columns. This property is applicable to the broker and is read only when the broker starts. Changing this property will require restarting the broker.

pinot.broker.enable.query.limit.override

false

This allows operators to protect the Pinot cluster against bad queries with large limits. By setting this to true, if Pinot broker override query limit when it is larger than broker config:pinot.broker.query.response.limit (Default is 2147483647).E.g. If setpinot.broker.query.response.limit=1000 in Broker conf, then querySELECT * FROM myTable LIMIT 25000will be override to SELECT * FROM myTable LIMIT 1000.

default.hyperloglog.log2m

8

This is a special config to override for hyperloglog that is used for approximate distinct count. Default value is 8.

queryConsoleOnlyView

false

Only show query console for controller web UI, this is useful when you don't want to expose cluster or ZK UI to Users.

hideQueryConsoleTab

false

Hide query console tab from controller web UI, this is useful when you don't want to expose query console UI to Users.

pinot.multistage.engine.tls.enabled

false

Whether to enable TLS on brokers and servers for the multi-stage query engine. If set to true, TLS will be used for gRPC connections between brokers and servers (query plan dispatch from brokers to servers and final query result from servers to brokers) as well as servers and servers (data shuffle / exchange during execution of multi-stage queries).

pinot.lucene.max.clause.count

1024

Maximum number of clauses allowed in Lucene text search queries. When text search queries contain too many terms or clauses, Lucene throws TooManyClauses exceptions, which can cause query failures. Increase this value for complex text search queries.

pinot.multistage.engine.enabled

true

Whether the multi-stage query engine (MSE) is enabled for the cluster. When false, all queries use the single-stage engine.

accounting.factory.name

Fully qualified class name for the resource accounting factory. Resource accounting tracks CPU time and memory allocation per query for workload isolation.

accounting.enable.thread.cpu.sampling

false

Enable per-thread CPU time sampling for resource accounting. Provides visibility into CPU usage per query but adds measurement overhead.

accounting.enable.thread.memory.sampling

false

Enable per-thread memory allocation sampling for resource accounting.

accounting.oom.enable.killing.query

false

When true and resource accounting is enabled, allows Pinot to kill queries that are consuming excessive memory to prevent OutOfMemoryError.

accounting.cpu.time.based.killing.enabled

false

When true, allows killing queries that exceed the CPU time threshold specified by accounting.cpu.time.based.killing.threshold.ms.

accounting.cpu.time.based.killing.threshold.ms

30000

CPU time threshold in milliseconds beyond which a query may be killed if CPU-based killing is enabled.

Cluster Configs APIs

List All Cluster Configs

GET http://<controller>:<port>/cluster/configs

Description

- Lists all the configurations set at the cluster level

Update Cluster Configs

POST http://<controller>:<port>/cluster/configs

Add new or update existing cluster configs.

Request Body

Name
Type
Description

string

JSON body contains the configs map for new/updated configs. E.g.

{"queryConsoleOnlyView":"true"}

Example:

Last updated

Was this helpful?