Skip to content

Conversation

@mansonliwh
Copy link
Contributor

Why are the changes needed?

Previously, table-level process information was split across two models (table_process_state and table_process), causing duplication. Additionally, TableProcessMeta.processType used a String type, which lacked type safety. This PR unifies the storage model, introduces type-safe Action objects, and creates a unified scheduling system for both Optimizing and Maintainer operations.

Brief change log

  • Unified storage: merged table_process_state and table_process into a single model using table_process table
  • Type-safe Actions: refactored TableProcessMeta.processType from String to Action type
  • New Optimizing Actions: added OPTIMIZING_MINOR, OPTIMIZING_MAJOR, OPTIMIZING_FULL in IcebergActions
  • Created Action2StringConverter: MyBatis TypeHandler for Action ↔ database string conversion
  • Updated mappers and services: TableProcessMapper and ProcessService now use Action type
  • Fixed compilation errors in production and test code

How was this patch tested?

  • Updated test cases to work with new Action type
  • Verified backward compatibility with deprecated methods
  • Tested Action conversion and database compatibility
  • All code compiles without errors
  • Manual testing of Optimizing processes
  • Integration testing of Maintainer operations

Documentation

  • Does this pull request introduce a new feature? (yes / no)

    • Yes
  • If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

    • JavaDocs added for new methods; comprehensive design doc not included

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant