nevzheng opened a new pull request, #12265: URL: https://github.com/apache/gravitino/pull/12265
### What changes were proposed in this pull request? This is Stack 30, PR 8 of 8. - Schedule coordinator ticks through the existing `IcebergCleanupManager` executor. - Use two scheduled threads so remote context discovery cannot starve job heartbeats. - Construct the collector only when V2 soft delete is enabled. - Keep registration cleanup and workers available to drain existing `PURGING` jobs. - Preserve lifecycle-aware reads when V2 is disabled so retained names remain hidden and reserved. - Reject legacy DELETE against an existing retained generation. - Stop cleanup workers before closing their catalog-wrapper dependency. After this PR, expired retained deletions flow automatically through the existing durable runtime while V1 and V2 jobs coexist. ### Why are the changes needed? The preceding layers are directly invocable. This final layer activates them without adding Quartz, another queue, leader election, or saga orchestration. Part of #12258. ### Does this PR introduce _any_ user-facing change? If V2 is disabled after use, existing retained names remain hidden and reserved while new deletions retain V1 behavior. ### How was this patch tested? Test coverage is included for recurring-task recovery, shutdown order, feature-off reservation, legacy routing, V2 job draining, and dependency validation. No post-rebase local test run was performed; CI validation is pending. -- 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]
