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
docs: clarify spill config after databend#19088 (#3026)
Update query-config spill section to match databend#19088 (reverted structured spill config): default remote spill prefix, local disk spill with fallback, and optional dedicated spill backend.
Copy file name to clipboardExpand all lines: docs/en/guides/10-deploy/04-references/02-node-config/02-query-config.md
+36-47Lines changed: 36 additions & 47 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -272,39 +272,53 @@ The following is a list of the parameters available within the [cache.disk] sect
272
272
273
273
## [spill] Section
274
274
275
-
Databend supports spill storage to handle large queries that exceed available memory. The unified configuration format provides consistent patterns across all storage types with auto-detection capabilities.
275
+
Databend can spill intermediate data to reduce memory pressure.
276
276
277
-
### [spill.storage] Section
277
+
### Default Spill Storage Backend (No Extra Config)
| data_path | Specifies the directory path where spilled data will be stored on the local filesystem. |
288
-
| reserved_space_percentage | Defines the percentage of disk space that will be reserved and not used for spill. This prevents the spill operations from completely filling the disk and ensures system stability. Default: `30`. |
289
-
| max_bytes | Sets the maximum number of bytes allowed for spilling data to the local filesystem. When this limit is reached, new spill operations will automatically fallback to the main data storage (remote storage), ensuring queries continue without interruption. Default: unlimited. |
286
+
- Writes spill files to local disk first.
287
+
- Falls back to the spill storage backend (default or [spill.storage]) when local quota is exhausted or disk is too full.
| spill_local_disk_path | Specifies the directory path where spilled data will be stored on the local disk. Leave it empty to disable local disk spill. |
292
+
| spill_local_disk_reserved_space_percentage | Defines the percentage of disk space that will be reserved and not used for spill. This prevents spill operations from completely filling the disk and ensures system stability. Default: `10`. |
293
+
| spill_local_disk_max_bytes | Sets the maximum number of bytes allowed for spilling data to the local disk. When the local spill quota is exhausted, new spill operations automatically fall back to the spill storage backend (default or [spill.storage]), ensuring queries continue without interruption. Default: unlimited. |
292
294
293
-
```toml
294
-
[spill.storage]
295
-
type = "fs"
295
+
**Example (Local Disk Spill):**
296
296
297
-
[spill.storage.fs]
298
-
data_path = "/fast-ssd/spill"
299
-
reserved_space_percentage = 25.0
300
-
max_bytes = 107374182400# 100GB
297
+
```toml
298
+
[spill]
299
+
spill_local_disk_path = "/data/spill"
300
+
spill_local_disk_reserved_space_percentage = 10.0
301
+
spill_local_disk_max_bytes = 53687091200
301
302
```
302
303
304
+
### Dedicated Spill Storage Backend (Separate From Data)
305
+
306
+
- Configure via [spill.storage].
307
+
- Affects spill files only (including local-disk fallback target); does not change where table data is stored.
308
+
- Still uses the `_query_spill/` prefix under the configured `root`.
For S3-based spill storage, use the same parameters as defined in the [storage.s3 Section](#storages3-section).
316
+
Same parameters as [storage.s3 Section](#storages3-section).
317
+
318
+
- Prefix: `_query_spill/` (under `root`).
319
+
- AWS S3: spill objects use `STANDARD` storage class.
306
320
307
-
**Example (S3 Storage):**
321
+
**Example (Dedicated S3 Spill Backend):**
308
322
309
323
```toml
310
324
[spill.storage]
@@ -315,30 +329,5 @@ bucket = "my-spill-bucket"
315
329
region = "us-west-2"
316
330
access_key_id = "your-access-key"
317
331
secret_access_key = "your-secret-key"
332
+
root = "spill/"
318
333
```
319
-
320
-
<DetailsWrap>
321
-
<details>
322
-
<summary>Legacy Format (Backward Compatible)</summary>
323
-
324
-
:::note
325
-
The legacy format is maintained for backward compatibility. If your Databend version is older than v1.2.901, use this format. New deployments should use the unified format above.
| spill_local_disk_path | Specifies the directory path where spilled data will be stored on the local disk. |
331
-
| spill_local_disk_reserved_space_percentage | Defines the percentage of disk space that will be reserved and not used for spill. This prevents the spill operations from completely filling the disk and ensures system stability. Default: `30`. |
332
-
| spill_local_disk_max_bytes | Sets the maximum number of bytes allowed for spilling data to the local disk. When this limit is reached, new spill operations will automatically fallback to the main data storage (remote storage), ensuring queries continue without interruption. Default: unlimited. |
0 commit comments