+1 (non-binding) to deprecate equality deletes in v4. Thank you, Huaxin!

On Thu, Aug 13, 2026 at 10:36 AM Ryan Blue <[email protected]> wrote:

> +1 (binding) to deprecate equality deletes. Thanks, Huaxin!
>
> Ryan
>
> On Wed, Aug 12, 2026 at 8:16 PM huaxin gao <[email protected]> wrote:
>
>> Hi Manu,
>>
>>
>> No rewrite of the existing manifests is needed. The V4 root manifest
>> references the existing V2/V3 manifests as-is (data manifests and the older
>> delete manifests), so upgrade stays metadata-only regardless of table size;
>> only the new top-level V4 metadata is written. The equality deletes in
>> those carried-over delete manifests are still applied on read (with 2-phase
>> planning) until they age off or are converted to DVs by a separate
>> maintenance action.
>>
>>
>> Thanks,
>>
>> Huaxin
>>
>> On Thu, Aug 13, 2026 at 10:18 AM Manu Zhang <[email protected]>
>> wrote:
>>
>>> Hi Huaxin,
>>>
>>> To clarify the third point: will upgrading a V2/V3 table to a V4 table
>>> require a manifest rewrite? If so, how will that process be handled?
>>>
>>> Thanks,
>>> Manu
>>>
>>>
>>> On Thu, Aug 13, 2026 at 10:07 AM huaxin gao <[email protected]>
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> Following the discussion thread "[DISCUSS] Deprecate Equality Deletes in
>>>> Iceberg V4" [1], I'd like to call a vote on the following proposal for
>>>> the
>>>> V4 table spec.
>>>>
>>>> Proposal
>>>> --------
>>>> 1. Writing new equality deletes is forbidden for V4 tables: the V4
>>>> metadata
>>>>    will not define equality deletes as an allowed entry type.
>>>>
>>>> 2. Reading equality deletes remains supported in the reference
>>>>    implementation for backward compatibility, both for existing V2/V3
>>>>    tables and for equality deletes carried over into upgraded V4 tables.
>>>>
>>>> 3. Upgrading a V2/V3 table to V4 is metadata-only (no synchronous
>>>> rewrite
>>>>    of data or delete files). Existing equality deletes remain in
>>>> carried-
>>>>    over V2/V3 delete manifests; converting them to deletion vectors is a
>>>>    separate, optional maintenance action.
>>>>
>>>> Rationale
>>>> ---------
>>>> Equality deletes impose an asymmetric cost paid on every read,
>>>> complicate
>>>> the format, and block features such as CDC, row lineage, and incremental
>>>> index/materialized-view maintenance. Deletion vectors make deletion a
>>>> flat,
>>>> one-time cost, and the Flink ConvertEqualityDeletes work demonstrates a
>>>> viable replacement path, so we do not need the full replacement
>>>> completed
>>>> before forbidding new equality deletes in V4.
>>>>
>>>> The vote will be open for at least 72 hours.
>>>>
>>>> [ ] +1 Forbid writing equality deletes in V4
>>>> [ ] +0
>>>> [ ] -1 Do not forbid (please explain)
>>>>
>>>> [1] https://lists.apache.org/thread/ks01jpv40qjlvz4yop5tlqv4x5oxbwy6
>>>>
>>>> Thanks,
>>>> Huaxin
>>>>
>>>

Reply via email to