Snapshot-based architecture represents table state through versioned metadata and data references. In Apache Iceberg, each snapshot records a consistent table state, allowing engines to read historical versions without maintaining separate data copies. This supports auditing, debugging, recovery, and concurrent operations, while retention policies define how far back history remains available. section 1.6 section 2.4
The architecture connects snapshots to several operational capabilities:
- Uses ACID transactions to keep concurrent reads and writes isolated and consistent. section 2.4
- Supports time travel for auditing changes, diagnosing data problems, and recovering earlier table states. section 1.6 section 2.4
- Combines partition evolution and hidden partitioning so physical layout can change without rewriting existing data or exposing partition columns. section 1.6 section 2.4
- Provides branches and tags for isolated experiments, staged changes, and controlled promotion of table states. section 2.4
Retention and storage cleanup
Automate expire_snapshots to remove obsolete snapshots and unreferenced files while preserving active states. Use remove_orphan_files separately for leftovers from failed or uncommitted writes. section 11.2.4
