Skip to content

Implement ReadRows retries #9

Description

@jscott22

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)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions