public static class SpannerOptions.Builder extends com.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
SpannerOptions
instances.Modifier and Type | Method and Description |
---|---|
SpannerOptions |
build() |
SpannerOptions.Builder |
disableGrpcGcpExtension()
Disables gRPC-GCP extension.
|
SpannerOptions.Builder |
enableGrpcGcpExtension()
Enables gRPC-GCP extension with the default settings.
|
SpannerOptions.Builder |
enableGrpcGcpExtension(com.google.cloud.grpc.GcpManagedChannelOptions options)
Enables gRPC-GCP extension and uses provided options for configuration.
|
protected Set<String> |
getAllowedClientLibTokens() |
DatabaseAdminStubSettings.Builder |
getDatabaseAdminStubSettingsBuilder()
Returns the
DatabaseAdminStubSettings.Builder that will be used to build the SpannerRpc . |
InstanceAdminStubSettings.Builder |
getInstanceAdminStubSettingsBuilder()
Returns the
InstanceAdminStubSettings.Builder that will be used to build the SpannerRpc . |
SpannerStubSettings.Builder |
getSpannerStubSettingsBuilder()
Returns the
SpannerStubSettings.Builder that will be used to build the SpannerRpc . |
SpannerOptions.Builder |
setAsyncExecutorProvider(SpannerOptions.CloseableExecutorProvider provider)
Sets the
ExecutorProvider to use for high-level async calls that need an executor,
such as fetching results for an AsyncResultSet . |
SpannerOptions.Builder |
setAutoThrottleAdministrativeRequests()
Instructs the client library to automatically throttle the number of administrative requests
if the rate of administrative requests generated by this
Spanner instance will exceed
the administrative limits Cloud Spanner. |
SpannerOptions.Builder |
setCallCredentialsProvider(SpannerOptions.CallCredentialsProvider callCredentialsProvider)
Sets a
SpannerOptions.CallCredentialsProvider that can deliver CallCredentials to use on a
per-gRPC basis. |
SpannerOptions.Builder |
setChannelConfigurator(com.google.api.core.ApiFunction<ManagedChannelBuilder,ManagedChannelBuilder> channelConfigurator)
Sets an
ApiFunction that will be used to configure the transport channel. |
SpannerOptions.Builder |
setChannelProvider(TransportChannelProvider channelProvider)
Sets the
ChannelProvider . |
SpannerOptions.Builder |
setCompressorName(String compressorName)
Sets the compression to use for all gRPC calls.
|
SpannerOptions.Builder |
setDefaultQueryOptions(DatabaseId database,
ExecuteSqlRequest.QueryOptions defaultQueryOptions)
Sets the default
ExecuteSqlRequest.QueryOptions that will be used for all queries on the specified
database. |
SpannerOptions.Builder |
setEmulatorHost(String emulatorHost)
Sets the host of an emulator to use.
|
SpannerOptions.Builder |
setHost(String host) |
SpannerOptions.Builder |
setInterceptorProvider(GrpcInterceptorProvider interceptorProvider)
Sets the
GrpcInterceptorProvider . |
SpannerOptions.Builder |
setNumChannels(int numChannels)
Sets the number of gRPC channels to use.
|
SpannerOptions.Builder |
setPartitionedDmlTimeout(org.threeten.bp.Duration timeout)
Sets a timeout specifically for Partitioned DML statements executed through
DatabaseClient#executePartitionedUpdate(Statement) . |
SpannerOptions.Builder |
setPrefetchChunks(int prefetchChunks)
Specifying this will allow the client to prefetch up to
prefetchChunks PartialResultSet chunks for each read and query. |
SpannerOptions.Builder |
setRetrySettings(RetrySettings retrySettings)
SpannerOptions.Builder does not support global retry settings, as it creates three
different gRPC clients: Spanner , DatabaseAdminClient and InstanceAdminClient . |
SpannerOptions.Builder |
setSessionLabels(Map<String,String> sessionLabels)
Sets the labels to add to all Sessions created in this client.
|
SpannerOptions.Builder |
setSessionPoolOption(SessionPoolOptions sessionPoolOptions)
Sets the options for managing the session pool.
|
SpannerOptions.Builder |
setTrackTransactionStarter()
Instructs the client library to track the first request of each read/write transaction.
|
SpannerOptions.Builder |
setTransportOptions(com.google.cloud.TransportOptions transportOptions) |
public SpannerOptions.Builder setTransportOptions(com.google.cloud.TransportOptions transportOptions)
setTransportOptions
in class com.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
protected Set<String> getAllowedClientLibTokens()
getAllowedClientLibTokens
in class com.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
public SpannerOptions.Builder setChannelProvider(TransportChannelProvider channelProvider)
ChannelProvider
. GapicSpannerRpc
would create a default one if none
is provided.
Setting a custom TransportChannelProvider
also overrides any other settings that
affect the default channel provider. These must be set manually on the custom TransportChannelProvider
instead of on SpannerOptions
. The settings of SpannerOptions
that have no effect if you set a custom TransportChannelProvider
are:
setChannelConfigurator(ApiFunction)
setHost(String)
setNumChannels(int)
setInterceptorProvider(GrpcInterceptorProvider)
ServiceOptions.Builder.setHeaderProvider(com.google.api.gax.rpc.HeaderProvider)
public SpannerOptions.Builder setChannelConfigurator(com.google.api.core.ApiFunction<ManagedChannelBuilder,ManagedChannelBuilder> channelConfigurator)
ApiFunction
that will be used to configure the transport channel. This will
only be used if no custom TransportChannelProvider
has been set.public SpannerOptions.Builder setInterceptorProvider(GrpcInterceptorProvider interceptorProvider)
GrpcInterceptorProvider
. GapicSpannerRpc
would create a default one
if none is provided.public SpannerOptions.Builder setNumChannels(int numChannels)
SpannerOptions
.public SpannerOptions.Builder setSessionPoolOption(SessionPoolOptions sessionPoolOptions)
SessionPoolOptions
is used.public SpannerOptions.Builder setSessionLabels(Map<String,String> sessionLabels)
sessionLabels
- Map from label key to label value. Label key and value cannot be null.
For more information on valid syntax see
api docs .public SpannerOptions.Builder setRetrySettings(RetrySettings retrySettings)
SpannerOptions.Builder
does not support global retry settings, as it creates three
different gRPC clients: Spanner
, DatabaseAdminClient
and InstanceAdminClient
. Instead of calling this method, you should set specific RetrySettings
for each of the underlying gRPC clients by calling respectively getSpannerStubSettingsBuilder()
, getDatabaseAdminStubSettingsBuilder()
or getInstanceAdminStubSettingsBuilder()
.setRetrySettings
in class com.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
public SpannerStubSettings.Builder getSpannerStubSettingsBuilder()
SpannerStubSettings.Builder
that will be used to build the SpannerRpc
. Use this to set custom RetrySettings
for individual gRPC methods.
The library will automatically use the defaults defined in SpannerStubSettings
if
no custom settings are set. The defaults are the same as the defaults that are used by SpannerSettings
, and are generated from the file spanner_gapic.yaml.
Retries are configured for idempotent methods but not for non-idempotent methods.
You can set the same RetrySettings
for all unary methods by calling this:
builder
.getSpannerStubSettingsBuilder()
.applyToAllUnaryMethods(
new ApiFunction<UnaryCallSettings.Builder<?, ?>, Void>() {
public Void apply(Builder<?, ?> input) {
input.setRetrySettings(retrySettings);
return null;
}
});
public InstanceAdminStubSettings.Builder getInstanceAdminStubSettingsBuilder()
InstanceAdminStubSettings.Builder
that will be used to build the SpannerRpc
. Use this to set custom RetrySettings
for individual gRPC methods.
The library will automatically use the defaults defined in InstanceAdminStubSettings
if no custom settings are set. The defaults are the same as the
defaults that are used by InstanceAdminSettings
, and are generated from the file spanner_admin_instance_gapic.yaml.
Retries are configured for idempotent methods but not for non-idempotent methods.
You can set the same RetrySettings
for all unary methods by calling this:
builder
.getInstanceAdminStubSettingsBuilder()
.applyToAllUnaryMethods(
new ApiFunction<UnaryCallSettings.Builder<?, ?>, Void>() {
public Void apply(Builder<?, ?> input) {
input.setRetrySettings(retrySettings);
return null;
}
});
public DatabaseAdminStubSettings.Builder getDatabaseAdminStubSettingsBuilder()
DatabaseAdminStubSettings.Builder
that will be used to build the SpannerRpc
. Use this to set custom RetrySettings
for individual gRPC methods.
The library will automatically use the defaults defined in DatabaseAdminStubSettings
if no custom settings are set. The defaults are the same as the
defaults that are used by DatabaseAdminSettings
, and are generated from the file spanner_admin_database_gapic.yaml.
Retries are configured for idempotent methods but not for non-idempotent methods.
You can set the same RetrySettings
for all unary methods by calling this:
builder
.getDatabaseAdminStubSettingsBuilder()
.applyToAllUnaryMethods(
new ApiFunction<UnaryCallSettings.Builder<?, ?>, Void>() {
public Void apply(Builder<?, ?> input) {
input.setRetrySettings(retrySettings);
return null;
}
});
public SpannerOptions.Builder setPartitionedDmlTimeout(org.threeten.bp.Duration timeout)
DatabaseClient#executePartitionedUpdate(Statement)
. The default is 2 hours.public SpannerOptions.Builder setAutoThrottleAdministrativeRequests()
Spanner
instance will exceed
the administrative limits Cloud Spanner. The default behavior is to not throttle any
requests. If the limit is exceeded, Cloud Spanner will return a RESOURCE_EXHAUSTED error.
More information on the administrative limits can be found here:
https://cloud.google.com/spanner/quotas#administrative_limits. Setting this option is not a
guarantee that the rate will never be exceeded, as this option will only throttle requests
coming from this client. Additional requests from other clients could still cause the limit
to be exceeded.public SpannerOptions.Builder setTrackTransactionStarter()
SpannerException
with ErrorCode.DEADLINE_EXCEEDED
for any subsequent
statement that has waited for at least 60 seconds for the first statement to return a
transaction id, including the stacktrace of the initial statement that should have returned a
transaction id.public SpannerOptions.Builder setDefaultQueryOptions(DatabaseId database, ExecuteSqlRequest.QueryOptions defaultQueryOptions)
ExecuteSqlRequest.QueryOptions
that will be used for all queries on the specified
database. Query options can also be specified on a per-query basis and as environment
variables. The precedence of these settings are:
Options.QueryOption
value that is used for a query is determined individually based on
the above precedence. If for example a value for ExecuteSqlRequest.QueryOptions.getOptimizerVersion()
is specified in an environment variable and a value for ExecuteSqlRequest.QueryOptions.getOptimizerStatisticsPackage()
is specified for a specific query, both values
will be used for the specific query. Environment variables are only read during the
initialization of a SpannerOptions
instance. Changing an environment variable after
initializing a SpannerOptions
instance will not have any effect on that instance.public SpannerOptions.Builder setCallCredentialsProvider(SpannerOptions.CallCredentialsProvider callCredentialsProvider)
SpannerOptions.CallCredentialsProvider
that can deliver CallCredentials
to use on a
per-gRPC basis. Any credentials returned by this SpannerOptions.CallCredentialsProvider
will have
preference above any Credentials
that may have been set on the SpannerOptions
instance.@ExperimentalApi(value="https://github.com/grpc/grpc-java/issues/1704") public SpannerOptions.Builder setCompressorName(@Nullable String compressorName)
CompressorRegistry
.
Supported values are:
null
: Use default compression
public SpannerOptions.Builder setAsyncExecutorProvider(SpannerOptions.CloseableExecutorProvider provider)
ExecutorProvider
to use for high-level async calls that need an executor,
such as fetching results for an AsyncResultSet
.
Async methods will use a sensible default if no custom ExecutorProvider
has been
set. The default ExecutorProvider
uses a cached thread pool containing a maximum of 8
threads. The pool is lazily initialized and will not create any threads if the user
application does not use any async methods. It will also scale down the thread usage if the
async load allows for that.
Call SpannerOptions.createAsyncExecutorProvider(int, long, TimeUnit)
to create a
provider with a custom pool size or call SpannerOptions.FixedCloseableExecutorProvider.create(ScheduledExecutorService)
to create a SpannerOptions.CloseableExecutorProvider
from a standard Java ScheduledExecutorService
.
public SpannerOptions.Builder setPrefetchChunks(int prefetchChunks)
prefetchChunks
PartialResultSet
chunks for each read and query. The data size of each chunk depends on the
server implementation but a good rule of thumb is that each chunk will be up to 1 MiB. Larger
values reduce the likelihood of blocking while consuming results at the cost of greater
memory consumption. prefetchChunks
should be greater than 0. To get good performance
choose a value that is large enough to allow buffering of chunks for an entire row. Apart
from the buffered chunks, there can be at most one more row buffered in the client. This can
be overridden on a per read/query basis by Options.prefetchChunks()
. If unspecified,
we will use a default value (currently 4).public SpannerOptions.Builder setHost(String host)
setHost
in class com.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
public SpannerOptions.Builder enableGrpcGcpExtension()
public SpannerOptions.Builder enableGrpcGcpExtension(com.google.cloud.grpc.GcpManagedChannelOptions options)
public SpannerOptions.Builder disableGrpcGcpExtension()
public SpannerOptions.Builder setEmulatorHost(String emulatorHost)
null
.public SpannerOptions build()
build
in class com.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
Copyright © 2022 Google LLC. All rights reserved.