mirror of https://github.com/grpc/grpc-java.git
netty: Swap to UniformStreamByteDistributor (#11954)
This commit is contained in:
parent
2191557582
commit
2f52a00364
|
@ -50,6 +50,7 @@ abstract class AbstractNettyHandler extends GrpcHttp2ConnectionHandler {
|
||||||
private final Ticker ticker;
|
private final Ticker ticker;
|
||||||
|
|
||||||
private static final long BDP_MEASUREMENT_PING = 1234;
|
private static final long BDP_MEASUREMENT_PING = 1234;
|
||||||
|
protected static final int MIN_ALLOCATED_CHUNK = 16 * 1024;
|
||||||
|
|
||||||
AbstractNettyHandler(
|
AbstractNettyHandler(
|
||||||
ChannelPromise channelUnused,
|
ChannelPromise channelUnused,
|
||||||
|
|
|
@ -78,7 +78,7 @@ import io.netty.handler.codec.http2.Http2Settings;
|
||||||
import io.netty.handler.codec.http2.Http2Stream;
|
import io.netty.handler.codec.http2.Http2Stream;
|
||||||
import io.netty.handler.codec.http2.Http2StreamVisitor;
|
import io.netty.handler.codec.http2.Http2StreamVisitor;
|
||||||
import io.netty.handler.codec.http2.StreamBufferingEncoder;
|
import io.netty.handler.codec.http2.StreamBufferingEncoder;
|
||||||
import io.netty.handler.codec.http2.WeightedFairQueueByteDistributor;
|
import io.netty.handler.codec.http2.UniformStreamByteDistributor;
|
||||||
import io.netty.handler.logging.LogLevel;
|
import io.netty.handler.logging.LogLevel;
|
||||||
import io.perfmark.PerfMark;
|
import io.perfmark.PerfMark;
|
||||||
import io.perfmark.Tag;
|
import io.perfmark.Tag;
|
||||||
|
@ -169,8 +169,8 @@ class NettyClientHandler extends AbstractNettyHandler {
|
||||||
Http2HeadersEncoder.NEVER_SENSITIVE, false, 16, Integer.MAX_VALUE);
|
Http2HeadersEncoder.NEVER_SENSITIVE, false, 16, Integer.MAX_VALUE);
|
||||||
Http2FrameWriter frameWriter = new DefaultHttp2FrameWriter(encoder);
|
Http2FrameWriter frameWriter = new DefaultHttp2FrameWriter(encoder);
|
||||||
Http2Connection connection = new DefaultHttp2Connection(false);
|
Http2Connection connection = new DefaultHttp2Connection(false);
|
||||||
WeightedFairQueueByteDistributor dist = new WeightedFairQueueByteDistributor(connection);
|
UniformStreamByteDistributor dist = new UniformStreamByteDistributor(connection);
|
||||||
dist.allocationQuantum(16 * 1024); // Make benchmarks fast again.
|
dist.minAllocationChunk(MIN_ALLOCATED_CHUNK); // Increased for benchmarks performance.
|
||||||
DefaultHttp2RemoteFlowController controller =
|
DefaultHttp2RemoteFlowController controller =
|
||||||
new DefaultHttp2RemoteFlowController(connection, dist);
|
new DefaultHttp2RemoteFlowController(connection, dist);
|
||||||
connection.remote().flowController(controller);
|
connection.remote().flowController(controller);
|
||||||
|
|
|
@ -87,7 +87,7 @@ import io.netty.handler.codec.http2.Http2OutboundFrameLogger;
|
||||||
import io.netty.handler.codec.http2.Http2Settings;
|
import io.netty.handler.codec.http2.Http2Settings;
|
||||||
import io.netty.handler.codec.http2.Http2Stream;
|
import io.netty.handler.codec.http2.Http2Stream;
|
||||||
import io.netty.handler.codec.http2.Http2StreamVisitor;
|
import io.netty.handler.codec.http2.Http2StreamVisitor;
|
||||||
import io.netty.handler.codec.http2.WeightedFairQueueByteDistributor;
|
import io.netty.handler.codec.http2.UniformStreamByteDistributor;
|
||||||
import io.netty.handler.logging.LogLevel;
|
import io.netty.handler.logging.LogLevel;
|
||||||
import io.netty.util.AsciiString;
|
import io.netty.util.AsciiString;
|
||||||
import io.netty.util.ReferenceCountUtil;
|
import io.netty.util.ReferenceCountUtil;
|
||||||
|
@ -243,8 +243,8 @@ class NettyServerHandler extends AbstractNettyHandler {
|
||||||
maxMessageSize);
|
maxMessageSize);
|
||||||
|
|
||||||
final Http2Connection connection = new DefaultHttp2Connection(true);
|
final Http2Connection connection = new DefaultHttp2Connection(true);
|
||||||
WeightedFairQueueByteDistributor dist = new WeightedFairQueueByteDistributor(connection);
|
UniformStreamByteDistributor dist = new UniformStreamByteDistributor(connection);
|
||||||
dist.allocationQuantum(16 * 1024); // Make benchmarks fast again.
|
dist.minAllocationChunk(MIN_ALLOCATED_CHUNK); // Increased for benchmarks performance.
|
||||||
DefaultHttp2RemoteFlowController controller =
|
DefaultHttp2RemoteFlowController controller =
|
||||||
new DefaultHttp2RemoteFlowController(connection, dist);
|
new DefaultHttp2RemoteFlowController(connection, dist);
|
||||||
connection.remote().flowController(controller);
|
connection.remote().flowController(controller);
|
||||||
|
|
Loading…
Reference in New Issue