Skip to content

Commit 69e8448

Browse files
authored
Add advanced config doc (#93)
1 parent 5043ae2 commit 69e8448

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed

docs/docs.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,8 @@
156156
"pages": [
157157
"geneva/udfs/index",
158158
"geneva/udfs/blobs",
159-
"geneva/udfs/error_handling"
159+
"geneva/udfs/error_handling",
160+
"geneva/udfs/advanced-configuration"
160161
]
161162
},
162163
{
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
title: Advanced Configuration
3+
sidebarTitle: Advanced Configuration
4+
description: Learn about environment variables for configuring Geneva behavior.
5+
icon: flask-gear
6+
---
7+
8+
Geneva supports various environment variables that start with `GENEVA_` to configure advanced behavior and fine-tune system settings.
9+
10+
<Tip>
11+
All `GENEVA_` environment variables are optional and have sensible defaults. Only set them if you need to override the default behavior.
12+
</Tip>
13+
14+
## Admission Control
15+
16+
Admission control validates cluster resources before starting jobs to prevent failures due to insufficient resources.
17+
18+
| Variable | Default | Description |
19+
|----------|---------|-------------|
20+
| `GENEVA_ADMISSION__CHECK` | `true` | Enable admission control checks. Set to `false` to skip all checks. |
21+
| `GENEVA_ADMISSION__STRICT` | `true` | If `true`, reject the job with `ResourcesUnavailableError` when resources are insufficient. If `false`, log a warning but allow the job to proceed. |
22+
| `GENEVA_ADMISSION__TIMEOUT` | `3.0` | Timeout in seconds for Ray API calls during admission control checks. Prevents hanging when the cluster is in a bad state. |
23+
24+
## Commit and Retry Configuration
25+
26+
Control retry behavior for commits and version conflicts.
27+
28+
| Variable | Default | Description |
29+
|----------|---------|-------------|
30+
| `GENEVA_COMMIT_MAX_RETRIES` | `12` | Maximum number of retries for commit operations. With exponential backoff (1s, 2s, 4s, 8s, 16s, then 16s capped), 12 retries gives ~2.5 minutes total wait time before giving up. |
31+
| `GENEVA_VERSION_CONFLICT_MAX_RETRIES` | `10` | Maximum number of retries for version conflicts during commit. Version conflicts occur when concurrent backfills commit to the same fragments. Prevents infinite loops when concurrent commits keep conflicting. |
32+
| `GENEVA_WRITER_STALL_IDLE_ROUNDS` | `6` | Number of idle rounds (5s each) before considering a writer stalled during drain. With many concurrent backfills, resource contention can slow writers without them being truly stalled. |
33+
34+
## Lance Retry Configuration
35+
36+
This section configures retry logic for Lance I/O operations. Retries occur on `OSError`, `ValueError`, and `RuntimeError("Too many concurrent writers")` exceptions, and are retried with exponential backoff with jitter.
37+
38+
| Variable | Default | Description |
39+
|----------|---------|-------------|
40+
| `GENEVA_RETRY_LANCE_ATTEMPTS` | `7` | Maximum number of retry attempts for Lance I/O operations. |
41+
| `GENEVA_RETRY_LANCE_INITIAL_SECS` | `0.5` | Initial wait time in seconds for exponential backoff when retrying Lance I/O operations. |
42+
| `GENEVA_RETRY_LANCE_MAX_SECS` | `120.0` | Maximum wait time in seconds for exponential backoff when retrying Lance I/O operations. |
43+
44+
## Other Configuration
45+
46+
| Variable | Default | Description |
47+
|----------|---------|-------------|
48+
| `GENEVA_RAY_INIT_MAX_RETRIES` | `5` | Maximum number of retry attempts for `ray.init()` connection failures. Useful when connecting to Ray clusters that may be temporarily unavailable. |
49+
| `GENEVA_K8S_AUTH_MAX_RETRIES` | `3` | Maximum number of retries for Kubernetes authentication operations. Must be at least 1. |
50+
| `GENEVA_CONFIG_DIR` | `./.config` | Directory path where Geneva looks for configuration files (`.yaml`, `.json`, `.toml`). Can be an absolute or relative path. |

0 commit comments

Comments
 (0)