Showing content from https://cloud.google.com/cpp/docs/reference/bigtable/2.16.0/bigtable-override-retry below:
C++ Client Libraries | Google Cloud
Skip to main content
- Overview
-
Library reference docs
- Google Cloud Platform Bigtable C++ Client Library
-
Namespaces
-
google::cloud::bigtable
- Overview
-
Classes
-
AsyncRowReader<Unused1, Unused2>
-
Cell
- Overview
-
Constructors
- Cell(KeyType &&, std::string, ColumnType &&, std::int64_t, ValueType &&, std::vector< std::string >)
- Cell(KeyType &&, std::string, ColumnType &&, std::int64_t, std::int64_t, std::vector< std::string >)
- Cell(KeyType &&, std::string, ColumnType &&, std::int64_t, ValueType &&)
-
DataClient
- Overview
-
Functions
- MutateRow(grpc::ClientContext *, google::bigtable::v2::MutateRowRequest const &, google::bigtable::v2::MutateRowResponse *)
- AsyncMutateRow(grpc::ClientContext *, google::bigtable::v2::MutateRowRequest const &, grpc::CompletionQueue *)
- CheckAndMutateRow(grpc::ClientContext *, google::bigtable::v2::CheckAndMutateRowRequest const &, google::bigtable::v2::CheckAndMutateRowResponse *)
- AsyncCheckAndMutateRow(grpc::ClientContext *, google::bigtable::v2::CheckAndMutateRowRequest const &, grpc::CompletionQueue *)
- ReadModifyWriteRow(grpc::ClientContext *, google::bigtable::v2::ReadModifyWriteRowRequest const &, google::bigtable::v2::ReadModifyWriteRowResponse *)
- AsyncReadModifyWriteRow(grpc::ClientContext *, google::bigtable::v2::ReadModifyWriteRowRequest const &, grpc::CompletionQueue *)
- ReadRows(grpc::ClientContext *, google::bigtable::v2::ReadRowsRequest const &)
- AsyncReadRows(grpc::ClientContext *, google::bigtable::v2::ReadRowsRequest const &, grpc::CompletionQueue *, void *)
- PrepareAsyncReadRows(::grpc::ClientContext *, google::bigtable::v2::ReadRowsRequest const &, grpc::CompletionQueue *)
- SampleRowKeys(grpc::ClientContext *, google::bigtable::v2::SampleRowKeysRequest const &)
- AsyncSampleRowKeys(grpc::ClientContext *, google::bigtable::v2::SampleRowKeysRequest const &, grpc::CompletionQueue *, void *)
- virtual PrepareAsyncSampleRowKeys(grpc::ClientContext *, google::bigtable::v2::SampleRowKeysRequest const &, grpc::CompletionQueue *)
- MutateRows(grpc::ClientContext *, google::bigtable::v2::MutateRowsRequest const &)
- AsyncMutateRows(::grpc::ClientContext *, google::bigtable::v2::MutateRowsRequest const &, grpc::CompletionQueue *, void *)
- PrepareAsyncMutateRows(grpc::ClientContext *, google::bigtable::v2::MutateRowsRequest const &, grpc::CompletionQueue *)
- project_id() const
- instance_id() const
- Channel()
- reset()
- BackgroundThreadsFactory()
-
DataConnection
- Overview
-
Functions
- virtual options()
- virtual Apply(std::string const &, SingleRowMutation)
- virtual AsyncApply(std::string const &, SingleRowMutation)
- virtual BulkApply(std::string const &, BulkMutation)
- virtual AsyncBulkApply(std::string const &, BulkMutation)
- virtual ReadRows(std::string const &, RowSet, std::int64_t, Filter)
- virtual ReadRowsFull(ReadRowsParams)
- virtual ReadRow(std::string const &, std::string, Filter)
- virtual CheckAndMutateRow(std::string const &, std::string, Filter, std::vector< Mutation >, std::vector< Mutation >)
- virtual AsyncCheckAndMutateRow(std::string const &, std::string, Filter, std::vector< Mutation >, std::vector< Mutation >)
- virtual SampleRows(std::string const &)
- virtual AsyncSampleRows(std::string const &)
- virtual ReadModifyWriteRow(google::bigtable::v2::ReadModifyWriteRowRequest)
- virtual AsyncReadModifyWriteRow(google::bigtable::v2::ReadModifyWriteRowRequest)
- virtual AsyncReadRows(std::string const &, std::function< future< bool >(Row)>, std::function< void(Status)>, RowSet, std::int64_t, Filter)
- virtual AsyncReadRow(std::string const &, std::string, Filter)
-
DataLimitedErrorCountRetryPolicy
-
Filter
- Overview
-
Functions
- static ValueRangeLeftOpen(std::string, std::string)
- static ValueRangeRightOpen(std::string, std::string)
- static ValueRangeClosed(std::string, std::string)
- static ValueRangeOpen(std::string, std::string)
- static ColumnRangeRightOpen(std::string, std::string, std::string)
- static ColumnRangeLeftOpen(std::string, std::string, std::string)
- static ColumnRangeClosed(std::string, std::string, std::string)
- static ColumnRangeOpen(std::string, std::string, std::string)
- static Condition(Filter, Filter, Filter)
- static Chain(FilterTypes &&...)
- static ChainFromRange(Iterator, Iterator)
- static Interleave(FilterTypes &&...)
- static InterleaveFromRange(Iterator, Iterator)
- static Sink()
- as_proto() const &
- as_proto() &&
- static PassAllFilter()
- static BlockAllFilter()
- static Latest(std::int32_t)
- static FamilyRegex(std::string)
- static ColumnRegex(std::string)
- static ColumnRange(std::string, std::string, std::string)
- static ColumnName(std::string, std::string)
- static TimestampRangeMicros(std::int64_t, std::int64_t)
- static TimestampRange(std::chrono::duration< Rep1, Period1 >, std::chrono::duration< Rep2, Period2 >)
- static RowKeysRegex(std::string)
- static ValueRegex(std::string)
- static ValueRange(std::string, std::string)
- static CellsRowLimit(std::int32_t)
- static CellsRowOffset(std::int32_t)
- static RowSample(double)
- static StripValueTransformer()
- static ApplyLabelTransformer(std::string)
-
GenericPollingPolicy<Retry, Backoff>
-
InstanceAdmin
- Overview
-
Functions
- project_name() const
- project_id() const
- WithNewTarget(std::string) const
- InstanceName(std::string const &) const
- ClusterName(std::string const &, std::string const &) const
- AppProfileName(std::string const &, std::string const &) const
- CreateInstance(InstanceConfig)
- CreateCluster(ClusterConfig, std::string const &, std::string const &)
- UpdateInstance(InstanceUpdateConfig)
- ListInstances()
- GetInstance(std::string const &)
- DeleteInstance(std::string const &)
- ListClusters()
- ListClusters(std::string const &)
- UpdateCluster(ClusterConfig)
- DeleteCluster(std::string const &, std::string const &)
- GetCluster(std::string const &, std::string const &)
- CreateAppProfile(std::string const &, AppProfileConfig)
- GetAppProfile(std::string const &, std::string const &)
- UpdateAppProfile(std::string const &, std::string const &, AppProfileUpdateConfig)
- ListAppProfiles(std::string const &)
- DeleteAppProfile(std::string const &, std::string const &, bool)
- GetNativeIamPolicy(std::string const &)
- SetIamPolicy(std::string const &, google::iam::v1::Policy const &)
- TestIamPermissions(std::string const &, std::vector< std::string > const &)
-
RowReader
- Overview
-
Constructors
- RowReader()
- RowReader(std::shared_ptr< DataClient >, std::string, RowSet, std::int64_t, Filter, std::unique_ptr< RPCRetryPolicy >, std::unique_ptr< RPCBackoffPolicy >, MetadataUpdatePolicy, std::unique_ptr< internal::ReadRowsParserFactory >)
- RowReader(std::shared_ptr< DataClient >, std::string, std::string, RowSet, std::int64_t, Filter, std::unique_ptr< RPCRetryPolicy >, std::unique_ptr< RPCBackoffPolicy >, MetadataUpdatePolicy, std::unique_ptr< internal::ReadRowsParserFactory >)
- RowReader(RowReader &&)
-
Table
- Overview
-
Constructors
- Table(std::shared_ptr< bigtable::DataConnection >, TableResource, Options)
- Table(std::shared_ptr< DataClient >, std::string const &)
- Table(std::shared_ptr< DataClient >, std::string, std::string const &)
- Table(std::shared_ptr< DataClient >, std::string const &, Policies &&...)
- Table(std::shared_ptr< DataClient >, std::string, std::string const &, Policies &&...)
-
Functions
- table_name() const
- app_profile_id() const
- project_id() const
- instance_id() const
- table_id() const
- WithNewTarget(std::string, std::string, std::string) const
- WithNewTarget(std::string, std::string, std::string, std::string) const
- Apply(SingleRowMutation, Options)
- AsyncApply(SingleRowMutation, Options)
- BulkApply(BulkMutation, Options)
- AsyncBulkApply(BulkMutation, Options)
- ReadRows(RowSet, Filter, Options)
- ReadRows(RowSet, std::int64_t, Filter, Options)
- ReadRow(std::string, Filter, Options)
- CheckAndMutateRow(std::string, Filter, std::vector< Mutation >, std::vector< Mutation >, Options)
- AsyncCheckAndMutateRow(std::string, Filter, std::vector< Mutation >, std::vector< Mutation >, Options)
- SampleRows(Options)
- AsyncSampleRows(Options)
- ReadModifyWriteRow(std::string, bigtable::ReadModifyWriteRule, Args &&...)
- AsyncReadModifyWriteRow(std::string, bigtable::ReadModifyWriteRule, Args &&...)
- AsyncReadRows(RowFunctor, FinishFunctor, RowSet, Filter, Options)
- AsyncReadRows(RowFunctor, FinishFunctor, RowSet, std::int64_t, Filter, Options)
- AsyncReadRow(std::string, Filter, Options)
-
TableAdmin
- Overview
-
Functions
- project() const
- instance_id() const
- instance_name() const
- WithNewTarget(std::string, std::string) const
- CreateTable(std::string, TableConfig)
- ListTables(::google::bigtable::admin::v2::Table::View)
- GetTable(std::string const &, TableView)
- DeleteTable(std::string const &)
- CreateBackup(CreateBackupParams const &)
- GetBackup(std::string const &, std::string const &)
- UpdateBackup(UpdateBackupParams const &)
- DeleteBackup(std::string const &, std::string const &)
- DeleteBackup(google::bigtable::admin::v2::Backup const &)
- ListBackups(ListBackupsParams const &)
- RestoreTable(RestoreTableParams const &)
- RestoreTable(RestoreTableFromInstanceParams)
- ModifyColumnFamilies(std::string const &, std::vector< ColumnFamilyModification >)
- DropRowsByPrefix(std::string const &, std::string)
- GenerateConsistencyToken(std::string const &)
- CheckConsistency(std::string const &, std::string const &)
- WaitForConsistency(std::string const &, std::string const &)
- DropAllRows(std::string const &)
- GetIamPolicy(std::string const &)
- GetIamPolicy(std::string const &, std::string const &)
- SetIamPolicy(std::string const &, google::iam::v1::Policy const &)
- SetIamPolicy(std::string const &, std::string const &, google::iam::v1::Policy const &)
- TestIamPermissions(std::string const &, std::vector< std::string > const &)
- TestIamPermissions(std::string const &, std::string const &, std::vector< std::string > const &)
- TableName(std::string const &) const
- ClusterName(std::string const &) const
- BackupName(std::string const &, std::string const &) const
-
Functions
- DeleteFromColumn(std::string, ColumnType &&, std::chrono::duration< Rep1, Period1 >, std::chrono::duration< Rep2, Period2 >)
- DeleteFromColumnStartingFrom(std::string, ColumnType &&, std::chrono::duration< Rep1, Period1 >)
- DeleteFromColumnEndingAt(std::string, ColumnType &&, std::chrono::duration< Rep2, Period2 >)
- DeleteFromColumn(std::string, ColumnType &&)
- MakeAdminClient(std::string, Options)
- CreateDefaultAdminClient(std::string, ClientOptions)
- SetCell(Cell)
- MakeDataClient(std::string, std::string, Options)
- CreateDefaultDataClient(std::string, std::string, ClientOptions)
- InstanceName(std::shared_ptr< DataClient > const &)
- MakeDataConnection(Options)
- Expression(std::string, std::string, std::string, std::string)
- IamBinding(std::string, InputIt, InputIt)
- IamBinding(std::string, InputIt, InputIt, google::type::Expr)
- IamBinding(std::string, std::initializer_list< std::string >)
- IamBinding(std::string, std::initializer_list< std::string >, google::type::Expr)
- IamBinding(std::string, std::vector< std::string >)
- IamBinding(std::string, std::vector< std::string >, google::type::Expr)
- IamBindingAppendMembers(google::iam::v1::Binding, InputIt, InputIt)
- IamBindingSetCondition(google::iam::v1::Binding, google::type::Expr)
- IamPolicy(InputIt, InputIt, std::string, std::int32_t)
- IamPolicy(std::initializer_list< google::iam::v1::Binding >, std::string, std::int32_t)
- IamPolicy(std::vector< google::iam::v1::Binding >, std::string, std::int32_t)
- RemoveBindingsFromPolicyIf(google::iam::v1::Policy &, Functor)
- RemoveBindingFromPolicy(google::iam::v1::Policy &, google::protobuf::RepeatedPtrField< google::iam::v1::Binding >::iterator)
- DefaultIdempotentMutationPolicy()
- MakeInstanceAdminClient(std::string, Options)
- CreateDefaultInstanceAdminClient(std::string, ClientOptions)
- MakeInstanceResource(std::string const &)
- ServerSetTimestamp()
- SetCell(std::string, ColumnType &&, std::chrono::milliseconds, ValueType &&)
- SetCell(std::string, ColumnType &&, std::chrono::milliseconds, std::int64_t)
- SetCell(std::string, ColumnType &&, ValueType &&)
- SetCell(std::string, ColumnType &&, std::int64_t)
- DeleteFromFamily(std::string)
- DeleteFromRow()
- DefaultPollingPolicy(internal::RPCPolicyParameters)
- InstanceName(std::string const &, std::string const &)
- TableName(std::string const &, std::string const &, std::string const &)
- ClusterName(std::string const &, std::string const &, std::string const &)
- AppProfileName(std::string const &, std::string const &, std::string const &)
- BackupName(std::string const &, std::string const &, std::string const &, std::string const &)
- DefaultRPCBackoffPolicy(internal::RPCPolicyParameters)
- DefaultRPCRetryPolicy(internal::RPCPolicyParameters)
- TableName(std::shared_ptr< DataClient > const &, std::string const &)
- MakeTableResource(std::string const &)
- version_major()
- version_minor()
- version_patch()
- version_pre_release()
- version()
- version_string()
-
google::cloud::bigtable_admin
- Overview
-
Classes
-
BigtableInstanceAdminClient
- Overview
-
Functions
- CreateInstance(std::string const &, std::string const &, google::bigtable::admin::v2::Instance const &, std::map< std::string, google::bigtable::admin::v2::Cluster > const &, Options)
- CreateInstance(google::bigtable::admin::v2::CreateInstanceRequest const &, Options)
- GetInstance(std::string const &, Options)
- GetInstance(google::bigtable::admin::v2::GetInstanceRequest const &, Options)
- ListInstances(std::string const &, Options)
- ListInstances(google::bigtable::admin::v2::ListInstancesRequest const &, Options)
- UpdateInstance(google::bigtable::admin::v2::Instance const &, Options)
- PartialUpdateInstance(google::bigtable::admin::v2::Instance const &, google::protobuf::FieldMask const &, Options)
- PartialUpdateInstance(google::bigtable::admin::v2::PartialUpdateInstanceRequest const &, Options)
- DeleteInstance(std::string const &, Options)
- DeleteInstance(google::bigtable::admin::v2::DeleteInstanceRequest const &, Options)
- CreateCluster(std::string const &, std::string const &, google::bigtable::admin::v2::Cluster const &, Options)
- CreateCluster(google::bigtable::admin::v2::CreateClusterRequest const &, Options)
- GetCluster(std::string const &, Options)
- GetCluster(google::bigtable::admin::v2::GetClusterRequest const &, Options)
- ListClusters(std::string const &, Options)
- ListClusters(google::bigtable::admin::v2::ListClustersRequest const &, Options)
- UpdateCluster(google::bigtable::admin::v2::Cluster const &, Options)
- PartialUpdateCluster(google::bigtable::admin::v2::Cluster const &, google::protobuf::FieldMask const &, Options)
- PartialUpdateCluster(google::bigtable::admin::v2::PartialUpdateClusterRequest const &, Options)
- DeleteCluster(std::string const &, Options)
- DeleteCluster(google::bigtable::admin::v2::DeleteClusterRequest const &, Options)
- CreateAppProfile(std::string const &, std::string const &, google::bigtable::admin::v2::AppProfile const &, Options)
- CreateAppProfile(google::bigtable::admin::v2::CreateAppProfileRequest const &, Options)
- GetAppProfile(std::string const &, Options)
- GetAppProfile(google::bigtable::admin::v2::GetAppProfileRequest const &, Options)
- ListAppProfiles(std::string const &, Options)
- ListAppProfiles(google::bigtable::admin::v2::ListAppProfilesRequest, Options)
- UpdateAppProfile(google::bigtable::admin::v2::AppProfile const &, google::protobuf::FieldMask const &, Options)
- UpdateAppProfile(google::bigtable::admin::v2::UpdateAppProfileRequest const &, Options)
- DeleteAppProfile(google::bigtable::admin::v2::DeleteAppProfileRequest const &, Options)
- GetIamPolicy(std::string const &, Options)
- GetIamPolicy(google::iam::v1::GetIamPolicyRequest const &, Options)
- SetIamPolicy(std::string const &, google::iam::v1::Policy const &, Options)
- SetIamPolicy(std::string const &, IamUpdater const &, Options)
- SetIamPolicy(google::iam::v1::SetIamPolicyRequest const &, Options)
- TestIamPermissions(std::string const &, std::vector< std::string > const &, Options)
- TestIamPermissions(google::iam::v1::TestIamPermissionsRequest const &, Options)
- ListHotTablets(std::string const &, Options)
- ListHotTablets(google::bigtable::admin::v2::ListHotTabletsRequest, Options)
-
BigtableInstanceAdminConnection
-
BigtableInstanceAdminConnectionIdempotencyPolicy
-
BigtableInstanceAdminLimitedErrorCountRetryPolicy
-
BigtableInstanceAdminLimitedTimeRetryPolicy
-
BigtableInstanceAdminRetryPolicy
-
BigtableTableAdminClient
- Overview
-
Functions
- CreateTable(std::string const &, std::string const &, google::bigtable::admin::v2::Table const &, Options)
- CreateTable(google::bigtable::admin::v2::CreateTableRequest const &, Options)
- ListTables(std::string const &, Options)
- ListTables(google::bigtable::admin::v2::ListTablesRequest, Options)
- GetTable(std::string const &, Options)
- GetTable(google::bigtable::admin::v2::GetTableRequest const &, Options)
- UpdateTable(google::bigtable::admin::v2::Table const &, google::protobuf::FieldMask const &, Options)
- UpdateTable(google::bigtable::admin::v2::UpdateTableRequest const &, Options)
- DeleteTable(std::string const &, Options)
- DeleteTable(google::bigtable::admin::v2::DeleteTableRequest const &, Options)
- UndeleteTable(std::string const &, Options)
- UndeleteTable(google::bigtable::admin::v2::UndeleteTableRequest const &, Options)
- ModifyColumnFamilies(std::string const &, std::vector< google::bigtable::admin::v2::ModifyColumnFamiliesRequest::Modification > const &, Options)
- ModifyColumnFamilies(google::bigtable::admin::v2::ModifyColumnFamiliesRequest const &, Options)
- DropRowRange(google::bigtable::admin::v2::DropRowRangeRequest const &, Options)
- GenerateConsistencyToken(std::string const &, Options)
- GenerateConsistencyToken(google::bigtable::admin::v2::GenerateConsistencyTokenRequest const &, Options)
- CheckConsistency(std::string const &, std::string const &, Options)
- CheckConsistency(google::bigtable::admin::v2::CheckConsistencyRequest const &, Options)
- CreateBackup(std::string const &, std::string const &, google::bigtable::admin::v2::Backup const &, Options)
- CreateBackup(google::bigtable::admin::v2::CreateBackupRequest const &, Options)
- GetBackup(std::string const &, Options)
- GetBackup(google::bigtable::admin::v2::GetBackupRequest const &, Options)
- UpdateBackup(google::bigtable::admin::v2::Backup const &, google::protobuf::FieldMask const &, Options)
- UpdateBackup(google::bigtable::admin::v2::UpdateBackupRequest const &, Options)
- DeleteBackup(std::string const &, Options)
- DeleteBackup(google::bigtable::admin::v2::DeleteBackupRequest const &, Options)
- ListBackups(std::string const &, Options)
- ListBackups(google::bigtable::admin::v2::ListBackupsRequest, Options)
- RestoreTable(google::bigtable::admin::v2::RestoreTableRequest const &, Options)
- CopyBackup(std::string const &, std::string const &, std::string const &, google::protobuf::Timestamp const &, Options)
- CopyBackup(google::bigtable::admin::v2::CopyBackupRequest const &, Options)
- GetIamPolicy(std::string const &, Options)
- GetIamPolicy(google::iam::v1::GetIamPolicyRequest const &, Options)
- SetIamPolicy(std::string const &, google::iam::v1::Policy const &, Options)
- SetIamPolicy(std::string const &, IamUpdater const &, Options)
- SetIamPolicy(google::iam::v1::SetIamPolicyRequest const &, Options)
- TestIamPermissions(std::string const &, std::vector< std::string > const &, Options)
- TestIamPermissions(google::iam::v1::TestIamPermissionsRequest const &, Options)
- AsyncCheckConsistency(std::string const &, std::string const &, Options)
- AsyncCheckConsistency(google::bigtable::admin::v2::CheckConsistencyRequest const &, Options)
-
BigtableTableAdminConnectionIdempotencyPolicy
-
BigtableTableAdminLimitedErrorCountRetryPolicy
-
BigtableTableAdminLimitedTimeRetryPolicy
-
Structs
-
BigtableInstanceAdminBackoffPolicyOption
-
BigtableInstanceAdminConnectionIdempotencyPolicyOption
-
BigtableInstanceAdminPollingPolicyOption
-
BigtableInstanceAdminRetryPolicyOption
-
BigtableTableAdminBackoffPolicyOption
-
BigtableTableAdminConnectionIdempotencyPolicyOption
-
BigtableTableAdminPollingPolicyOption
-
BigtableTableAdminRetryPolicyOption
-
google::cloud::bigtable_admin_mocks
-
google::cloud::bigtable_mocks
- Overview
-
Classes
-
MockDataConnection
- Overview
-
Functions
- virtual options()
- virtual Apply(std::string const &, SingleRowMutation)
- virtual AsyncApply(std::string const &, SingleRowMutation)
- virtual BulkApply(std::string const &, BulkMutation)
- virtual AsyncBulkApply(std::string const &, BulkMutation)
- virtual ReadRows(std::string const &, RowSet, std::int64_t, Filter)
- virtual ReadRowsFull(ReadRowsParams)
- virtual ReadRow(std::string const &, std::string, Filter)
- virtual CheckAndMutateRow(std::string const &, std::string, Filter, std::vector< Mutation >, std::vector< Mutation >)
- virtual AsyncCheckAndMutateRow(std::string const &, std::string, Filter, std::vector< Mutation >, std::vector< Mutation >)
- virtual SampleRows(std::string const &)
- virtual AsyncSampleRows(std::string const &)
- virtual ReadModifyWriteRow(google::bigtable::v2::ReadModifyWriteRowRequest)
- virtual AsyncReadModifyWriteRow(google::bigtable::v2::ReadModifyWriteRowRequest)
- virtual AsyncReadRows(std::string const &, std::function< future< bool >(Row)>, std::function< void(Status)>, RowSet, std::int64_t, Filter)
- virtual AsyncReadRow(std::string const &, std::string, Filter)
Stay organized with collections Save and categorize content based on your preferences.
Override Retry, Backoff, and Idempotency Policies
When it is safe to do so, the library automatically retries requests that fail due to a transient error. The library then uses exponential backoff to backoff before trying again. Which operations are considered safe to retry, which errors are treated as transient failures, the details of the exponential backoff algorithm, and for how long the library retries are all configurable via policies.
This document provides examples showing how to override the default policies.
The policies can be set when a DataConnection
, BigtableInstanceAdminConnection
, or BigtableTableAdminConnection
object is created. The library provides default policies for any policy that is not set.
The application can also override some (or all) policies when the corresponding Table
, BigtableInstanceAdminClient
, or BigtableTableAdminClient
object is created. This can be useful if multiple Table
(or *Client
) objects share the same *Connection
object, but you want different retry behavior in some of the clients.
Finally, the application can override some retry policies when calling a specific member function.
The library uses three different options to control the retry loop. The options have per-client names
Configuring the transient errors and retry duration
The *RetryPolicyOption
controls:
- Which errors are to be treated as transient errors.
- How long the library will keep retrying transient errors.
You can provide your own class for this option. The library also provides two built-in policies:
*LimitedErrorCountRetryPolicy
: stops retrying after a specified number of transient errors.
*LimitedTimeRetryPolicy
: stops retrying after a specified time.
Note that a library may have more than one version of these classes. Their name match the *Client
and *Connection
object they are intended to be used with. Some *Client
objects treat different error codes as transient errors. In most cases, only kUnavailable is treated as a transient error.
See Also
google::cloud::bigtable::DataRetryPolicyOption
See Also
google::cloud::bigtable::DataRetryPolicy
See Also
google::cloud::bigtable::DataLimitedTimeRetryPolicy
See Also
google::cloud::bigtable::DataLimitedErrorCountRetryPolicy
See Also
google::cloud::bigtable_admin::BigtableTableAdminRetryPolicy
See Also
google::cloud::bigtable_admin::BigtableInstanceAdminRetryPolicy
Controlling the backoff algorithm
The *BackoffPolicyOption
controls how long the client library will wait before retrying a request that failed with a transient error. You can provide your own class for this option.
The only built-in backoff policy is ExponentialBackoffPolicy
. This class implements a truncated exponential backoff algorithm, with jitter. In summary, it doubles the current backoff time after each failure. The actual backoff time for an RPC is chosen at random, but never exceeds the current backoff. The current backoff is doubled after each failure, but never exceeds (or is "truncated") if it reaches a prescribed maximum.
See Also
google::cloud::bigtable::DataBackoffPolicyOption
See Also
google::cloud::bigtable_admin::BigtableTableAdminBackoffPolicyOption
See Also
google::cloud::bigtable_admin::BigtableInstanceAdminBackoffPolicyOption
Controlling which operations are retryable
The *IdempotencyPolicyOption
controls which requests are retryable, as some requests are never safe to retry.
Only one built-in idempotency policy is provided by the library. The name matches the name of the client it is intended for. For example, BigtableTableAdminClient
will use BigtableTableAdminConnectionIdempotencyPolicy
.
In the case of data operations, only mutations need to be considered. The Table
class uses IdempotentMutationPolicy
. Mutations that use server-assigned timestamps are not considered idempotent by default. Mutations that use client-assigned timestamps are idempontent by default.
See Also
google::cloud::bigtable::IdempotentMutationPolicy
See Also
google::cloud::bigtable::IdempotentMutationPolicyOption
See Also
google::cloud::bigtable_admin::BigtableTableAdminConnectionIdempotencyPolicy
See Also
google::cloud::bigtable_admin::BigtableTableAdminConnectionIdempotencyPolicyOption
See Also
google::cloud::bigtable_admin::BigtableInstanceAdminConnectionIdempotencyPolicy
See Also
google::cloud::bigtable_admin::BigtableInstanceAdminConnectionIdempotencyPolicyOption
Example
For example, this will override the retry policies for bigtable::Table
:
namespace cbt = google::cloud::bigtable;
[](std::string const& project_id, std::string const& instance_id,
std::string const& table_id) {
auto options = google::cloud::Options{}
.set<cbt::IdempotentMutationPolicyOption>(
cbt::AlwaysRetryMutationPolicy().clone())
.set<cbt::DataRetryPolicyOption>(
cbt::DataLimitedErrorCountRetryPolicy(3).clone())
.set<cbt::DataBackoffPolicyOption>(
google::cloud::ExponentialBackoffPolicy(
/*initial_delay=*/std::chrono::milliseconds(200),
/*maximum_delay=*/std::chrono::seconds(45),
/*scaling=*/2.0)
.clone());
auto connection = cbt::MakeDataConnection(options);
auto const table_name =
cbt::TableResource(project_id, instance_id, table_id);
// c1 and c2 share the same retry policies
auto c1 = cbt::Table(connection, table_name);
auto c2 = cbt::Table(connection, table_name);
// You can override any of the policies in a new client. This new client
// will share the policies from c1 (or c2) *except* from the retry policy.
auto c3 = cbt::Table(
connection, table_name,
google::cloud::Options{}.set<cbt::DataRetryPolicyOption>(
cbt::DataLimitedTimeRetryPolicy(std::chrono::minutes(5)).clone()));
// You can also override the policies in a single call. In this case, we
// allow no retries.
auto result =
c3.ReadRow("my-key", cbt::Filter::PassAllFilter(),
google::cloud::Options{}.set<cbt::DataRetryPolicyOption>(
cbt::DataLimitedErrorCountRetryPolicy(0).clone()));
(void)result; // ignore errors in this example
}
Follow these links to find examples for other *Client
classes:
More Information See Also
google::cloud::Options
See Also
google::cloud::BackoffPolicy
See Also
google::cloud::ExponentialBackoffPolicy
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["The library automatically retries requests that fail due to transient errors, using exponential backoff for subsequent attempts."],["Retry, backoff, and idempotency policies are configurable and can be set when creating `DataConnection`, `BigtableInstanceAdminConnection`, or `BigtableTableAdminConnection` objects."],["Applications can override policies when creating `Table`, `BigtableInstanceAdminClient`, or `BigtableTableAdminClient` objects, or even for individual function calls."],["The library uses `*RetryPolicyOption` to control which errors are considered transient and the duration of retries, `*BackoffPolicyOption` to manage the wait time between retries, and `*IdempotencyPolicyOption` to define which operations are safe to retry."],["Multiple versions are available for each policy class, depending on the client or connection they are intended for, with names matching the respective `*Client` or `*Connection` object."]]],[]]
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4