yuqi1129 opened a new pull request, #13831:
URL: https://github.com/apache/gravitino/pull/13831

   ### What changes were proposed in this pull request?
   
   - Replay recent change-log rows behind the cursor with bounded ID 
deduplication, diagnostics, and explicit listener opt-in.
   - Fence point-read/insert cache publication without requiring reentrant SPI 
locks.
   - Invalidate local and replayed catalog events while preserving operation 
leases; update configuration and metrics documentation.
   
   ### Why are the changes needed?
   
   ID allocation order differs from commit order. Concurrent cache publication 
and name-based local catalog markers can also leave stale entries.
   
   Refs #13828; this PR implements the P0 fixes and leaves the remaining EPIC 
work open.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Adds `gravitino.entityChangeLog.replayWindowSecs` (default `60`; `0` 
disables replay) and `gravitino.entityChangeLog.replayMaxEntries` (default 
`100000`). Existing third-party listeners remain incremental-only. No schema or 
cache-TTL change.
   
   Replay adds database reads and possible catalog reloads. Its window uses 
recorded `created_at`, including PostgreSQL transaction-start timestamps; long 
transactions, pruned history, or overload can still lose invalidations. 
Replay-only full-page cycles currently perform incremental, tail, and replay 
queries; performance tuning remains EPIC follow-up work.
   
   ### How was this patch tested?
   
   - Core: 2,761 tests; server-common: 485 tests. Zero failures, two skipped.
   - Local H2/MySQL/PostgreSQL late-commit probes and shared-PostgreSQL 
three-JVM checks for ten cacheable entity types passed.
   - Three P0 regressions fail when old behavior is restored; the non-reentrant 
SPI regression fails on the initial implementation and passes after the 
compatibility fix.
   - Spotless, compilation, and diff checks passed.
   
   Unit-suite command:
   ```bash
   LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 ./gradlew :core:test :server-common:test 
-PskipITs -PskipDockerTests=true
   ```
   


-- 
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