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 -
Property | Default | Description |
controller.vip.host | same as | The VIP hostname used to set the download URL for segments |
controller.vip.port | same as | ​ |
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 |
| Should be one of |
controller.resource.rebalance.strategy |
| ​ |
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 |
| ​ |
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 |
| ​ |
table.minReplicas | 1 | ​ |
​
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 | ​ |