|
29 | 29 | import static com.google.cloud.spanner.connection.ConnectionOptions.CREDENTIALS_PROVIDER_PROPERTY_NAME; |
30 | 30 | import static com.google.cloud.spanner.connection.ConnectionOptions.DATABASE_ROLE_PROPERTY_NAME; |
31 | 31 | import static com.google.cloud.spanner.connection.ConnectionOptions.DATA_BOOST_ENABLED_PROPERTY_NAME; |
| 32 | +import static com.google.cloud.spanner.connection.ConnectionOptions.DCP_INITIAL_CHANNELS_PROPERTY_NAME; |
| 33 | +import static com.google.cloud.spanner.connection.ConnectionOptions.DCP_MAX_CHANNELS_PROPERTY_NAME; |
| 34 | +import static com.google.cloud.spanner.connection.ConnectionOptions.DCP_MIN_CHANNELS_PROPERTY_NAME; |
32 | 35 | import static com.google.cloud.spanner.connection.ConnectionOptions.DDL_IN_TRANSACTION_MODE_PROPERTY_NAME; |
33 | 36 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_AUTOCOMMIT; |
34 | 37 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_AUTO_BATCH_DML; |
|
42 | 45 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_CREDENTIALS; |
43 | 46 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_DATABASE_ROLE; |
44 | 47 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_DATA_BOOST_ENABLED; |
| 48 | +import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_DCP_INITIAL_CHANNELS; |
| 49 | +import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_DCP_MAX_CHANNELS; |
| 50 | +import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_DCP_MIN_CHANNELS; |
45 | 51 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_DDL_IN_TRANSACTION_MODE; |
46 | 52 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_DEFAULT_SEQUENCE_KIND; |
47 | 53 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE; |
48 | 54 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_ENABLE_API_TRACING; |
| 55 | +import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_ENABLE_DYNAMIC_CHANNEL_POOL; |
49 | 56 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_ENABLE_END_TO_END_TRACING; |
50 | 57 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_ENABLE_EXTENDED_TRACING; |
51 | 58 | import static com.google.cloud.spanner.connection.ConnectionOptions.DEFAULT_ENDPOINT; |
|
75 | 82 | import static com.google.cloud.spanner.connection.ConnectionOptions.DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE_NAME; |
76 | 83 | import static com.google.cloud.spanner.connection.ConnectionOptions.DIALECT_PROPERTY_NAME; |
77 | 84 | import static com.google.cloud.spanner.connection.ConnectionOptions.ENABLE_API_TRACING_PROPERTY_NAME; |
| 85 | +import static com.google.cloud.spanner.connection.ConnectionOptions.ENABLE_DYNAMIC_CHANNEL_POOL_PROPERTY_NAME; |
78 | 86 | import static com.google.cloud.spanner.connection.ConnectionOptions.ENABLE_END_TO_END_TRACING_PROPERTY_NAME; |
79 | 87 | import static com.google.cloud.spanner.connection.ConnectionOptions.ENABLE_EXTENDED_TRACING_PROPERTY_NAME; |
80 | 88 | import static com.google.cloud.spanner.connection.ConnectionOptions.ENABLE_GRPC_INTERCEPTOR_PROVIDER_SYSTEM_PROPERTY; |
@@ -443,6 +451,45 @@ public class ConnectionProperties { |
443 | 451 | DEFAULT_NUM_CHANNELS, |
444 | 452 | NonNegativeIntegerConverter.INSTANCE, |
445 | 453 | Context.STARTUP); |
| 454 | + static final ConnectionProperty<Boolean> ENABLE_DYNAMIC_CHANNEL_POOL = |
| 455 | + create( |
| 456 | + ENABLE_DYNAMIC_CHANNEL_POOL_PROPERTY_NAME, |
| 457 | + "Enable dynamic channel pooling for automatic gRPC channel scaling. When enabled, the " |
| 458 | + + "client will automatically scale the number of channels based on load. Setting " |
| 459 | + + "numChannels will disable dynamic channel pooling even if this is set to true. " |
| 460 | + + "The default is currently false (disabled), but this may change to true in a " |
| 461 | + + "future version. Set this property explicitly to ensure consistent behavior.", |
| 462 | + DEFAULT_ENABLE_DYNAMIC_CHANNEL_POOL, |
| 463 | + BOOLEANS, |
| 464 | + BooleanConverter.INSTANCE, |
| 465 | + Context.STARTUP); |
| 466 | + static final ConnectionProperty<Integer> DCP_MIN_CHANNELS = |
| 467 | + create( |
| 468 | + DCP_MIN_CHANNELS_PROPERTY_NAME, |
| 469 | + "The minimum number of channels in the dynamic channel pool. Only used when " |
| 470 | + + "enableDynamicChannelPool is true. The default is " |
| 471 | + + "SpannerOptions.DEFAULT_DYNAMIC_POOL_MIN_CHANNELS (2).", |
| 472 | + DEFAULT_DCP_MIN_CHANNELS, |
| 473 | + NonNegativeIntegerConverter.INSTANCE, |
| 474 | + Context.STARTUP); |
| 475 | + static final ConnectionProperty<Integer> DCP_MAX_CHANNELS = |
| 476 | + create( |
| 477 | + DCP_MAX_CHANNELS_PROPERTY_NAME, |
| 478 | + "The maximum number of channels in the dynamic channel pool. Only used when " |
| 479 | + + "enableDynamicChannelPool is true. The default is " |
| 480 | + + "SpannerOptions.DEFAULT_DYNAMIC_POOL_MAX_CHANNELS (10).", |
| 481 | + DEFAULT_DCP_MAX_CHANNELS, |
| 482 | + NonNegativeIntegerConverter.INSTANCE, |
| 483 | + Context.STARTUP); |
| 484 | + static final ConnectionProperty<Integer> DCP_INITIAL_CHANNELS = |
| 485 | + create( |
| 486 | + DCP_INITIAL_CHANNELS_PROPERTY_NAME, |
| 487 | + "The initial number of channels in the dynamic channel pool. Only used when " |
| 488 | + + "enableDynamicChannelPool is true. The default is " |
| 489 | + + "SpannerOptions.DEFAULT_DYNAMIC_POOL_INITIAL_SIZE (4).", |
| 490 | + DEFAULT_DCP_INITIAL_CHANNELS, |
| 491 | + NonNegativeIntegerConverter.INSTANCE, |
| 492 | + Context.STARTUP); |
446 | 493 | static final ConnectionProperty<String> CHANNEL_PROVIDER = |
447 | 494 | create( |
448 | 495 | CHANNEL_PROVIDER_PROPERTY_NAME, |
|
0 commit comments