yangjj-iso opened a new pull request, #7843:
URL: https://github.com/apache/shenyu/pull/7843

   Refs #7839.
   
   Rapid independent committed configuration changes repeatedly reload, 
serialize and hash the same HTTP-sync group. Add an opt-in fixed coalescing 
window per namespace/group so bursts share an authoritative cache rebuild. The 
default remains `0ms`, preserving synchronous processing.
   
   - Bound pending keys, fall back to the committing caller when full, and 
track generations so writes arriving during a rebuild trigger another pass.
   - Preserve event delivery, after-commit boundaries, MD5/version comparison, 
empty snapshots and namespace isolation. Keep selector import batching 
unchanged.
   - Notify long-poll clients after publication and recheck the cache during 
registration to close the compare/register race. Retry failed rebuilds with at 
least a one-second delay.
   
   Validation on Java 17:
   
   - **99 tests passed**, including concurrent independent H2 transactions, 
rollback, DELETE/UPDATE ordering, capacity fallback, long-poll races and 
existing selector import regressions.
   - Reactor Checkstyle and the admin Apache RAT check passed.
   - 144 local benchmark trials cover one/two namespaces, one/two groups, 
burst/5ms/25ms updates and 256/4096-character handles. Across burst scenarios, 
100 commits required **1–4 full rebuilds instead of 100**; the maximum enabled 
final cache convergence was **53.309ms**, within a 250ms local budget.
   - Commands, methodology, limitations and raw CSV results are in [the 
benchmark 
report](https://github.com/yangjj-iso/shenyu/blob/feat/7839-http-cache-rebuilds/docs/http-cache-rebuild-coalescing.md).
 Sparse updates do not consistently benefit, so the feature remains disabled by 
default.
   
   The Docker HTTP integration suite, deployed gateway business-request p99 and 
full repository install were not run. The local Docker engine was unavailable; 
the recorded p99 is in-process cache fetch latency, not gateway business 
latency.
   
   Make sure that:
   
   - [x] You have read the [contribution 
guidelines](https://shenyu.apache.org/community/contributor-guide).
   - [x] You submit test cases (unit or integration tests) that back your 
changes.
   - [ ] Your local test passed `./mvnw clean install 
-Dmaven.javadoc.skip=true` (targeted reactor tests and checks passed as listed 
above).
   


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