Controller

Most of the properties in Pinot are set in Zookeeper via Helix. However, you can also set properties in controller.conf file. You can specify the path to config file at the startup time as follows -

bin/pinot-admin.sh StartController -configFileName /path/to/controller.conf

Controller.conf can have the following properties -

Primary Configuration

Property

Default

Description

controller.vip.host

same as controller.host

The VIP hostname used to set the download URL for segments

controller.vip.port

same as controller.port

​

controller.vip.protocol

​

​

controller.host

localhost

The ip of the host on which controller is running

controller.port

9000

The port on which controller should run

controller.access.protocol

​

​

controller.data.dir

${java.io.tmpdir}/PinotController

​

Directory to host segment data

​

controller.local.temp.dir

​

​

controller.zk.str

localhost:2181

zookeeper host:port string to connect

controller.update_segment_state_model

false

​

controller.helix.cluster.name

​

​

controller.tenant.isolation.enable

true

Enable Tenant Isolation, default is single tenant cluste

controller.enable.split.commit

false

​

controller.query.console.useHttps

false

use https instead of http for cluster

controller.upload.onlineToOfflineTimeout

2 minutes

​

controller.mode

dual

Should be one of helix_only, pinot_only or dual

controller.resource.rebalance.strategy

org.apache.helix.controller. rebalancer.strategy.AutoRebalanceStrategy

​

controller.realtime.segment.commit.timeoutSeconds

120 seconds

request timeout for segment commit

controller.deleted.segments.retentionInDays

7 days

duration for which to retain deleted segments

controller.admin.access.control.factory.class

org.apache.pinot.controller. api.access.AllowAllAccessFactory

​

controller.segment.upload.timeoutInMillis

10 minutes

timeout for upload of segments.

controller.realtime.segment.metadata.commit.numLocks

64

​

controller.enable.storage.quota.check

true

​

controller.enable.batch.message.mode

false

​

controller.allow.hlc.tables

true

​

controller.storage.factory.class.file

org.apache.pinot.spi. filesystem.LocalPinotFS

​

table.minReplicas

1

​

​

Periodic Tasks Configuration

Property

Default

Description

controller.retention.frequencyInSeconds

6 hours

frequency at which to trigger retention checking tasks

controller.validation.frequencyInSeconds (Deprecated)

1 hour

​

controller.offline.segment.interval.checker.frequencyInSeconds

24 hours

​

controller.realtime.segment.validation.frequencyInSeconds

1 hour

​

controller.broker.resource.validation.frequencyInSeconds

1 hour

​

controller.broker.resource.validation.initialDelayInSeconds

120-300 seconds

​

controller.statuschecker.frequencyInSeconds

5 minutes

​

controller.statuschecker.waitForPushTimeInSeconds

10 minutes

​

controller.task.frequencyInSeconds

-1 (disabled)

​

controller.realtime.segment.relocator.frequency

1 hour

​

controller.segment.level.validation.intervalInSeconds

24 hours

​

controller.statuschecker.intialDelayInSeconds

120-300 seconds

​

controller.retentionManager.initialDelayInSeconds

120-300 seconds

​

controller.offlineSegmentIntervalChecker.initialDelayInSeconds

120-300 seconds

​

controller.realtimeSegmentRelocation.initialDelayInSeconds

120-300 seconds

​