Repository navigation
[rpc] Isolate internal listener resources from client backpressure - #4857
platinumhamburg wants to merge 3 commits into
Conversation
|
This PR currently conflicts with main, which now closes request handlers in |
de41437 to
ed60e27
Compare
ed60e27 to
ff88e03
Compare
|
Hi @Jackeyzhe , Thanks for pointing this out. Rebased onto the latest main. Shared request handlers are now owned by Added |
|
Thanks @platinumhamburg, the change looks good. Before merging:
Or this can be a follow-up PR, so whatever you prefer 🙏 I approved it, as it LGTM |
Jackeyzhe
left a comment
There was a problem hiding this comment.
Thanks for the update. The shared handler is now closed once after both resource groups finish, and the new test covers the shutdown ordering and repeated close calls. I don't see any remaining blocking issues. LGTM.
|
Thanks @polyzos, agreed. Updated all three descriptions in ConfigOptions and configuration.md to clarify that they apply per resource group, and documented the upgrade impact for the default Helm INTERNAL/CLIENT setup: two groups, with 6 network threads and 16 worker threads in total per server using the defaults. Also clarified that max-queued-requests controls queue backpressure rather than a hard queue limit. Single-listener deployments still use one shared group. Addressed in 325da82. Java 11 compilation, configuration documentation generation, Spotless, Checkstyle, and license checks passed. |
325da82 to
83b5a76
Compare
Purpose
Closes #4856.
Client requests can occupy a request processor and fill its queue, causing backpressure to pause associated replication connections. Give a separately configured internal listener its own RPC resources so client overload does not directly stop replication and control traffic.
Brief change log
Tests
verifyfor the RPC module and its build dependencies, selecting all RPC test classes: 165 tests, 163 passed and 2 existing skips; no failures or errors. Checkstyle, Spotless, and license checks passed.NettyServerListenerIsolationTestcover replication under external backpressure, independent network processing, single-listener compatibility, shared external capacity, metric compatibility, shutdown, and failed-bind cleanup.API and Format
No changes to RPC interfaces, wire or storage formats, authentication, authorization, or request ordering. No isolation enable switch or additional configuration options. Separate internal and external listeners allocate two groups of the configured capacity; single-listener deployments retain one group.
Documentation
Document listener resource isolation and capacity allocation in the security overview.