Open table formats (Apache Iceberg, Delta Lake, Apache Hudi) — metadata layer over Parquet/ORC files on S3/GCS/ADLS that adds ACID transactions, snapshot isolation, time-travel, schema/partition evolution, efficient updates. Lakehouse architecture: cheap object storage + warehouse semantics. Catalogs: REST, Polaris, Nessie, Glue, Hive Metastore, Unity Catalog. Scenarios: atomic write commit (parquet + manifest + CAS), concurrent writers with optimistic retry, time-travel query (timestamp → snapshot id), MoR vs CoW trade-off with compaction, schema/partition evolution without rewrite, full read path with manifest pruning, maintenance (compaction, snapshot expiration, orphan cleanup). Includes ADRs on Iceberg vs Delta vs Hudi selection and CoW vs MoR write-vs-read trade-off.
Table format управляет snapshots, schema/partition evolution, concurrency and file lifecycle. Он не является object store, query engine или magical ACID layer for arbitrary external systems.
| Компонент | Ответственность |
|---|---|
| Writer A | Создаёт immutable data/delete/log files from one base snapshot. |
| Concurrent Writer B | Может конфликтовать и обязан validate/retry by protocol. |
| Catalog or Commit Coordinator | Atomically publishes current table metadata/version under supported contract. |
| Object Storage Files | Хранит immutable data and metadata objects; не определяет table semantics alone. |
| Iceberg Snapshots and Manifests | Tracks file sets, metrics, schemas and partition specs. |
| Delta Transaction Log | Ordered actions and checkpoints reconstruct MVCC table versions. |
| Hudi Timeline and File Groups | Tracks instants plus CoW/MoR base/log file lifecycle. |
| Compatible Query Engines | Read a pinned snapshot/version using implemented protocol features. |
| Compaction and Expiration | Rewrites small/log files and safely removes unreachable history after gates. |
Writer A creates data files and metadata/manifests from base snapshot S, then atomically swaps the current metadata pointer through a catalog/filesystem contract. Readers pinned to S stay consistent.
Проверяемый исход: Uncommitted/orphan files are not visible table state and are cleaned only by safe maintenance.
Two writers read version v and attempt a write. Delta protocol/implementation checks conflicts and serializes log versions; a conflicting transaction re-reads and retries rather than overwriting v+1.
Проверяемый исход: Concurrent success is allowed only when the protocol says operations do not conflict.
CoW rewrites affected base-file groups for updates; MoR appends changes to log/base files and later compacts, shifting cost between write and read.
Проверяемый исход: Choice is based on measured update/read/compaction needs, not a claim one mode is always faster.
Old snapshots/log versions can serve readers, rollback, audit or streaming jobs. Maintenance proves they are outside retention and no supported reader references them before deleting files.
Проверяемый исход: VACUUM/expiration never runs from an invented rewrite speed or merely because a new commit exists.
Числа выше — учебные inputs или размерностные формулы. Их нельзя выдавать за benchmark или SLA конкретного продукта.
Диаграмма показывает причинные границы и recovery contracts, а не скрытую реализацию конкретного managed-сервиса. Любая stronger guarantee действует только в явно названной transaction/checkpoint/acknowledgement boundary.
Введите числа или выберите пресет