yuqi1129 opened a new pull request, #12649: URL: https://github.com/apache/gravitino/pull/12649
### What changes were proposed in this pull request? - Add `current_version` and `last_version` to `model_meta` for H2, MySQL, and PostgreSQL. - Use the model concurrency version to protect model, model-version, and alias writes. - Check the model version before changing dependent rows so stale writes leave no partial data. - Make model deletion and model-version registration, update, and deletion atomic. - Distinguish concurrent updates from deleted, renamed, or moved models. - Add SQL provider, concurrency, overwrite, stale-delete, and rollback tests. ### Why are the changes needed? Concurrent model and model-version writes could overwrite newer data or partially update version and alias rows. Version checks and transaction ordering ensure that only one writer succeeds and that failed writes are fully rolled back. Fix: #12348 ### Does this PR introduce _any_ user-facing change? There is no public API or configuration change. Concurrent managed Model operations now reject stale writes instead of silently overwriting newer metadata. ### How was this patch tested? - `./gradlew spotlessApply` - `SKIP_DOCKER_TESTS=true ./gradlew :core:check -PskipITs -PskipDockerTests=true` - Model, Model Version, PO converter, and SQL provider tests on H2 - PostgreSQL-specific SQL provider tests Live MySQL and PostgreSQL service tests were not run locally because the database containers were unavailable. -- 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]
