You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@polaris.apache.org by huaxin gao <hu...@gmail.com> on 2026/06/16 02:05:27 UTC
[Discuss] Handler-level idempotency for createTable (#4659)
Hi all,
Flagging a PR <https://github.com/apache/polaris/pull/4659> that implements
handler-level idempotency, following up on
the earlier idempotency design discussion on this list. Here is the design
thread <https://lists.apache.org/thread/4c8xtj85hvj1w1mxtknj0gk6t09q7mqj>.
Summary:
- Implements the "optimistic commit" model (Model B): the operation runs
first, and the outcome is recorded after it reaches a terminal status
under an Idempotency-Key (UUIDv7) - no reservation/lease and no stored
response body. Replays are rebuilt from authoritative catalog state.
- Scoped to createTableDirect as the first operation; the framework
(store SPI, in-memory + relational-JDBC backends, CDI wiring, relational
schema v5, 422-on-binding-mismatch) is general.
- Off by default: polaris.idempotency.enabled=false.
Planned follow-ups (kept out to stay focused):
- Background purge of expired records (the purgeExpired SPI primitive is
already in place).
- Extending coverage to other write operations incrementally.
Reviews/feedback welcome.
Thanks,
Huaxin
Re: [Discuss] Handler-level idempotency for createTable (#4659)
Posted by Dmitri Bourlatchkov <di...@apache.org>.
Hi All,
There were some additional comments from Robert on [4659]. I believe they
have been addressed.
I propose the new merge date be June 19 (again, if no new concerns
are raised).
[4659] https://github.com/apache/polaris/pull/4659
Cheers,
Dmitri.
On Tue, Jun 16, 2026 at 10:44 AM Dmitri Bourlatchkov <di...@apache.org>
wrote:
> Hi Huaxin,
>
> The PR looks good to me. If there are no concerns from other reviewers (or
> requests for more review time), I'm going to merge PR 4659 tomorrow, June
> 17.
>
> Cheers,
> Dmitri.
>
> On Mon, Jun 15, 2026 at 10:05 PM huaxin gao <hu...@gmail.com>
> wrote:
>
>> Hi all,
>>
>> Flagging a PR <https://github.com/apache/polaris/pull/4659> that
>> implements
>> handler-level idempotency, following up on
>> the earlier idempotency design discussion on this list. Here is the design
>> thread <https://lists.apache.org/thread/4c8xtj85hvj1w1mxtknj0gk6t09q7mqj
>> >.
>>
>> Summary:
>> - Implements the "optimistic commit" model (Model B): the operation runs
>> first, and the outcome is recorded after it reaches a terminal status
>> under an Idempotency-Key (UUIDv7) - no reservation/lease and no stored
>> response body. Replays are rebuilt from authoritative catalog state.
>> - Scoped to createTableDirect as the first operation; the framework
>> (store SPI, in-memory + relational-JDBC backends, CDI wiring, relational
>> schema v5, 422-on-binding-mismatch) is general.
>> - Off by default: polaris.idempotency.enabled=false.
>>
>> Planned follow-ups (kept out to stay focused):
>> - Background purge of expired records (the purgeExpired SPI primitive is
>> already in place).
>> - Extending coverage to other write operations incrementally.
>>
>> Reviews/feedback welcome.
>>
>> Thanks,
>> Huaxin
>>
>
Re: [Discuss] Handler-level idempotency for createTable (#4659)
Posted by Dmitri Bourlatchkov <di...@apache.org>.
Hi Huaxin,
The PR looks good to me. If there are no concerns from other reviewers (or
requests for more review time), I'm going to merge PR 4659 tomorrow, June
17.
Cheers,
Dmitri.
On Mon, Jun 15, 2026 at 10:05 PM huaxin gao <hu...@gmail.com> wrote:
> Hi all,
>
> Flagging a PR <https://github.com/apache/polaris/pull/4659> that
> implements
> handler-level idempotency, following up on
> the earlier idempotency design discussion on this list. Here is the design
> thread <https://lists.apache.org/thread/4c8xtj85hvj1w1mxtknj0gk6t09q7mqj>.
>
> Summary:
> - Implements the "optimistic commit" model (Model B): the operation runs
> first, and the outcome is recorded after it reaches a terminal status
> under an Idempotency-Key (UUIDv7) - no reservation/lease and no stored
> response body. Replays are rebuilt from authoritative catalog state.
> - Scoped to createTableDirect as the first operation; the framework
> (store SPI, in-memory + relational-JDBC backends, CDI wiring, relational
> schema v5, 422-on-binding-mismatch) is general.
> - Off by default: polaris.idempotency.enabled=false.
>
> Planned follow-ups (kept out to stay focused):
> - Background purge of expired records (the purgeExpired SPI primitive is
> already in place).
> - Extending coverage to other write operations incrementally.
>
> Reviews/feedback welcome.
>
> Thanks,
> Huaxin
>