Features
gRPC - Reuse Write Buffer per Connection (#1918)
gRPC (nphttp2) transport now supports reusing a write buffer for each connection, reducing per-frame allocations on the write path. New client and server options are exposed to enable this behavior.
- Framer refactor in
pkg/remote/trans/nphttp2/grpc/framer.goto share a buffer across writes on the same connection. - New options in
client/option.goandserver/option.goto opt into buffer reuse.
Optimizations
ttstream - Remove Connection Write Goroutine to Avoid Sender OOM (#1917)
Removed the dedicated per-connection write goroutine from the ttstream transport. The previous design could accumulate unbounded buffered frames on the sender side when the peer was slow, leading to out-of-memory on the sender. Writes are now performed synchronously, applying natural back-pressure to producers.
- Refactored
pkg/remote/trans/ttstream/transport_client.goandtransport_server.goto drop the writer goroutine. - Added frame-level tests and expanded transport test coverage.
Commits
- d83a475 - feat: gRPC supports reusing write buffer for each connection (#1918)
- 850f33d - optimize: remove ttstream connection write goroutine to avoid Sender OOM (#1917)
- f732553 - chore: release version v0.16.1 (#1919)
Full Changelog: v0.16.0...v0.16.1