You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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 anerror_ok
parameter.I have an alternate idea, but it may be significantly more work: allow a lower and upper range for
R
andW
(and perhaps the otherPR/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.The text was updated successfully, but these errors were encountered: