lasdf1234 opened a new pull request, #14054: URL: https://github.com/apache/gravitino/pull/14054
### What changes were proposed in this pull request? First slice of the REST / in-job track (stacked; this PR targets `branch-tms-scheduler`): - Type-dispatching in-job recommenders (compaction, trigger-expr, always-maintain) and metrics JSON helpers - Fail-closed OccupancyGate reclaim when a bound job is terminal or missing - Move `ExpressionEvaluator` / `QLExpressionEvaluator` into `optimizer-api` and add `CompactionTriggerEvaluator` so TMS can evaluate trigger expressions without depending on the optimizer module ### Why are the changes needed? Spark sample/finish needs a recommender decision and a soft-slot that does not stay stuck after a missing job callback. This is the foundation for the follow-up REST sample/finish PR. Part of #13760. ### Does this PR introduce _any_ user-facing change? No public REST yet. Occupancy reclaim behavior changes for in-flight maintenance actions whose job metadata is already terminal or missing. ### How was this patch tested? `./gradlew :plugins:tms:test -PskipITs -PskipDockerTests=true --tests org.apache.gravitino.maintenance.injob.* --tests org.apache.gravitino.maintenance.occupancy.TestOccupancyGate` Made with [Cursor](https://cursor.com) -- 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]
