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: examples/grafana/METRICS.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,6 +58,10 @@ These metrics are reported by Iceberg clients when they perform operations on ta
58
58
|`iceberg_commit_added_equality_deletes_total`| Counter | catalog, namespace, table, operation | Total number of equality deletes added in commits |
59
59
|`iceberg_commit_total_files_size_bytes`| Counter | catalog, namespace, table, operation | Total size in bytes of files involved in commits |
60
60
|`iceberg_commit_duration_seconds`| Histogram | catalog, namespace, table, operation | Duration of commit operations in seconds |
61
+
|`iceberg_commit_retries_total`| Counter | catalog, namespace, table | Server-side retries after a commit CAS conflict (`CommitFailedException`) in the REST catalog commit loop; tune `commitRetry` in `.ice-rest-catalog.yaml` if this grows under parallel writers |
62
+
|`iceberg_commit_lock_acquire_seconds`| Histogram | catalog | Time to acquire the etcd per-table commit lock (`commitLock` in `.ice-rest-catalog.yaml`; etcd backend only) |
63
+
|`iceberg_commit_lock_held_seconds`| Histogram | catalog | Time the etcd commit lock was held during a table commit |
64
+
|`iceberg_commit_lock_acquire_timeouts_total`| Counter | catalog | Acquire attempts that exceeded `commitLock.acquireTimeoutMs` (HTTP 503 to clients) |
Copy file name to clipboardExpand all lines: ice-rest-catalog/README.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,19 @@ That's it.
11
11
12
12
Examples of `.ice-rest-catalog.yaml` (as well as Kubernetes deployment manifests) can be found [here](../examples/).
13
13
14
+
## Parallel writers (`commitLock`)
15
+
16
+
Many concurrent commits to the **same table** can cause repeated `CommitFailedException` (optimistic concurrency). For the **etcd** metastore you can serialize commits per table using etcd’s lock API:
17
+
18
+
```yaml
19
+
commitLock:
20
+
enabled: true
21
+
leaseTtlSeconds: 30
22
+
acquireTimeoutMs: 30000
23
+
```
24
+
25
+
If `enabled` is true but the catalog backend is not etcd, the lock is ignored (warning in logs). When lock acquisition exceeds `acquireTimeoutMs`, the server responds with HTTP **503** so clients can retry.
26
+
14
27
## Documentation
15
28
16
29
- [Architecture](../docs/architecture.md) -- components, design principles, HA, backup/recovery
Copy file name to clipboardExpand all lines: ice-rest-catalog/src/main/java/com/altinity/ice/rest/catalog/internal/config/Config.java
+10Lines changed: 10 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -56,6 +56,12 @@ public record Config(
56
56
"Maintenance schedule in https://github.com/shyiko/skedule?tab=readme-ov-file#format format, e.g. \"every day 00:00\". Empty schedule disables automatic maintenance (default)")
0 commit comments