Class SpannerOptions.Builder
- java.lang.Object
-
- com.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
-
- com.google.cloud.spanner.SpannerOptions.Builder
-
- Enclosing class:
- SpannerOptions
public static class SpannerOptions.Builder extends com.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
Builder forSpannerOptions
instances.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 theDatabaseAdminStubSettings.Builder
that will be used to build theSpannerRpc
.InstanceAdminStubSettings.Builder
getInstanceAdminStubSettingsBuilder()
Returns theInstanceAdminStubSettings.Builder
that will be used to build theSpannerRpc
.SpannerStubSettings.Builder
getSpannerStubSettingsBuilder()
Returns theSpannerStubSettings.Builder
that will be used to build theSpannerRpc
.SpannerOptions.Builder
setAsyncExecutorProvider(SpannerOptions.CloseableExecutorProvider provider)
Sets theExecutorProvider
to use for high-level async calls that need an executor, such as fetching results for anAsyncResultSet
.SpannerOptions.Builder
setAutoThrottleAdministrativeRequests()
Instructs the client library to automatically throttle the number of administrative requests if the rate of administrative requests generated by thisSpanner
instance will exceed the administrative limits Cloud Spanner.SpannerOptions.Builder
setCallCredentialsProvider(SpannerOptions.CallCredentialsProvider callCredentialsProvider)
Sets aSpannerOptions.CallCredentialsProvider
that can deliverCallCredentials
to use on a per-gRPC basis.SpannerOptions.Builder
setChannelConfigurator(com.google.api.core.ApiFunction<io.grpc.ManagedChannelBuilder,io.grpc.ManagedChannelBuilder> channelConfigurator)
Sets anApiFunction
that will be used to configure the transport channel.SpannerOptions.Builder
setChannelProvider(com.google.api.gax.rpc.TransportChannelProvider channelProvider)
Sets theChannelProvider
.SpannerOptions.Builder
setCompressorName(String compressorName)
Sets the compression to use for all gRPC calls.SpannerOptions.Builder
setDatabaseRole(String databaseRole)
Sets the database role that should be used for connections that are created by this instance.SpannerOptions.Builder
setDefaultQueryOptions(DatabaseId database, ExecuteSqlRequest.QueryOptions defaultQueryOptions)
Sets the defaultExecuteSqlRequest.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(com.google.api.gax.grpc.GrpcInterceptorProvider interceptorProvider)
Sets theGrpcInterceptorProvider
.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 throughDatabaseClient#executePartitionedUpdate(Statement)
.SpannerOptions.Builder
setPrefetchChunks(int prefetchChunks)
Specifying this will allow the client to prefetch up toprefetchChunks
PartialResultSet
chunks for each read and query.SpannerOptions.Builder
setRetrySettings(com.google.api.gax.retrying.RetrySettings retrySettings)
SpannerOptions.Builder
does not support global retry settings, as it creates three different gRPC clients:Spanner
,DatabaseAdminClient
andInstanceAdminClient
.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)
-
-
-
Method Detail
-
setTransportOptions
public SpannerOptions.Builder setTransportOptions(com.google.cloud.TransportOptions transportOptions)
- Overrides:
setTransportOptions
in classcom.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
-
getAllowedClientLibTokens
protected Set<String> getAllowedClientLibTokens()
- Overrides:
getAllowedClientLibTokens
in classcom.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
-
setChannelProvider
public SpannerOptions.Builder setChannelProvider(com.google.api.gax.rpc.TransportChannelProvider channelProvider)
Sets theChannelProvider
.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 customTransportChannelProvider
instead of onSpannerOptions
. The settings ofSpannerOptions
that have no effect if you set a customTransportChannelProvider
are:setChannelConfigurator(ApiFunction)
setHost(String)
setNumChannels(int)
setInterceptorProvider(GrpcInterceptorProvider)
ServiceOptions.Builder.setHeaderProvider(com.google.api.gax.rpc.HeaderProvider)
-
setChannelConfigurator
public SpannerOptions.Builder setChannelConfigurator(com.google.api.core.ApiFunction<io.grpc.ManagedChannelBuilder,io.grpc.ManagedChannelBuilder> channelConfigurator)
Sets anApiFunction
that will be used to configure the transport channel. This will only be used if no customTransportChannelProvider
has been set.
-
setInterceptorProvider
public SpannerOptions.Builder setInterceptorProvider(com.google.api.gax.grpc.GrpcInterceptorProvider interceptorProvider)
Sets theGrpcInterceptorProvider
.GapicSpannerRpc
would create a default one if none is provided.
-
setNumChannels
public SpannerOptions.Builder setNumChannels(int numChannels)
Sets the number of gRPC channels to use. By default 4 channels are created perSpannerOptions
.
-
setSessionPoolOption
public SpannerOptions.Builder setSessionPoolOption(SessionPoolOptions sessionPoolOptions)
Sets the options for managing the session pool. If not specified then the defaultSessionPoolOptions
is used.
-
setDatabaseRole
public SpannerOptions.Builder setDatabaseRole(String databaseRole)
Sets the database role that should be used for connections that are created by this instance. The database role that is used determines the access permissions that a connection has. This can for example be used to create connections that are only permitted to access certain tables.
-
setSessionLabels
public SpannerOptions.Builder setSessionLabels(Map<String,String> sessionLabels)
Sets the labels to add to all Sessions created in this client.- Parameters:
sessionLabels
- Map from label key to label value. Label key and value cannot be null. For more information on valid syntax see api docs .
-
setRetrySettings
public SpannerOptions.Builder setRetrySettings(com.google.api.gax.retrying.RetrySettings retrySettings)
SpannerOptions.Builder
does not support global retry settings, as it creates three different gRPC clients:Spanner
,DatabaseAdminClient
andInstanceAdminClient
. Instead of calling this method, you should set specificRetrySettings
for each of the underlying gRPC clients by calling respectivelygetSpannerStubSettingsBuilder()
,getDatabaseAdminStubSettingsBuilder()
orgetInstanceAdminStubSettingsBuilder()
.- Overrides:
setRetrySettings
in classcom.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
-
getSpannerStubSettingsBuilder
public SpannerStubSettings.Builder getSpannerStubSettingsBuilder()
Returns theSpannerStubSettings.Builder
that will be used to build theSpannerRpc
. Use this to set customRetrySettings
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 bySpannerSettings
, 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; } });
-
getInstanceAdminStubSettingsBuilder
public InstanceAdminStubSettings.Builder getInstanceAdminStubSettingsBuilder()
Returns theInstanceAdminStubSettings.Builder
that will be used to build theSpannerRpc
. Use this to set customRetrySettings
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 byInstanceAdminSettings
, 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; } });
-
getDatabaseAdminStubSettingsBuilder
public DatabaseAdminStubSettings.Builder getDatabaseAdminStubSettingsBuilder()
Returns theDatabaseAdminStubSettings.Builder
that will be used to build theSpannerRpc
. Use this to set customRetrySettings
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 byDatabaseAdminSettings
, 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; } });
-
setPartitionedDmlTimeout
public SpannerOptions.Builder setPartitionedDmlTimeout(org.threeten.bp.Duration timeout)
Sets a timeout specifically for Partitioned DML statements executed throughDatabaseClient#executePartitionedUpdate(Statement)
. The default is 2 hours.
-
setAutoThrottleAdministrativeRequests
public SpannerOptions.Builder setAutoThrottleAdministrativeRequests()
Instructs the client library to automatically throttle the number of administrative requests if the rate of administrative requests generated by thisSpanner
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.
-
setTrackTransactionStarter
public SpannerOptions.Builder setTrackTransactionStarter()
Instructs the client library to track the first request of each read/write transaction. This statement will include a BeginTransaction option and will return a transaction id as part of its result. All other statements in the same transaction must wait for this first statement to finish before they can proceed. By setting this option the client library will throw aSpannerException
withErrorCode.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.
-
setDefaultQueryOptions
public SpannerOptions.Builder setDefaultQueryOptions(DatabaseId database, ExecuteSqlRequest.QueryOptions defaultQueryOptions)
Sets the defaultExecuteSqlRequest.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:- Query options for a specific query
- Environment variables
- These default query options
Options.QueryOption
value that is used for a query is determined individually based on the above precedence. If for example a value forExecuteSqlRequest.QueryOptions.getOptimizerVersion()
is specified in an environment variable and a value forExecuteSqlRequest.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 aSpannerOptions
instance. Changing an environment variable after initializing aSpannerOptions
instance will not have any effect on that instance.
-
setCallCredentialsProvider
public SpannerOptions.Builder setCallCredentialsProvider(SpannerOptions.CallCredentialsProvider callCredentialsProvider)
Sets aSpannerOptions.CallCredentialsProvider
that can deliverCallCredentials
to use on a per-gRPC basis. Any credentials returned by thisSpannerOptions.CallCredentialsProvider
will have preference above anyCredentials
that may have been set on theSpannerOptions
instance.
-
setCompressorName
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1704") public SpannerOptions.Builder setCompressorName(@Nullable String compressorName)
Sets the compression to use for all gRPC calls. The compressor must be a valid name known in theCompressorRegistry
. This will enable compression both from the client to the server and from the server to the client.Supported values are:
- gzip: Enable gzip compression
- identity: Disable compression
null
: Use default compression
-
setAsyncExecutorProvider
public SpannerOptions.Builder setAsyncExecutorProvider(SpannerOptions.CloseableExecutorProvider provider)
Sets theExecutorProvider
to use for high-level async calls that need an executor, such as fetching results for anAsyncResultSet
.Async methods will use a sensible default if no custom
ExecutorProvider
has been set. The defaultExecutorProvider
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 callSpannerOptions.FixedCloseableExecutorProvider.create(ScheduledExecutorService)
to create aSpannerOptions.CloseableExecutorProvider
from a standard JavaScheduledExecutorService
.
-
setPrefetchChunks
public SpannerOptions.Builder setPrefetchChunks(int prefetchChunks)
Specifying this will allow the client to prefetch up toprefetchChunks
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 byOptions.prefetchChunks()
. If unspecified, we will use a default value (currently 4).
-
setHost
public SpannerOptions.Builder setHost(String host)
- Overrides:
setHost
in classcom.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
-
enableGrpcGcpExtension
public SpannerOptions.Builder enableGrpcGcpExtension()
Enables gRPC-GCP extension with the default settings.
-
enableGrpcGcpExtension
public SpannerOptions.Builder enableGrpcGcpExtension(com.google.cloud.grpc.GcpManagedChannelOptions options)
Enables gRPC-GCP extension and uses provided options for configuration. The metric registry and default Spanner metric labels will be added automatically.
-
disableGrpcGcpExtension
public SpannerOptions.Builder disableGrpcGcpExtension()
Disables gRPC-GCP extension.
-
setEmulatorHost
public SpannerOptions.Builder setEmulatorHost(String emulatorHost)
Sets the host of an emulator to use. By default the value is read from an environment variable. If the environment variable is not set, this will benull
.
-
build
public SpannerOptions build()
- Specified by:
build
in classcom.google.cloud.ServiceOptions.Builder<Spanner,SpannerOptions,SpannerOptions.Builder>
-
-