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]
