Uh oh!
There was an error while loading. Please reload this page.
feat: mutate rows batching - #770
Conversation
daniel-sanche
commented
Jun 21, 2023
I added timeout configuration to the batcher init signature. Previously, it would always use the table defaults. This is part of the public API, so just wanted to make sure you saw the change in case you have thoughts |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| 20 exceptions have been encountered since the last flush, only the | ||
| first and last 10 exceptions will be stored. | ||
| """ | ||
| return self._oldest_exceptions + self._newest_exceptions |
There was a problem hiding this comment.
Do we want to make the staged exception list public? Or maybe just make a has_errors function?
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| 20 exceptions have been encountered since the last flush, only the | ||
| first and last 10 exceptions will be stored. | ||
| """ | ||
| return self._oldest_exceptions + self._newest_exceptions |
| timer_task = asyncio.create_task(timer_routine(self, interval)) | ||
| return timer_task | ||
| async def append(self, mutation_entry: RowMutationEntry): |
There was a problem hiding this comment.
Please add a TODO to return a future with the result of this mutation
| in_process_requests.append(batch_task) | ||
| # wait for all inflight requests to complete | ||
| found_exceptions = await self._wait_for_batch_results(*in_process_requests) | ||
| # allow previous flush tasks to finalize before adding new exceptions to list |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
* 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>
Blocked on #769. This PR builds off of changes from this branch
Implements
MutationsBatcherto submit mutations in the background.