yuqi1129 opened a new pull request, #12374: URL: https://github.com/apache/gravitino/pull/12374
Depends on #12111. ### What changes were proposed in this pull request? Centralize cache invalidation change-log emission at the `JDBCBackend` entity-store mutation boundary. - Emit `ALTER` for cacheable entity overwrite and update operations. - Emit `DROP` after a successful delete. - Keep only the old identifier for rename invalidation. - Do not emit an event for create because the entity cache has no negative entries and list operations bypass the cache. - Emit one root `DROP` for cascading deletion and let prefix invalidation clear cached descendants. - Commit the metadata mutation and its change-log row in the same transaction. - Remove duplicated change-log emission from type-specific MetaServices. - Update the multi-node cache design and mutation coverage tests. The covered cacheable types are metalake, catalog, schema, table, topic, view, fileset, tag, policy, and job. ### Why are the changes needed? Change-log emission was distributed across selected MetaService paths. This missed ordinary non-rename updates and mutation paths such as overwrite, status changes, enable/disable, import, and repair. Centralizing emission ensures that every invalidating mutation of a cacheable entity follows the same transaction and coverage policy. Fix: #12151 ### Does this PR introduce _any_ user-facing change? No. This PR does not change public APIs or configuration properties. ### How was this patch tested? - `./gradlew :core:spotlessApply -PskipDockerTests` - `./gradlew :core:test --tests "org.apache.gravitino.storage.relational.service.TestEntityChangeLogService" -PskipITs -PskipDockerTests` - `./gradlew :core:test --tests "org.apache.gravitino.storage.relational.service.TestTableMetaService" -PskipITs -PskipDockerTests` - `./gradlew :core:test --tests "org.apache.gravitino.storage.relational.TestEntityCacheCrossNodeInvalidation" -PskipITs -PskipDockerTests` - `./gradlew :core:test -PskipITs -PskipDockerTests` -- 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]
