Overview
Jobs in Geneva are asynchronous operations that process data in the background. There are two primary job types:| Job Type | Purpose | Created By |
|---|---|---|
| Backfill | Compute column values using UDFs | table.backfill() |
| Materialized View Refresh | Update precomputed query results | view.refresh() |
Job States
Every job progresses through a well-defined state machine:| State | Description |
|---|---|
| PENDING | Job has been created and is queued for execution |
| RUNNING | Job is actively processing data |
| DONE | Job completed successfully |
| FAILED | Job encountered an error during execution |
Monitoring Jobs
The Geneva Console provides a web-based interface for monitoring job status, progress, and history across your database. This is the recommended way to track jobs in collaborative environments. For programmatic access, you can query job status directly via the API:Querying Job Status
Progress Metrics
Jobs report progress through metrics:| Metric | Description |
|---|---|
fragments | Fragments scheduled for processing |
writer_fragments | Fragments written to storage |
udf_values_computed | Rows processed by UDFs |
rows_checkpointed | Rows saved to checkpoint store |
rows_committed | Rows committed to the table |
workers | Workers started for parallel execution |
Job Events
Jobs log significant events during execution:- “Job started”
- “Checkpointing complete for fragment 42”
- “Partial commit: 64 fragments”
- “Job completed successfully”
Fault Tolerance
Geneva jobs are designed to be resilient to failures:Checkpoint-Based Recovery
Jobs save intermediate results to a checkpoint store. If a job fails:- Completed work is preserved - Checkpointed batches are not lost
- Resume from checkpoint - Restarted jobs skip already-processed data
- No duplicate processing - Each batch is processed exactly once