# Default values for trino. # This is a YAML-formatted file. # Declare variables to be passed into your templates. #################################################################################################### ################################### General configurations ################################## #################################################################################################### image: repository: trinodb/trino pullPolicy: IfNotPresent tag: 443 # Array of EnvVar (https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#envvar-v1-core) env: - name: AWS_REGION value: securityContext: runAsUser: 1000 runAsGroup: 1000 service: type: ClusterIP port: 8080 serviceAccount: create: true name: trino annotations: eks.amazonaws.com/role-arn: #################################################################################################### ################################### Server configurations ################################## #################################################################################################### server: workers: 15 node: environment: production dataDir: /data/trino pluginDir: /usr/lib/trino/plugin log: trino: level: INFO config: path: /etc/trino authenticationType: "PASSWORD" internalSharedSecret: $SHARED_SECRET http: port: 8080 query: maxMemory: "1750GB" maxMemoryPerNode: "50GB" maxTotalMemoryPerNode: "50GB" memory: heapHeadroomPerNode: "4GB" autoscaling: enabled: true maxReplicas: 45 targetCPUUtilizationPercentage: 50 targetMemUtilizationValue: "39Gi" #################################################################################################### ################################### Co-ordinator configurations ################################## #################################################################################################### coordinator: resources: requests: memory: "420Gi" cpu: 60 limits: memory: "420Gi" cpu: 60 jvm: maxHeapSize: "400G" gcMethod: type: "UseG1GC" g1: heapRegionSize: "32M" #################################################################################################### ################################### Worker configurations ################################## #################################################################################################### worker: resources: requests: memory: "78Gi" cpu: 45 limits: memory: "78Gi" cpu: 45 jvm: maxHeapSize: "73G" gcMethod: type: "UseG1GC" g1: heapRegionSize: "32M" #################################################################################################### ################################### Additional Properties configurations ########################### #################################################################################################### additionalLogProperties: {} additionalNodeProperties: {} additionalJVMConfig: {} #################################################################################################### ################################### Additional config properties ################################## #################################################################################################### additionalConfigProperties: - node-scheduler.include-coordinator=false - exchange.deduplication-buffer-size=500MB - exchange.max-buffer-size=64MB - exchange.http-client.max-requests-queued-per-destination=10000 - scheduler.http-client.max-requests-queued-per-destination=10000 - #exchange.max-response-size=128MB - sink.max-buffer-size=64MB - #sink.max-broadcast-buffer-size=400MB - exchange.client-threads=96 - node-scheduler.max-splits-per-node=240 - node-scheduler.max-pending-splits-per-task=24 - task.concurrency=64 - query.max-stage-count=200 additionalWorkerConfigProperties: - node-scheduler.include-coordinator=false - exchange.max-buffer-size=64MB - exchange.http-client.max-requests-queued-per-destination=10000 - #exchange.max-response-size=128MB - sink.max-buffer-size=64MB - #sink.max-broadcast-buffer-size=400MB - exchange.client-threads=96 - node-scheduler.max-splits-per-node=240 - node-scheduler.max-pending-splits-per-task=24 - task.concurrency=64 - retry-policy=QUERY - query.max-stage-count=200 - query-retry-attempts=3 - retry-initial-delay=2s - retry-max-delay=6s - retry-delay-scale-factor=2.0 - shutdown.grace-period=300s #default is 2 minutes #################################################################################################### ################################### Catalog configuration ################################## #################################################################################################### additionalCatalogs: jmx: | connector.name=jmx hive: | connector.name=hive hive.security= hive.metastore=glue hive.metastore-cache-ttl=30d # hive.metastore-cache.cache-partitions=false hive.metastore-refresh-interval=1m hive.metastore-refresh-max-threads=96 hive.metastore-cache-maximum-size=100000 hive.non-managed-table-writes-enabled=true hive.non-managed-table-creates-enabled=true hive.max-partitions-per-writers=15000 hive.security=allow-all hive.hive-views.enabled=true hive.hive-views.run-as-invoker=true hive.metastore.glue.max-connections=480 #hive.max-initial-splits=960 hive.max-initial-split-size=16MB #hive.max-split-size=256MB #hive.max-outstanding-splits=19200 hive.split-loader-concurrency=16 hive.file-status-cache-tables=* hive.file-status-cache-expire-time=720m hive.orc.use-column-names=true hive.s3.max-connections=5000 hive.metastore.glue.get-partition-threads=480 #hive.metastore.glue.read-statistics-threads=480 hive.metastore.glue.pin-client-to-current-region=true hive.s3.pin-client-to-current-region=true hive.table-statistics-enabled=false hive.collect-column-statistics-on-write=false #hive.cache.enabled=true #hive.cache.location=/etc/starburst/dat #hive.metastore-recording-path=/etc/starburst/recording.json #hive.metastore-recording-duration=10m #################################################################################################### ################################### Kubernetes node configuration ################################## #################################################################################################### nodeSelector: {} tolerationsCoordinator: - key: trino-coordinator value: reserved effect: NoSchedule tolerationsWorker: [] # Affinity configurations terminationGracePeriodSeconds: 300 #default value is 30s. set explicitly to 300s so that any long running query will run to completion before worker shutdown affinityCoordinator: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: eks.amazonaws.com/nodegroup operator: In values: - trino-coordinator affinityWorker: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: eks.amazonaws.com/nodegroup operator: In values: - trino #################################################################################################### ################################### Metrics Configuration ################################## #################################################################################################### prometheus: enabled: "true" port: 8081 rules: - attrNameSnakeCase: true name: $1 pattern: trino.execution<>(running_queries|queued_queries) type: GAUGE - name: failed_queries pattern: trino.execution<>FailedQueries\.TotalCount type: COUNTER - name: active_node_count pattern: trino.metadata<>ActiveNodeCount type: GAUGE - name: running_queries pattern: trino.execution<>RunningQueries type: GAUGE - name: internal_failures pattern: trino.execution<>InternalFailures.[OneMinute|FiveMinutes].[Rate|Count] type: GAUGE - name: external_failures pattern: trino.execution<>ExternalFailures.[OneMinute|FiveMinutes].[Rate|Count] type: GAUGE - name: input_data_size pattern: trino.execution<>InputDataSize.[OneMinute|FiveMinutes].Count type: GAUGE