Define the interface for controlling how the Bigtable client backsoff from failed RPC operations.
The C++ client for Bigtable needs to hide partial and temporary failures from the application. However, we need to give the users enough flexibility to control how many attempts are made to reissue operations, how often these attempts are executed, and how to signal that an error has occurred.
The application provides an instance of this class when the Table (or TableAdmin) object is created. This instance serves as a prototype to create new RPCBackoffPolicy objects of the same (dynamic) type and with the same initial state.
Functions
clone() const
Return a new copy of this object.
Typically implemented as ```cpp
return std::unique_ptr
Returns
Type
Description
std::unique_ptr< RPCBackoffPolicy >
Setup(grpc::ClientContext &) const
Update the ClientContext for the next call.
Parameter
Name
Description
context
grpc::ClientContext &
Returns
Type
Description
void
OnCompletion(Status const &)
Return the delay after an RPC operation has completed.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThis document outlines the \u003ccode\u003eRPCBackoffPolicy\u003c/code\u003e class within the Google Cloud Bigtable C++ client library, which manages how the client retries failed RPC operations.\u003c/p\u003e\n"],["\u003cp\u003eThe library provides users with control over retry attempts, frequency, and error signaling through the \u003ccode\u003eRPCBackoffPolicy\u003c/code\u003e interface.\u003c/p\u003e\n"],["\u003cp\u003eUsers can provide a prototype \u003ccode\u003eRPCBackoffPolicy\u003c/code\u003e instance when creating a \u003ccode\u003eTable\u003c/code\u003e or \u003ccode\u003eTableAdmin\u003c/code\u003e object, allowing customization of the retry behavior for Bigtable operations.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRPCBackoffPolicy\u003c/code\u003e class includes functions like \u003ccode\u003eclone()\u003c/code\u003e, \u003ccode\u003eSetup()\u003c/code\u003e, and \u003ccode\u003eOnCompletion()\u003c/code\u003e to handle the creation of new backoff policies, update the client context, and determine delays after operation failures, respectively.\u003c/p\u003e\n"],["\u003cp\u003eThe document details the range of available versions of the RPCBackoffPolicy class, starting from version 2.11.0 up to the most recent release candidate 2.37.0-rc.\u003c/p\u003e\n"]]],[],null,["# Class RPCBackoffPolicy (2.17.0)\n\nVersion 2.17.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/bigtable/latest/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.41.0](/cpp/docs/reference/bigtable/2.41.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.40.0](/cpp/docs/reference/bigtable/2.40.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.39.0](/cpp/docs/reference/bigtable/2.39.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.38.0](/cpp/docs/reference/bigtable/2.38.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.37.0](/cpp/docs/reference/bigtable/2.37.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.36.0](/cpp/docs/reference/bigtable/2.36.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.35.0](/cpp/docs/reference/bigtable/2.35.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.34.0](/cpp/docs/reference/bigtable/2.34.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.33.0](/cpp/docs/reference/bigtable/2.33.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.32.0](/cpp/docs/reference/bigtable/2.32.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.31.0](/cpp/docs/reference/bigtable/2.31.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.30.0](/cpp/docs/reference/bigtable/2.30.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.29.0](/cpp/docs/reference/bigtable/2.29.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.28.0](/cpp/docs/reference/bigtable/2.28.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.27.0](/cpp/docs/reference/bigtable/2.27.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.26.0](/cpp/docs/reference/bigtable/2.26.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.25.1](/cpp/docs/reference/bigtable/2.25.1/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.24.0](/cpp/docs/reference/bigtable/2.24.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.23.0](/cpp/docs/reference/bigtable/2.23.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.22.1](/cpp/docs/reference/bigtable/2.22.1/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.21.0](/cpp/docs/reference/bigtable/2.21.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.20.0](/cpp/docs/reference/bigtable/2.20.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.19.0](/cpp/docs/reference/bigtable/2.19.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.18.0](/cpp/docs/reference/bigtable/2.18.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.17.0](/cpp/docs/reference/bigtable/2.17.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.16.0](/cpp/docs/reference/bigtable/2.16.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.15.1](/cpp/docs/reference/bigtable/2.15.1/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.14.0](/cpp/docs/reference/bigtable/2.14.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.13.0](/cpp/docs/reference/bigtable/2.13.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.12.0](/cpp/docs/reference/bigtable/2.12.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy)\n- [2.11.0](/cpp/docs/reference/bigtable/2.11.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy) \nDefine the interface for controlling how the Bigtable client backsoff from failed RPC operations. \nThe C++ client for Bigtable needs to hide partial and temporary failures from the application. However, we need to give the users enough flexibility to control how many attempts are made to reissue operations, how often these attempts are executed, and how to signal that an error has occurred.\n\nThe application provides an instance of this class when the [Table](/cpp/docs/reference/bigtable/2.17.0/classgoogle_1_1cloud_1_1bigtable_1_1Table) (or [TableAdmin](/cpp/docs/reference/bigtable/2.17.0/classgoogle_1_1cloud_1_1bigtable_1_1TableAdmin)) object is created. This instance serves as a prototype to create new [RPCBackoffPolicy](/cpp/docs/reference/bigtable/2.17.0/classgoogle_1_1cloud_1_1bigtable_1_1RPCBackoffPolicy) objects of the same (dynamic) type and with the same initial state.\n\nFunctions\n---------\n\n### clone() const\n\nReturn a new copy of this object. \nTypically implemented as \\`\\`\\`cpp\nreturn std::unique_ptr\n\n\n```\n\n```\n\n### Setup(grpc::ClientContext \\&) const\n\nUpdate the ClientContext for the next call.\n\n### OnCompletion(Status const \\&)\n\nReturn the delay after an RPC operation has completed.\n\n### OnCompletion(grpc::Status const \\&)\n\n### OnCompletion()"]]