yuqi1129 opened a new pull request, #13486: URL: https://github.com/apache/gravitino/pull/13486
### What changes were proposed in this pull request? - Document the synchronous liveness guarantee for relation endpoints and the lock order. - Add `lockLiveEndpoint` to lock the observed hierarchy and verify that names still resolve to the same IDs. - Fence tag assignments and role privileges, with stable Tag-before-Policy and metalake-before-Role lock ordering. ### Why are the changes needed? A relation writer can resolve a target ID, then commit after another server deletes or replaces that target. GC repairs historical orphans, but the successful write can be immediately invisible to the caller. Fix: #13004 ### Does this PR introduce _any_ user-facing change? Concurrent assignments to deleted or replaced targets now fail synchronously. No API or configuration fields change. ### How was this patch tested? Added controlled endpoint, tag assignment, and role privilege concurrency tests. Ran the `TestLiveEndpointService`, `TestRoleMetaService`, `TestTagMetaService`, and `TestPolicyTagRelService` suites on H2, MySQL, and PostgreSQL with `./gradlew :core:test -PskipITs` and class filters. -- 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]
