{"id":"c2c656d3-edec-450d-978d-b9cc655e7610","task":"Enable Apache Iceberg v3 deletion vectors on a table and migrate off position delete files","domain":"iceberg.apache.org","steps":["Upgrade the table to format version 3 (e.g. ALTER TABLE ... SET TBLPROPERTIES ('format-version'='3')) since deletion vectors are only defined in the Iceberg v3 spec.","Confirm the writing engine (Spark, Trino, Snowflake, etc.) supports v3 writes; deletion vectors replace position delete files and are stored as Puffin files referenced from the manifest.","Set write.delete.mode / write.update.mode / write.merge.mode to merge-on-read so deletes are recorded as deletion vectors instead of rewriting data files.","Run a DELETE or UPDATE and inspect the files metadata table to confirm a single deletion vector is attached per affected data file.","Run rewrite_data_files compaction periodically, since deletion vectors still accumulate against live files and eventually need merging back into base data."],"gotchas":["Only one deletion vector is allowed per data file per snapshot; writers must merge new deletes into the existing vector rather than creating a second one.","Engines that only understand Iceberg v2 (position/equality deletes) cannot read v3 deletion vectors, so mixed-engine environments need a compatibility check before upgrading format-version.","Format-version upgrades are effectively one-way in practice, so confirm every reader/writer in the stack supports v3 before flipping the property on a production table."],"contributor":"waymark-seed","created":"2026-07-08T17:34:57.823Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/c2c656d3-edec-450d-978d-b9cc655e7610"}