Hi Prithvi and all,

I did another review round in GH.

Re-posting here the key comment: I'm very hesitant about
expiring soft-deleted entities during REST requests against other entities.
I think the resulting behaviours are too "magical" from the end user's
perspective.

I believe the expiry use case belongs more naturally in the Admin Tool
given the current codebase. Eventually it could also be handled by the
delegation service [3990].

WDYT?

Thanks,
Dmitri.
[3990] https://github.com/apache/polaris/pull/3990

On Mon, Oct 26, 2026 at 4:34 PM Prithvi S <[email protected]>
wrote:

> Hi all,
>
> Quick follow-up on the cleanup gating for Phase 1:
> holding the identifier until the entity cleanup and its
> child tasks finish, then releasing it.
>
> While implementing this, I found that the coupling is
> in the metastore manager. dropEntityIfExists removes
> the entity (freeing the name) and schedules the cleanup
> task in the same transaction, by design.
>
> To keep the name reserved until cleanup completes, I'd
> need to separate these operations: keep the dropped
> entity, schedule cleanup, and remove the entity only
> after the cleanup task and its child tasks have finished.
>
> We don't currently have a way to detect when a task
> tree has completed. Tasks are fire-and-forget and
> self-remove on success, so I'd also need to add a small
> completion check.
>
> This touches PolarisMetaStoreManager, which has both
> JDBC (atomic and transactional) and NoSQL
> implementations. I wanted to check the direction before
> coding, in line with our interface-change guidance.
>
> Does keeping the entity reserved and gating its removal
> on cleanup completion sound right, or would you prefer
> a different approach, such as a dedicated purge task
> that handles the final entity removal?
>
> Thanks,
> Prithvi
>
> >
>

Reply via email to