Delta Lake commits survive ambiguous S3 responses
Artie no longer deletes data files referenced by a Delta commit that landed despite a failed response, and checkpoints are named after the version whose state they actually hold.
Read more: Delta Lake commits survive ambiguous S3 responses
When the write of a Delta commit to S3 failed ambiguously, for example a lost response or a retry that found Artie's own commit already in place, Artie treated the commit as failed and deleted the Parquet files it had uploaded. If the commit had in fact landed, readers then hit missing files. Separately, when two writes raced, a checkpoint could be named after the newer table version while holding the older file list, so readers starting from that checkpoint missed the newer commit's files.
Artie now reads the commit back after a failed write. If the stored bytes are its own, the commit counts as landed; if the outcome cannot be confirmed, the uploaded files are kept rather than deleted. Checkpoints are now written with the version captured together with their state, so a checkpoint's name always matches its contents.
This is for teams using Delta Lake destinations on S3.
Why this matters
- A landed commit never loses the files it references
- Checkpoints always point readers at the right set of files
- An orphaned file is the worst case, not missing data