nevzheng opened a new pull request, #12261:
URL: https://github.com/apache/gravitino/pull/12261
### What changes were proposed in this pull request?
> **Iceberg REST purge stack (Stack 30), review 3 of 8.** Depends on #12260.
Files changed are cumulative until earlier stack layers land. Review only
commit `938f50676`. This PR is published as a draft for design alignment.
- Link retained jobs to exact `table_id` and `deletion_id`; keep both null
for V1 jobs.
- Discover expired `DELETED` actions in bounded, advisory windows.
- In one transaction, lock and revalidate the exact action and retained
table, insert the linked
`PENDING` job, and change the action to `PURGING` with that job ID.
- Keep the public legacy `addJob` path limited to unlinked V1 jobs.
- Prevent legacy relational GC from consuming retained-generation relations.
- Use a read-only internal table/action projection for purge discovery
without restoring the removed
public deletion read model or duplicating persisted metadata.
**After this PR:** one deletion generation can be handed to exactly one
durable cleanup job.
### Why are the changes needed?
The job and ownership transition must commit together so concurrent UNDROP
and purge collectors
cannot both win. Atomic handoff also prevents a durable `PURGING` action
without its job, so no
claim-to-enqueue repair sweeper is required.
Part of #12258.
Review order: #12259 → #12260 → **this PR**.
### Does this PR introduce _any_ user-facing change?
No new API.
### How was this patch tested?
Backend test coverage includes expiry, rollback at both write boundaries,
stale generations,
concurrent claims, UNDROP-versus-purge, V1 linkage, and legacy-GC isolation.
The rebased incremental
diff passes `git diff --check`; the full CI suite will run on this draft.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]