Server
Server configuration can be provided as part of the server startup parameters.
bin/pinot-admin.sh StartServer -configFileName /path/to/server.conf
server.conf can have the following properties
Property
Default
Description
pinot.server.netty.port
8098
Port to query Pinot Server
pinot.server.netty.host
Pinot server hostname
pinot.server.adminapi.port
8097
Port for Pinot Server Admin UI
pinot.server.instance.id
By default the server instance id used by Helix is Server_hostname_port where the hostname and port are configured through host and port config values above. This config overwrites the default setting. User can put server id independent of the server's hostname and port.
pinot.server.instance.dataDir
java.io.tmpdir + /PinotServer/index
Directory to hold all the data
pinot.server.instance.consumerDir
pinot.server.instance.segmentTarDir
java.io.tmpdir + /PinotServer/segmentTar
Directory to hold temporary segments downloaded from Controller or Deep Store
pinot.server.instance.readMode
mmap
pinot.server.instance.reload.consumingSegment
true
Specifies if the reload segment API should reload the consuming segments. This is useful when the corresponding schema is updated and we want the changes to be reflected in the consuming segment.
pinot.server.instance.data.manager.class
org.apache.pinot.server. starter.helix.HelixInstanceDataManager
pinot.server.query.executor.class
org.apache.pinot.core.query. executor.ServerQueryExecutorV1Impl
pinot.server.query.executor.pruner.class
ValidSegmentPruner,DataSchemaSegmentPruner, ColumnValueSegmentPruner,SelectionQuerySegmentPruner
pinot.server.query.executor.timeout
15000
Timeout for Server to process Query in Milliseconds
pinot.server.query.executor.max.execution.threads
-1 (unlimited)
Maximum number of execution threads allowed for a query. Limiting this can prevent a single expensive query from occupying all the execution threads.
pinot.server.query.executor.max.init.group.holder.capacity
10000
Initial capacity of the group key holder. Increasing this value can reduce the resizing of the group key holder, but increase the heap usage for small group-by queries.
pinot.server.query.executor.num.groups.limit
100000
Maximum number of groups kept from each segment during query execution. Once this limit is reached, no more groups will be taken (will still aggregate on existing groups).
pinot.server.query.executor.min.segment.group.trim.size
-1 (do not trim)
Minimum number of groups kept at segment level during query execution. If there are enough groups found in a segment, pinot will trim the groups to max(5 * LIMIT, minSegmentgroupTrimSize) groups based on the order-by clause. Increasing this value can increase the accuracy of the results, but also increase the heap usage of the group-by queries.
pinot.server.query.executor.min.server.group.trim.size
5000
Minimum number of groups kept at server level during query execution. If there are enough groups found in a server, pinot will trim the groups to max(5 * LIMIT, minServergroupTrimSize) groups based on the order-by clause. Increasing this value can increase the accuracy of the results, but also increase the heap usage and data transfer cost of the group-by queries.
pinot.server.query.executor.groupby.trim.threshold
1000000
Threshold for number of groups to trigger the server group trimming. Increasing this value can reduce the times of trimming, but also increase the heap usage of the group-by queries.
Copy link