You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: deploy/helm/trino-operator/crds/crds.yaml
+12-6Lines changed: 12 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -118,7 +118,7 @@ spec:
118
118
nullable: true
119
119
type: boolean
120
120
exchangeManager:
121
-
description: Exchange manager configuration for spooling intermediate data during fault tolerant execution. Required when using `TASK` retry policy, optional for `QUERY` retry policy.
121
+
description: Exchange manager configuration for spooling intermediate data during fault tolerant execution. Required when using `Task` retry policy, optional for `Query` retry policy.
122
122
nullable: true
123
123
oneOf:
124
124
- required:
@@ -128,6 +128,12 @@ spec:
128
128
- required:
129
129
- local
130
130
properties:
131
+
configOverrides:
132
+
additionalProperties:
133
+
type: string
134
+
default: {}
135
+
description: The `configOverrides` allow overriding arbitrary exchange manager properties.
136
+
type: object
131
137
hdfs:
132
138
description: HDFS-based exchange manager.
133
139
properties:
@@ -344,7 +350,7 @@ spec:
344
350
type: integer
345
351
type: object
346
352
queryRetryAttempts:
347
-
description: Maximum number of times Trino may attempt to retry a query before declaring it failed. Only applies to `QUERY` retry policy.
353
+
description: Maximum number of times Trino may attempt to retry a query before declaring it failed. Only applies to `Query` retry policy.
348
354
format: uint32
349
355
minimum: 0.0
350
356
nullable: true
@@ -363,13 +369,13 @@ spec:
363
369
nullable: true
364
370
type: string
365
371
retryPolicy:
366
-
description: The retry policy for fault tolerant execution. `QUERY` retries entire queries, `TASK` retries individual tasks. When set to `TASK`, an exchange manager must be configured.
372
+
description: The retry policy for fault tolerant execution. `Query` retries entire queries, `Task` retries individual tasks. When set to `Task`, an exchange manager must be configured.
367
373
enum:
368
-
- query
369
-
- task
374
+
- Query
375
+
- Task
370
376
type: string
371
377
taskRetryAttemptsPerTask:
372
-
description: Maximum number of times Trino may attempt to retry a single task before declaring the query failed. Only applies to `TASK` retry policy.
378
+
description: Maximum number of times Trino may attempt to retry a single task before declaring the query failed. Only applies to `Task` retry policy.
Copy file name to clipboardExpand all lines: docs/modules/trino/pages/usage-guide/fault-tolerant-execution.adoc
+20-94Lines changed: 20 additions & 94 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,20 +23,20 @@ To enable the feature, you need to configure it in your `TrinoCluster` resource
23
23
spec:
24
24
clusterConfig:
25
25
faultTolerantExecution:
26
-
retryPolicy: QUERY # <1>
26
+
retryPolicy: Query # <1>
27
27
queryRetryAttempts: 3 # <2>
28
28
----
29
-
<1> The retry policy - either `QUERY` or `TASK`
30
-
<2> Maximum number of times to retry a query (QUERY policy only)
29
+
<1> The retry policy - either `Query` or `Task`
30
+
<2> Maximum number of times to retry a query (Query policy only)
31
31
32
32
== Retry policies
33
33
34
34
The `retryPolicy` configuration property designates whether Trino retries entire queries or a query's individual tasks in the event of failure.
35
35
36
-
=== QUERY retry policy
36
+
=== Query retry policy
37
37
38
-
A `QUERY` retry policy instructs Trino to automatically retry a query in the event of an error occurring on a worker node.
39
-
A `QUERY` retry policy is recommended when the majority of the Trino cluster's workload consists of many small queries.
38
+
A `Query` retry policy instructs Trino to automatically retry a query in the event of an error occurring on a worker node.
39
+
A `Query` retry policy is recommended when the majority of the Trino cluster's workload consists of many small queries.
40
40
41
41
By default, Trino does not implement fault tolerance for queries whose result set exceeds 32MB in size.
42
42
This limit can be increased by modifying the `exchangeDeduplicationBufferSize` configuration property to be greater than the default value of `32MB`, but this results in higher memory usage on the coordinator.
@@ -47,28 +47,28 @@ This limit can be increased by modifying the `exchangeDeduplicationBufferSize` c
47
47
spec:
48
48
clusterConfig:
49
49
faultTolerantExecution:
50
-
retryPolicy: QUERY
50
+
retryPolicy: Query
51
51
queryRetryAttempts: 3
52
52
exchangeDeduplicationBufferSize: 64MB # Increased from default 32MB
53
53
...
54
54
----
55
55
56
-
=== TASK retry policy
56
+
=== Task retry policy
57
57
58
-
A `TASK` retry policy instructs Trino to retry individual query tasks in the event of failure.
58
+
A `Task` retry policy instructs Trino to retry individual query tasks in the event of failure.
59
59
You **must** configure an exchange manager to use the task retry policy.
60
60
This policy is recommended when executing large batch queries, as the cluster can more efficiently retry smaller tasks within the query rather than retry the whole query.
61
61
62
-
IMPORTANT: A `TASK` retry policy is best suited for long-running queries, but this policy can result in higher latency for short-running queries executed in high volume.
63
-
As a best practice, it is recommended to run a dedicated cluster with a `TASK` retry policy for large batch queries, separate from another cluster that handles short queries.
62
+
IMPORTANT: A `Task` retry policy is best suited for long-running queries, but this policy can result in higher latency for short-running queries executed in high volume.
63
+
As a best practice, it is recommended to run a dedicated cluster with a `Task` retry policy for large batch queries, separate from another cluster that handles short queries.
64
64
There are tools that can help you achieve this by automatically routing queries based on certain criteria (such as query estimates or user) to different Trino clusters. Notable mentions are link:https://github.com/stackabletech/trino-lb[trino-lb {external-link-icon}^] and link:https://github.com/trinodb/trino-gateway[trino-gateway {external-link-icon}^].
65
65
66
66
[source,yaml]
67
67
----
68
68
spec:
69
69
clusterConfig:
70
70
faultTolerantExecution:
71
-
retryPolicy: TASK
71
+
retryPolicy: Task
72
72
taskRetryAttemptsPerTask: 4
73
73
exchangeManager:
74
74
s3:
@@ -82,20 +82,20 @@ spec:
82
82
== Exchange manager
83
83
84
84
Exchange spooling is responsible for storing and managing spooled data for fault-tolerant execution.
85
-
You can configure a filesystem-based exchange manager that stores spooled data in a specified location, such as AWS S3 and S3-compatible systems, Azure Blob Storage or HDFS.
85
+
You can configure a filesystem-based exchange manager that stores spooled data in a specified location, such as AWS S3 and S3-compatible systems, HDFS, or local filesystem.
86
86
87
-
NOTE: An exchange manager is required when using the `TASK` retry policy and optional for the `QUERY` retry policy.
87
+
NOTE: An exchange manager is required when using the `Task` retry policy and optional for the `Query` retry policy.
88
88
89
89
=== S3-compatible storage
90
90
91
-
You can use S3-compatible storage systems for exchange spooling, including AWS S3, MinIO, and Google Cloud Storage.
91
+
You can use S3-compatible storage systems for exchange spooling, including AWS S3and MinIO.
92
92
93
93
[source,yaml]
94
94
----
95
95
spec:
96
96
clusterConfig:
97
97
faultTolerantExecution:
98
-
retryPolicy: TASK
98
+
retryPolicy: Task
99
99
exchangeManager:
100
100
s3:
101
101
baseDirectories: # <1>
@@ -122,81 +122,7 @@ spec:
122
122
<1> Multiple S3 buckets can be specified to distribute I/O load
123
123
<2> S3 connection defined as a reference to an xref:concepts:s3.adoc[S3Connection] resource
124
124
125
-
For Google Cloud Storage, you can use GCS buckets with S3 compatibility:
126
-
127
-
[source,yaml]
128
-
----
129
-
spec:
130
-
clusterConfig:
131
-
faultTolerantExecution:
132
-
exchangeManager:
133
-
s3:
134
-
baseDirectories:
135
-
- "gs://my-gcs-bucket/trino-spooling"
136
-
connection:
137
-
inline:
138
-
host: storage.googleapis.com
139
-
port: 443
140
-
accessStyle: Path
141
-
credentials:
142
-
secretClass: gcs-hmac-credentials
143
-
tls:
144
-
verification:
145
-
server:
146
-
caCert:
147
-
webPki: {}
148
-
gcsServiceAccountKey:
149
-
secretClass: "gcs-service-account-secret-class"
150
-
key: "service-account.json"
151
-
----
152
-
153
-
=== Azure Blob Storage
154
-
155
-
You can configure Azure Blob Storage as the exchange spooling destination:
<1> SecretClass providing the Azure connection string
171
-
<2> Key name in the Secret that contains the connection string (defaults to `connectionString`)
172
-
173
-
The Azure connection string should be provided via a SecretClass that refers to a Kubernetes Secret containing the Azure storage account connection string, like this:
For storage systems like Google Cloud Storage or Azure Blob Storage, you can use the S3-compatible configuration with `configOverrides` to provide the necessary exchange manager properties.
200
126
201
127
=== HDFS storage
202
128
@@ -207,7 +133,7 @@ You can configure HDFS as the exchange spooling destination:
207
133
spec:
208
134
clusterConfig:
209
135
faultTolerantExecution:
210
-
retryPolicy: TASK
136
+
retryPolicy: Task
211
137
exchangeManager:
212
138
hdfs:
213
139
baseDirectories:
@@ -229,7 +155,7 @@ A local directory can only be used for exchange in a distributed cluster if the
229
155
spec:
230
156
clusterConfig:
231
157
faultTolerantExecution:
232
-
retryPolicy: TASK
158
+
retryPolicy: Task
233
159
exchangeManager:
234
160
local:
235
161
baseDirectories:
@@ -286,7 +212,7 @@ When using connectors that do not explicitly support fault-tolerant execution, y
286
212
287
213
== Example
288
214
289
-
Here's an example of a Trino cluster with fault-tolerant execution enabled using the `TASK` retry policy and MinIO backed S3 as the exchange manager:
215
+
Here's an example of a Trino cluster with fault-tolerant execution enabled using the `Task` retry policy and MinIO backed S3 as the exchange manager:
0 commit comments