Overview
Jobs in Geneva are asynchronous operations that process data in the background. There are two primary job types:
Both job types share the same lifecycle states and monitoring capabilities.
Job States
Every job progresses through a well-defined state machine: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: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
_ckp/ subdirectory inside the table’s storage location. At scale, you can redirect checkpoints to a separate bucket to avoid IOPS contention. See Checkpoint Storage configuration for details.
Resuming Failed Jobs
To resume a failed job, simply re-run the same backfill or refresh command. The job will automatically detect existing checkpoints, skip already-processed fragments, and continue from where it left off.API Reference
- Table —
backfill(),backfill_async(),refresh(),JobFuture - Connection —
get_job(),list_jobs()