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
Background compaction now publishes a merged file in a single conditional
catalog transaction: the files it replaces, the replacement, and the delete
markers it applied all commit together, or none of them do. A compaction whose
publication fails leaves the table exactly as it was and fully queryable,
instead of leaving it with no visible rows.
A DELETE that commits while a compaction or a delete-marker rewrite is in
progress is no longer undone by it. The compaction is refused, discards its
output, and redoes itself against the newer state.
Two compactors working on the same files — a background sweep and a wadjet compact, or two workers — can no longer both publish. The losing one
is refused and cleans up after itself, so a table can no longer end up holding
two copies of every row.
A delete-marker GC rewrite now applies all of a file's delete markers or none.
Markers that previously survived a rewrite pointed at a file that no longer
existed, and the deleted rows they named came back permanently on the next GC
sweep.
Compaction no longer deletes an object that another table in the same catalog
still references. Object cleanup checks every live table's manifest first, and
keeps any object it cannot prove is unreferenced.
A table load that registers a path currently being retired by the deferred
cleanup queue (AddFiles, used by harness loaders and the Iceberg catalog
integration) now fails with a retryable error instead of silently losing the
object's bytes.
wadjet compact reports a run that lost a publication race to a concurrent compactor (and whether it then replanned) instead of printing the summary of an uneventful run; the CLI prints every line the run's summary carries.