feat: read_modify_write and check_and_mutate_row#780
feat: read_modify_write and check_and_mutate_row#780daniel-sanche merged 62 commits intogoogleapis:v3from
Conversation
google/cloud/bigtable/client.py
Outdated
| true_case_mutations: Mutation | list[Mutation] | None = None, | ||
| false_case_mutations: Mutation | list[Mutation] | None = None, | ||
| operation_timeout: int | float | None = 60, | ||
| operation_timeout: int | float | None = 600, |
There was a problem hiding this comment.
10 minutes seems too long.. the java default is only 20 seconds. https://cloud.google.com/java/docs/reference/google-cloud-bigtable/latest/com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStubSettings#com_google_cloud_bigtable_data_v2_stub_EnhancedBigtableStubSettings_checkAndMutateRowSettings__
There was a problem hiding this comment.
Changed, but FYI I will likely be changing the timeout structure after all the rpc PRs are merged: #782
google/cloud/bigtable/client.py
Outdated
| rules: ReadModifyWriteRule | list[ReadModifyWriteRule], | ||
| *, | ||
| operation_timeout: int | float | None = 60, | ||
| operation_timeout: int | float | None = 600, |
There was a problem hiding this comment.
Same here, I think we can update it to be 20 seconds to be consistent with java
| (10, 4, 14), | ||
| (MAX_INCREMENT_VALUE, -MAX_INCREMENT_VALUE, 0), | ||
| (MAX_INCREMENT_VALUE, 2, -MAX_INCREMENT_VALUE), | ||
| (-MAX_INCREMENT_VALUE, -2, MAX_INCREMENT_VALUE), |
There was a problem hiding this comment.
is this the expected behavior? 🤔 @igorbernstein2
There was a problem hiding this comment.
For what it's worth, I believe this is just documenting the overflow behavior from the backend. The client is just sending a large number and then another small increment, and retrieving the result
|
Is it possible to extend the read_modify_write and check_and_mutate row to enable retry on certain error codes in the future? |
* feat: add new v3.0.0 API skeleton (#745) * feat: improve rows filters (#751) * feat: read rows query model class (#752) * feat: implement row and cell model classes (#753) * feat: add pooled grpc transport (#748) * feat: implement read_rows (#762) * feat: implement mutate rows (#769) * feat: literal value filter (#767) * feat: row_exists and read_row (#778) * feat: read_modify_write and check_and_mutate_row (#780) * feat: sharded read rows (#766) * feat: ping and warm with metadata (#810) * feat: mutate rows batching (#770) * chore: restructure module paths (#816) * feat: improve timeout structure (#819) * fix: api errors apply to all bulk mutations * chore: reduce public api surface (#820) * feat: improve error group tracebacks on < py11 (#825) * feat: optimize read_rows (#852) * chore: add user agent suffix (#842) * feat: optimize retries (#854) * feat: add test proxy (#836) * chore(tests): add conformance tests to CI for v3 (#870) * chore(tests): turn off fast fail for conformance tets (#882) * feat: add TABLE_DEFAULTS enum for table method arguments (#880) * fix: pass None for retry in gapic calls (#881) * feat: replace internal dictionaries with protos in gapic calls (#875) * chore: optimize gapic calls (#863) * feat: expose retryable error codes to users (#879) * chore: update api_core submodule (#897) * chore: merge main into experimental_v3 (#900) * chore: pin conformance tests to v0.0.2 (#903) * fix: bulk mutation eventual success (#909) --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
This PR implements
read_modify_writeandcheck_and_mutate_rowrpcs, along with related classes