2424import com .google .api .gax .batching .FlowController .LimitExceededBehavior ;
2525import com .google .api .gax .core .FixedCredentialsProvider ;
2626import com .google .api .gax .core .GoogleCredentialsProvider ;
27+ import com .google .api .gax .grpc .ChannelPoolSettings ;
2728import com .google .api .gax .grpc .InstantiatingGrpcChannelProvider ;
2829import com .google .api .gax .retrying .RetrySettings ;
2930import com .google .api .gax .rpc .FixedHeaderProvider ;
@@ -250,7 +251,13 @@ public Map<String, String> getJwtAudienceMapping() {
250251 /** Returns a builder for the default ChannelProvider for this service. */
251252 public static InstantiatingGrpcChannelProvider .Builder defaultGrpcTransportProviderBuilder () {
252253 return BigtableStubSettings .defaultGrpcTransportProviderBuilder ()
253- .setPoolSize (getDefaultChannelPoolSize ())
254+ .setChannelPoolSettings (
255+ ChannelPoolSettings .builder ()
256+ .setInitialChannelCount (2 )
257+ .setMinRpcsPerChannel (1 )
258+ .setMaxRpcsPerChannel (50 )
259+ .setPreemptiveRefreshEnabled (true )
260+ .build ())
254261 .setMaxInboundMessageSize (MAX_MESSAGE_SIZE )
255262 .setKeepAliveTime (Duration .ofSeconds (30 )) // sends ping in this interval
256263 .setKeepAliveTimeout (
@@ -260,11 +267,6 @@ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProvi
260267 .setAttemptDirectPath (true );
261268 }
262269
263- static int getDefaultChannelPoolSize () {
264- // TODO: tune channels
265- return 2 * Runtime .getRuntime ().availableProcessors ();
266- }
267-
268270 @ SuppressWarnings ("WeakerAccess" )
269271 public static TransportChannelProvider defaultTransportChannelProvider () {
270272 return defaultGrpcTransportProviderBuilder ().build ();
@@ -577,9 +579,7 @@ private Builder() {
577579 copyRetrySettings (baseDefaults .mutateRowSettings (), mutateRowSettings );
578580
579581 long maxBulkMutateElementPerBatch = 100L ;
580- // Enables bulkMutate to support 10 outstanding batches upto per channel or up to 20K entries.
581- long maxBulkMutateOutstandingElementCount =
582- Math .min (20_000L , 10L * maxBulkMutateElementPerBatch * getDefaultChannelPoolSize ());
582+ long maxBulkMutateOutstandingElementCount = 20_000L ;
583583
584584 bulkMutateRowsSettings =
585585 BigtableBatchingCallSettings .newBuilder (new MutateRowsBatchingDescriptor ())
@@ -601,9 +601,7 @@ private Builder() {
601601
602602 long maxBulkReadElementPerBatch = 100L ;
603603 long maxBulkReadRequestSizePerBatch = 400L * 1024L ;
604- // Enables bulkRead to support 10 outstanding batches per channel
605- long maxBulkReadOutstandingElementCount =
606- 10L * maxBulkReadElementPerBatch * getDefaultChannelPoolSize ();
604+ long maxBulkReadOutstandingElementCount = 20_000L ;
607605
608606 bulkReadRowsSettings =
609607 BigtableBulkReadRowsCallSettings .newBuilder (new ReadRowsBatchingDescriptor ())
0 commit comments