Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement ReadRows retries #9

Open
jscott22 opened this issue Feb 10, 2019 · 0 comments
Open

Implement ReadRows retries #9

jscott22 opened this issue Feb 10, 2019 · 0 comments
Assignees
Labels
enhancement New feature or request
Projects

Comments

@jscott22
Copy link
Contributor

If you plan on implementing retries, here are a few things to watch out for:

  • For ReadRows make sure to track both the last merged row key and the last_scanned_row_key. So that you can skip over any filtered out rows on stream resumption
  • There is a gotcha with ServerStreaming RPCs, where they can send all of their data but return an error status code. This is particularly dangerous with ReadRows, where if you aren't careful the resumption request can end up being empty triggering a full table scan.
  • Try to avoid using serverside timestamps. They prevent mutations from being idempotent

In terms of default timeouts and retry counts, I would recommend to track gapic configs.

Unfortunately, since I'm not familiar with elixir, I don't have anything more specific. If you have any further questions, feel free to ping me.

Originally posted by @igorbernstein2 in #8 (comment)

@jscott22 jscott22 added the enhancement New feature or request label Feb 10, 2019
@jscott22 jscott22 self-assigned this Feb 10, 2019
@jscott22 jscott22 added this to To do in Roadmap to 1.0.0 Feb 10, 2019
@jscott22 jscott22 removed this from To do in Roadmap to 1.0.0 Feb 10, 2019
@jscott22 jscott22 added this to To do in 1.0.0+ via automation Feb 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
1.0.0+
  
To do
Development

No branches or pull requests

1 participant