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

storage: measure/optimize intent resolution #7503

Closed
tbg opened this issue Jun 28, 2016 · 1 comment
Closed

storage: measure/optimize intent resolution #7503

tbg opened this issue Jun 28, 2016 · 1 comment
Labels
C-investigation Further steps needed to qualify. C-label will change. C-performance Perf of queries or internals. Solution not expected to change functional behavior.
Milestone

Comments

@tbg
Copy link
Member

tbg commented Jun 28, 2016

When operations on a Range encounter intents which they manage to push (see also #627), they propose ResolveIntent operations to Raft (which in turn either proposes them directly, or relays to the leader).

It's wasteful to propose individual commands like that, especially if there are a lot of them. There are two immediate optimizations that come to mind:

  • bundle various intent resolutions into one command and
  • even better, let these bundles piggy-back on existing Raft traffic.

This should be possible because there's no client waiting at the sending end of an intent resolution, and so it can be carried out as a "best effort", the result of the Raft command being whatever it would be without the attempt at (separately) resolving the intents.

This is written for a pre-leader-proposed-Raft world, but translates over.

We don't have definitive evidence that intent resolution is a problem, but it's obvious that it clogs Raft for certain transactional workloads since one write = one intent (or even \infinity intents for range deletes) in some scenarios, and timeouts during intent resolution are commonly observed on even moderately busy clusters, and since we put back-pressure in this path, it may lead to all sorts of issues.

Measuring the amount of intent resolution traffic appropriately is a good first step.

@petermattis petermattis modified the milestone: Q3 Jul 11, 2016
@petermattis petermattis added the C-performance Perf of queries or internals. Solution not expected to change functional behavior. label Jul 11, 2016
@spencerkimball spencerkimball added the C-investigation Further steps needed to qualify. C-label will change. label Apr 3, 2017
@spencerkimball
Copy link
Member

Closing as merely speculative.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-investigation Further steps needed to qualify. C-label will change. C-performance Perf of queries or internals. Solution not expected to change functional behavior.
Projects
None yet
Development

No branches or pull requests

3 participants