Spicy-cream opened a new pull request, #3708:
URL: https://github.com/apache/brpc/pull/3708

   **What problem does this PR solve?**
   
   URMA can fall back to TCP during connection setup, but established transport 
failures do not control subsequent admission. New connections can repeatedly 
select a failing peer.
   
   **What is changed and the side effects?**
   
   - Add process-level LEGACY, AUTO and TCP_ONLY modes. AUTO uses a 
configurable peer cooldown, defaulting to 5 seconds; LEGACY remains the default.
   - Report completion, JFC and WR posting failures once per connection. Filter 
earlier epochs, count access errors separately and preserve EAGAIN for 
backpressure.
   - Select CTP/RTP paths from device capabilities, release short-connection 
resources, serialize TCP reads and initialize/validate send SGEs. Optional 
aligned copied sends add one payload copy.
   - Keep the recovery policy and client in the URMA directories. Add 
process-local SEND failure injection, independent regression tests and 
documentation.
   
   Mode changes affect new connections. Short connections can resume URMA after 
cooldown; established single/pooled TCP connections can continue serving RPCs. 
Existing v2/v3 wire formats remain compatible.
   
   **Validation**
   
   - The URMA-only revision passes 7 URMA regression groups, library/example 
builds, C++14 checks, injector self-tests and an end-to-end runner check with 
mock URMA and real brpc metrics.
   - Prior URMA RM/RTP hardware runs passed TCP_ONLY, v2/v3 AUTO, runtime mode 
switching and single/pooled 64 KiB/1 MiB attachment checks.
   - Hardware SEND_POST injection passed event short/single/pooled and polling 
short runs with 1 MiB attachments: one expected RPC failure per run, TCP 
cooldown, subsequent RPC recovery and zero content-validation failures. Short 
connections resumed URMA.
   
   **Check List**
   
   - [x] Build the library/examples and run related regressions.
   - [x] Add independent tests, preserve existing community UTs and update 
documentation.
   - [x] Follow four-space indentation and C++ nullptr conventions.
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to