Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

feat: read_modify_write and check_and_mutate_row#780

Merged
daniel-sanche merged 62 commits into
googleapis:v3googleapis/python-bigtable:v3from
daniel-sanche:mutate_rows_other_rpcsdaniel-sanche/python-bigtable:mutate_rows_other_rpcsCopy head branch name to clipboard
Jun 16, 2023
Merged

feat: read_modify_write and check_and_mutate_row#780
daniel-sanche merged 62 commits into
googleapis:v3googleapis/python-bigtable:v3from
daniel-sanche:mutate_rows_other_rpcsdaniel-sanche/python-bigtable:mutate_rows_other_rpcsCopy head branch name to clipboard

Conversation

@daniel-sanche

@daniel-sanche daniel-sanche commented May 23, 2023

Copy link
Copy Markdown
Contributor

This PR implements read_modify_write and check_and_mutate_row rpcs, along with related classes

@product-auto-label product-auto-label Bot added the size: xl Pull request size is extra large. label May 23, 2023
@daniel-sanche daniel-sanche changed the base branch from main to v3 May 23, 2023 00:46
@product-auto-label product-auto-label Bot added the api: bigtable Issues related to the googleapis/python-bigtable API. label May 23, 2023
@product-auto-label product-auto-label Bot added size: l Pull request size is large. and removed size: xl Pull request size is extra large. labels Jun 7, 2023
@daniel-sanche daniel-sanche changed the title [DRAFT] feat: read_modify_write and check_and_mutate_row feat: read_modify_write and check_and_mutate_row Jun 8, 2023
@daniel-sanche daniel-sanche marked this pull request as ready for review June 8, 2023 00:02
@daniel-sanche daniel-sanche requested review from a team June 8, 2023 00:02
Comment thread 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,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed, but FYI I will likely be changing the timeout structure after all the rpc PRs are merged: #782

Comment thread google/cloud/bigtable/client.py Outdated
rules: ReadModifyWriteRule | list[ReadModifyWriteRule],
*,
operation_timeout: int | float | None = 60,
operation_timeout: int | float | None = 600,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this the expected behavior? 🤔 @igorbernstein2

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@mutianf

mutianf commented Jun 16, 2023

Copy link
Copy Markdown
Contributor

Is it possible to extend the read_modify_write and check_and_mutate row to enable retry on certain error codes in the future?

@mutianf mutianf left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, the retries will be added in the future #787

@daniel-sanche daniel-sanche merged commit 432d159 into googleapis:v3 Jun 16, 2023
daniel-sanche added a commit that referenced this pull request Feb 5, 2024
* 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>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

api: bigtable Issues related to the googleapis/python-bigtable API. size: l Pull request size is large.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.