-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Open
Labels
Area: TransportIncludes HTTP/2 client/server and HTTP server handler transports and advanced transport features.Includes HTTP/2 client/server and HTTP server handler transports and advanced transport features.Type: FeatureNew features or improvements in behaviorNew features or improvements in behavior
Description
Use case(s) - what problem will this feature solve?
TCP receive zerocopy can be used on Linux to increase throughput, decrease CPU usage, and decrease memory bandwidth pressure.
Proposed Solution
Add support for zerocopy receive. This breaks into a few smaller issues:
- Add support for
SO_RCVLOWAT
, which reduces CPU usage and is important for zerocopy performance.SO_RCVLOWAT
is used in the C++ gRPC library as well. - Implement support for zerocopy itself.
- Benchmarking to prove the effectiveness of zerocopy.
The implementation may be limited to ALTS connections at first, but I'd like to expand it beyond ALTS in the future.
Alternatives Considered
N/A, as the goal here is specifically to get zerocopy working.
Additional Context
I plan on implementing this myself.
Metadata
Metadata
Assignees
Labels
Area: TransportIncludes HTTP/2 client/server and HTTP server handler transports and advanced transport features.Includes HTTP/2 client/server and HTTP server handler transports and advanced transport features.Type: FeatureNew features or improvements in behaviorNew features or improvements in behavior