You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Overall: Good design direction, but suggest refining the category taxonomy before merging.
The idea of separating table processes into different tabs is great. However, I think MAINTENANCE is too broad a category and we should consider a more precise taxonomy that better aligns with the nature of these operations.
Suggested Classification
Instead of a binary OPTIMIZING / MAINTENANCE split, I'd suggest a three-way classification:
Additionally, Sync Hive Tables is more of an internal implementation detail and probably should not be exposed to users in any tab.
Rationale
"Maintenance" is too vague — compaction could also be considered "maintenance" in a broad sense.
The operations currently under MAINTENANCE actually serve two distinct purposes: space reclamation (Expire/Clean) vs. metadata enrichment (Auto Create Tags). As we add more operations (e.g., statistics collection), this distinction will become more important.
This three-way split aligns with industry conventions: Delta Lake has OPTIMIZE / VACUUM, Iceberg docs separate "rewrite" from "expire/remove".
Suggested Approach
For the backend API, I'd recommend defining three processCategory values upfront: OPTIMIZING, CLEANUP, PROFILING. This makes the API future-proof.
For the frontend, there are two pragmatic options:
Three tabs (Optimizing / Cleanup / Profiling) — cleanest separation
Two tabs for now (Optimizing / Cleanup) — merge Profiling into Cleanup since there's currently only one profiling operation (Auto Create Tags), and split it out later when more profiling operations are added
Either way, the endpoint could be generalized from /maintenance-types to something like /process-types?category=CLEANUP for better extensibility.
Overall: Good design direction, but suggest refining the category taxonomy before merging.
The idea of separating table processes into different tabs is great. However, I think MAINTENANCE is too broad a category and we should consider a more precise taxonomy that better aligns with the nature of these operations.
Suggested Classification
Instead of a binary OPTIMIZING / MAINTENANCE split, I'd suggest a three-way classification:
Category Purpose Current Operations Future Extensions OPTIMIZING Performance optimization (data reorganization) Minor / Major / Full Compaction Clustering, Sort Rewrite CLEANUP Space reclamation & lifecycle management Expire Snapshots, Expire Data, Clean Orphan Files, Clean Dangling Delete Files VACUUM, Remove Old Metadata PROFILING Information enrichment & metadata augmentation Auto Create Tags Collect Statistics, Build Index
Additionally, Sync Hive Tables is more of an internal implementation detail and probably should not be exposed to users in any tab.
Rationale
"Maintenance" is too vague — compaction could also be considered "maintenance" in a broad sense.
The operations currently under MAINTENANCE actually serve two distinct purposes: space reclamation (Expire/Clean) vs. metadata enrichment (Auto Create Tags). As we add more operations (e.g., statistics collection), this distinction will become more important.
This three-way split aligns with industry conventions: Delta Lake has OPTIMIZE / VACUUM, Iceberg docs separate "rewrite" from "expire/remove".
Suggested Approach
For the backend API, I'd recommend defining three processCategory values upfront: OPTIMIZING, CLEANUP, PROFILING. This makes the API future-proof.
For the frontend, there are two pragmatic options:
Three tabs (Optimizing / Cleanup / Profiling) — cleanest separation
Two tabs for now (Optimizing / Cleanup) — merge Profiling into Cleanup since there's currently only one profiling operation (Auto Create Tags), and split it out later when more profiling operations are added
Either way, the endpoint could be generalized from /maintenance-types to something like /process-types?category=CLEANUP for better extensibility.
What do you think?
Your feedback is very helpful. Thank you very much. The new commit has been fixed and the latest screenshots have also been updated above. The changes are as follows:
Changes:
Add ProcessCategory enum with OPTIMIZING, CLEANUP, PROFILING
Replace getTableMaintenanceTypes() with getTableProcessTypes(category)
Remove excludeTypes parameter from TableProcessMapper.listProcessMeta()
Merge /optimizing-types and /maintenance-types into /process-types endpoint
Split Maintenance.vue into Cleanup.vue and Profiling.vue
Update HudiTableDescriptor and PaimonTableDescriptor
Fix TestIcebergServerTableDescriptor to pass processCategory parameter
BREAKING CHANGE:
Removed /optimizing-types and /maintenance-types REST
endpoints.
Use /process-types?processCategory=OPTIMIZING|CLEANUP|PROFILING.
SPI method getTableMaintenanceTypes() replaced by getTableProcessTypes().
zhangwl9
changed the title
[AMORO-4236] Add Maintenance tab for table process management
[AMORO-4236] Refactor optimizing tab from optimizing to optimizing tab,cleanup tab and profiling tab
Jun 5, 2026
zhangwl9
changed the title
[AMORO-4236] Refactor optimizing tab from optimizing to optimizing tab,cleanup tab and profiling tab
[AMORO-4236] Refactor Optimizing tab from Optimizing to Optimizing tab,Cleanup tab and Profiling tab
Jun 5, 2026
zhangwl9
changed the title
[AMORO-4236] Refactor Optimizing tab from Optimizing to Optimizing tab,Cleanup tab and Profiling tab
[AMORO-4236] Splitting the “Optimizing” tab into the “Optimizing” tab,“Cleanup” tab and “Profiling” tab
Jun 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why are the changes needed?
Close #4236.
Brief change log
Introduces Maintenance tab in the table details page to separate maintenance processes (cleanup operations) from optimizing processes.
Key changes:
processCategoryparameter togetOptimizingProcessesInfoAPI to filter by OPTIMIZING or MAINTENANCE category/maintenance-typesto fetch maintenance-specific process typesMixedAndIcebergTableDescriptorto support category-based filtering with proper type separationMaintenance.vuecomponent that wrapsOptimizing.vuewith maintenance-specific configurationprocessCategoryandcancelModalTitleKeyprops toOptimizing.vuefor flexible reuseHow was this patch tested?
Add some test cases that check the changes thoroughly including negative and positive cases if possible
Add screenshots for manual tests if appropriate
Documentation