roryqi opened a new pull request, #11266: URL: https://github.com/apache/gravitino/pull/11266
### What changes were proposed in this pull request? First of three stacked PRs for async Iceberg hard deletion — the **persistence foundation only**: - New `IcebergConfig` keys for the async-purge worker/retry knobs. - `iceberg_cleanup_job` table schema + 1.2.0->1.3.0 migrations for H2/MySQL/PostgreSQL. - `IcebergPurgeJob` value object with a nested `State` enum. - `IcebergPurgeJobStore` — enqueue, atomic `claimNext`, heartbeat CAS, tombstone, prune — with its MyBatis mapper/PO/SQL provider. - `core` test-jar (`testArtifacts`) wiring so the store tests can reuse the relational entity-store backend. Nothing is wired into the REST drop flow yet; that comes in the follow-up PRs (manager engine, then REST integration). ### Why are the changes needed? Inline purge of a large Iceberg table blocks the drop request and risks client timeouts, and a crash mid-deletion leaves no record to resume. A durable, persisted job store is the foundation for an opt-in async purge. Splitting it out keeps each PR reviewable. Fix: #11265 ### Does this PR introduce _any_ user-facing change? Adds new Iceberg REST config property keys (opt-in, unused until later PRs) and a new `iceberg_cleanup_job` table in the 1.3.0 schema/upgrade scripts. No API or default-behavior change. ### How was this patch tested? New unit tests `TestIcebergPurgeJob` and `TestIcebergPurgeJobStore` (the latter runs the relational backend matrix via `AbstractIcebergPurgeJobStoreBackendTest`). Verified `:iceberg:iceberg-common:testClasses` and `:iceberg:iceberg-rest-server:testClasses` compile. -- 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]
