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]

Reply via email to