yuqi1129 commented on code in PR #12445:
URL: https://github.com/apache/gravitino/pull/12445#discussion_r3793379830
##########
core/src/main/java/org/apache/gravitino/catalog/CatalogChangeLogListener.java:
##########
@@ -35,12 +36,24 @@
* <p>This listener is called <em>synchronously</em> in the poller thread.
Implementations must not
* block or perform expensive I/O; only fast, in-memory cache invalidations
are permitted.
*
- * <p>This listener never propagates a failure to the poller, so the poller
never retries a batch
- * for it. That is deliberate: local-mutation de-duplication ({@link
- * CatalogManager#consumeLocalMutation}) is single-shot, so re-delivering an
already-applied batch
- * would invalidate a catalog this process mutated itself and close its
still-in-use {@code
- * IsolatedClassLoader}. Dropping an invalidation is the cheaper failure: the
catalog cache expires
- * on access, so staleness is bounded by {@code
gravitino.catalog.cache.evictionIntervalMs}.
+ * <p>The poller requires each listener to be self-healing, and this one
recovers the same way
+ * {@code EntityCacheChangeLogListener} and {@code JcasbinChangeListener} do:
a failed eviction
+ * clears the whole catalog cache, which is a strict superset of the eviction
that failed and of the
+ * rest of the batch. A malformed row is skipped instead, because it names no
catalog and so leaves
Review Comment:
`names` means `shows` here, I haved polished it.
##########
core/src/main/java/org/apache/gravitino/catalog/CatalogChangeLogListener.java:
##########
@@ -35,12 +36,24 @@
* <p>This listener is called <em>synchronously</em> in the poller thread.
Implementations must not
* block or perform expensive I/O; only fast, in-memory cache invalidations
are permitted.
*
- * <p>This listener never propagates a failure to the poller, so the poller
never retries a batch
- * for it. That is deliberate: local-mutation de-duplication ({@link
- * CatalogManager#consumeLocalMutation}) is single-shot, so re-delivering an
already-applied batch
- * would invalidate a catalog this process mutated itself and close its
still-in-use {@code
- * IsolatedClassLoader}. Dropping an invalidation is the cheaper failure: the
catalog cache expires
- * on access, so staleness is bounded by {@code
gravitino.catalog.cache.evictionIntervalMs}.
+ * <p>The poller requires each listener to be self-healing, and this one
recovers the same way
+ * {@code EntityCacheChangeLogListener} and {@code JcasbinChangeListener} do:
a failed eviction
+ * clears the whole catalog cache, which is a strict superset of the eviction
that failed and of the
+ * rest of the batch. A malformed row is skipped instead, because it names no
catalog and so leaves
Review Comment:
`names` means `shows` here, I have polished it.
--
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]