Notice that this will may result in non-idempotent mutations being resent to the server. Re-trying a SetCell() mutation where the server selects the timestamp can result in multiple copies of the data stored with different timestamps. Only use this policy if your application is prepared to handle such problems, for example, by only querying the last value and setting garbage collection policies to delete the old values.
[[["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\u003eThe content focuses on the \u003ccode\u003eAlwaysRetryMutationPolicy\u003c/code\u003e class within the Google Cloud Bigtable C++ library, detailing its different versions.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eAlwaysRetryMutationPolicy\u003c/code\u003e will retry all mutations, potentially causing non-idempotent mutations to be resent to the server.\u003c/p\u003e\n"],["\u003cp\u003eThe class includes functions like \u003ccode\u003eclone()\u003c/code\u003e for creating a copy of the policy and \u003ccode\u003eis_idempotent()\u003c/code\u003e to check if a mutation is idempotent.\u003c/p\u003e\n"],["\u003cp\u003eMultiple versions of the \u003ccode\u003eAlwaysRetryMutationPolicy\u003c/code\u003e are available, ranging from 2.11.0 to the latest release candidate 2.37.0-rc, with links to their respective documentation.\u003c/p\u003e\n"],["\u003cp\u003eThere are specific considerations for using this class, for instance the server selecting the timestamp can result in multiple copies of the data stored with different timestamps.\u003c/p\u003e\n"]]],[],null,["# Class AlwaysRetryMutationPolicy (2.42.0-rc)\n\nVersion latestkeyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/bigtable/latest/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.41.0](/cpp/docs/reference/bigtable/2.41.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.40.0](/cpp/docs/reference/bigtable/2.40.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.39.0](/cpp/docs/reference/bigtable/2.39.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.38.0](/cpp/docs/reference/bigtable/2.38.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.37.0](/cpp/docs/reference/bigtable/2.37.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.36.0](/cpp/docs/reference/bigtable/2.36.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.35.0](/cpp/docs/reference/bigtable/2.35.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.34.0](/cpp/docs/reference/bigtable/2.34.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.33.0](/cpp/docs/reference/bigtable/2.33.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.32.0](/cpp/docs/reference/bigtable/2.32.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.31.0](/cpp/docs/reference/bigtable/2.31.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.30.0](/cpp/docs/reference/bigtable/2.30.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.29.0](/cpp/docs/reference/bigtable/2.29.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.28.0](/cpp/docs/reference/bigtable/2.28.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.27.0](/cpp/docs/reference/bigtable/2.27.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.26.0](/cpp/docs/reference/bigtable/2.26.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.25.1](/cpp/docs/reference/bigtable/2.25.1/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.24.0](/cpp/docs/reference/bigtable/2.24.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.23.0](/cpp/docs/reference/bigtable/2.23.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.22.1](/cpp/docs/reference/bigtable/2.22.1/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.21.0](/cpp/docs/reference/bigtable/2.21.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.20.0](/cpp/docs/reference/bigtable/2.20.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.19.0](/cpp/docs/reference/bigtable/2.19.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.18.0](/cpp/docs/reference/bigtable/2.18.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.17.0](/cpp/docs/reference/bigtable/2.17.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.16.0](/cpp/docs/reference/bigtable/2.16.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.15.1](/cpp/docs/reference/bigtable/2.15.1/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.14.0](/cpp/docs/reference/bigtable/2.14.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.13.0](/cpp/docs/reference/bigtable/2.13.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.12.0](/cpp/docs/reference/bigtable/2.12.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy)\n- [2.11.0](/cpp/docs/reference/bigtable/2.11.0/classgoogle_1_1cloud_1_1bigtable_1_1AlwaysRetryMutationPolicy) \nImplements a policy that retries all mutations. \nNotice that this will may result in non-idempotent mutations being resent to the server. Re-trying a [SetCell()](/cpp/docs/reference/bigtable/latest/namespacegoogle_1_1cloud_1_1bigtable) mutation where the server selects the timestamp can result in multiple copies of the data stored with different timestamps. Only use this policy if your application is prepared to handle such problems, for example, by only querying the last value and setting garbage collection policies to delete the old values.\n\nConstructors\n------------\n\n### AlwaysRetryMutationPolicy()\n\nFunctions\n---------\n\n### virtual clone() const\n\nReturn a copy of the policy.\n\n### virtual is_idempotent(google::bigtable::v2::Mutation const \\&)\n\nReturn true if the mutation is idempotent.\n\n### virtual is_idempotent(google::bigtable::v2::CheckAndMutateRowRequest const \\&)\n\nReturn true if a conditional mutation is idempotent."]]