Uh oh!
There was an error while loading. Please reload this page.
feat: optimize read_rows - #852
Conversation
0145f1a to
62f1bf7Compare59946f7 to
4cf4aabCompareThis reverts commit 2a82343.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| if self._remaining_count is not None: | ||
| self._remaining_count -= 1 | ||
| if self._remaining_count < 0: | ||
| raise RuntimeError("emit count exceeds row limit") |
There was a problem hiding this comment.
Should this be a more specific error? Maybe add a todo to improve it in the future
There was a problem hiding this comment.
Sure, I opened an issue to track this here: #853
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| new_gapic_stream.cancel() | ||
| raise exc | ||
| raise InvalidChunk("reset row with data") | ||
| continue |
There was a problem hiding this comment.
I think you have to reset the shared family & qualifier variables
There was a problem hiding this comment.
Those should be reset on each row iteration on L232 and L233
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>
Rewrite the row merger logic to improve throughput
This change brings us to ~75k RPS with retries, ~90 with retries disabled (retry logic will be optimized in a future PR)
Note: the idle timeout has been removed as a part of these changes. Other features are preserved
#857