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"]],[["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-03-21 UTC."],[[["This document details the `AlwaysRetryMutationPolicy` for Google Cloud Bigtable C++ client library, which is designed to retry all mutations, including non-idempotent ones."],["The latest version of this policy is `2.37.0-rc`, and the list shows a comprehensive history of versions, down to version `2.11.0`."],["The policy's primary function is to retry all mutations, and may resend mutations to the server, which can lead to multiple entries with different timestamps in the case of mutations such as `SetCell()`."],["The `AlwaysRetryMutationPolicy` class offers methods like `clone()`, `is_idempotent(google::bigtable::v2::Mutation const &)`, and `is_idempotent(google::bigtable::v2::CheckAndMutateRowRequest const &)` to manage and check mutation operations."],["Using this policy requires application-level management of potential data duplication from non-idempotent mutations, typically achieved by querying for the last value and applying garbage collection policies to remove older data."]]],[]]