Create an AppProfile that uses multi-cluster routing.
Read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes consistency to improve availability.
Parameters
Name
Description
profile_id
std::string
The unique name of the AppProfile.
cluster_ids
std::vector< std::string >
The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all clusters are eligible.
Create an AppProfile that uses single cluster routing.
Unconditionally routes all read/write requests to a specific cluster. This option preserves read-your-writes consistency but does not improve availability.
Parameters
Name
Description
profile_id
std::string
The unique name of the AppProfile.
cluster_id
std::string
The cluster to which read/write requests are routed.
allow_transactional_writes
bool
Whether or not CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile. It is unsafe to send these requests to the same table/row/column in multiple clusters.
[[["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 page details the \u003ccode\u003eAppProfileConfig\u003c/code\u003e class for Google Cloud Bigtable, including multiple versions, from \u003ccode\u003e2.11.0\u003c/code\u003e to \u003ccode\u003e2.37.0-rc\u003c/code\u003e, with the latest version as a release candidate.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eAppProfileConfig\u003c/code\u003e class facilitates the initial configuration of an application profile, utilizing a \u003ccode\u003egoogle::bigtable::admin::v2::CreateAppProfileRequest\u003c/code\u003e for its constructor.\u003c/p\u003e\n"],["\u003cp\u003eThe class provides methods to set parameters like \u003ccode\u003eignore_warnings\u003c/code\u003e, \u003ccode\u003edescription\u003c/code\u003e, and \u003ccode\u003eetag\u003c/code\u003e, alongside returning a \u003ccode\u003egoogle::bigtable::admin::v2::CreateAppProfileRequest\u003c/code\u003e object using \u003ccode\u003eas_proto()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eStatic functions \u003ccode\u003eMultiClusterUseAny\u003c/code\u003e and \u003ccode\u003eSingleClusterRouting\u003c/code\u003e are available to create AppProfiles for multi-cluster or single-cluster routing, respectively, with specific routing logic and failover capabilities.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eMultiClusterUseAny\u003c/code\u003e routes to the nearest cluster and provides failover, whereas \u003ccode\u003eSingleClusterRouting\u003c/code\u003e directs all requests to a specific cluster, with a parameter to allow/disallow \u003ccode\u003eCheckAndMutateRow\u003c/code\u003e and \u003ccode\u003eReadModifyWriteRow\u003c/code\u003e requests.\u003c/p\u003e\n"]]],[],null,["# Class AppProfileConfig (2.14.0)\n\nVersion 2.14.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/bigtable/latest/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.41.0](/cpp/docs/reference/bigtable/2.41.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.40.0](/cpp/docs/reference/bigtable/2.40.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.39.0](/cpp/docs/reference/bigtable/2.39.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.38.0](/cpp/docs/reference/bigtable/2.38.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.37.0](/cpp/docs/reference/bigtable/2.37.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.36.0](/cpp/docs/reference/bigtable/2.36.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.35.0](/cpp/docs/reference/bigtable/2.35.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.34.0](/cpp/docs/reference/bigtable/2.34.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.33.0](/cpp/docs/reference/bigtable/2.33.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.32.0](/cpp/docs/reference/bigtable/2.32.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.31.0](/cpp/docs/reference/bigtable/2.31.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.30.0](/cpp/docs/reference/bigtable/2.30.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.29.0](/cpp/docs/reference/bigtable/2.29.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.28.0](/cpp/docs/reference/bigtable/2.28.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.27.0](/cpp/docs/reference/bigtable/2.27.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.26.0](/cpp/docs/reference/bigtable/2.26.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.25.1](/cpp/docs/reference/bigtable/2.25.1/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.24.0](/cpp/docs/reference/bigtable/2.24.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.23.0](/cpp/docs/reference/bigtable/2.23.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.22.1](/cpp/docs/reference/bigtable/2.22.1/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.21.0](/cpp/docs/reference/bigtable/2.21.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.20.0](/cpp/docs/reference/bigtable/2.20.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.19.0](/cpp/docs/reference/bigtable/2.19.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.18.0](/cpp/docs/reference/bigtable/2.18.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.17.0](/cpp/docs/reference/bigtable/2.17.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.16.0](/cpp/docs/reference/bigtable/2.16.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.15.1](/cpp/docs/reference/bigtable/2.15.1/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.14.0](/cpp/docs/reference/bigtable/2.14.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.13.0](/cpp/docs/reference/bigtable/2.13.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.12.0](/cpp/docs/reference/bigtable/2.12.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig)\n- [2.11.0](/cpp/docs/reference/bigtable/2.11.0/classgoogle_1_1cloud_1_1bigtable_1_1AppProfileConfig) \nSpecify the initial configuration for an application profile.\n\nConstructors\n------------\n\n### AppProfileConfig(google::bigtable::admin::v2::CreateAppProfileRequest)\n\nFunctions\n---------\n\n### set_ignore_warnings(bool)\n\n### set_description(std::string)\n\n### set_etag(std::string)\n\n### as_proto() const \\&\n\n### as_proto() \\&\\&\n\n### static MultiClusterUseAny(std::string, std::vector\\\u003c std::string \\\u003e)\n\nCreate an AppProfile that uses multi-cluster routing. \nRead/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes consistency to improve availability.\n\n### static SingleClusterRouting(std::string, std::string, bool)\n\nCreate an AppProfile that uses single cluster routing. \nUnconditionally routes all read/write requests to a specific cluster. This option preserves read-your-writes consistency but does not improve availability."]]