lasdf1234 opened a new pull request, #13386: URL: https://github.com/apache/gravitino/pull/13386
### What changes were proposed in this pull request? Add a design document for the Table Maintenance Service as an in-process plugin on the main Gravitino server. The proposal colocates Iceberg REST with the main server. The IRC post-commit hook inserts one `table_maintenance_event` row per commit and invokes an in-process callback. TMS claims `table_maintenance_state` per `(table, policy)`, applies in-flight and minimum-interval gates, and submits maintenance jobs through the existing optimizer `Recommender` and `JobSubmitter`. Seven ops APIs under `/api/maintenance/table/ops/...` replace the `gravitino-optimizer` CLI commands. ### Why are the changes needed? Table maintenance execution already lives in `maintenance/optimizer`, but it is driven by local CLI commands. There is no server-side path that reacts to an Iceberg commit, and operators have to schedule maintenance outside Gravitino. This document records the agreed design before implementation: in-process delivery, per-policy claim, an insert-only commit log, `job_id` / `last_job_id` for in-flight versus last finished job, and the ops APIs that replace the CLI. Related discussion: #11851. This design does not introduce a separate long-running optimizer service, so it does not close that issue. ### Does this PR introduce _any_ user-facing change? No. This pull request only adds a design document. It does not change APIs, configuration, or runtime behavior. ### How was this patch tested? Documentation only. No code or tests are included. 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]
