Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Missing query: best possible value #534

Open
macintux opened this Issue · 0 comments

2 participants

@macintux
Collaborator

I discovered tonight that there is a gap in our query support: there's no way to ask Riak for the best possible value in a single request.

R=quorum runs the risk that the 3rd vnode to reply has a fresher value than the first 2 vnodes.

R=N runs the risk that one of the vnodes returns an error and the entire query fails.

As @Vagabond pointed out, errors are fairly uncommon, but notfound_ok=false clearly adds to the number of errors received.

@bsparrow435 had one suggestion, that along the lines of notfound_ok we create an error_ok parameter.

I have an alternate idea, but it may be significantly more work: allow a lower and upper range for R and W (and perhaps the other PR/PW/DW parameters as well).

So R={2,3} would be interpreted as "wait for 3 vnodes to get the best value, but if you can only get a response from 2, I can live with that."

This would be enhanced by the fsm timeout functionality targeted for 1.4, so the client can ask for "best possible answer within the specified time limit".

This is also related to an idea that @jonmeredith mentioned in the Engineering chat a few days ago, that notfound messages could carry more weight when returned by primary vnodes, or more accurately not be considered canonical when returned by secondary vnodes.

@jtuple jtuple added this to the 2.1 milestone
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.