Skip to content

Instantly share code, notes, and snippets.

@PharkMillups
Created January 14, 2011 22:07
Show Gist options
  • Save PharkMillups/780363 to your computer and use it in GitHub Desktop.
Save PharkMillups/780363 to your computer and use it in GitHub Desktop.
15:15 <jiboumans> i just noticed somethign really strange: i do a get on a key, get a 404.
this key was previously returned from a listkeys operation, so i know it's htere. I do the get *again* and it
returns the object: http://pastebin.com/3T561WAF. what bizarre issue am i running into?
15:16 <jiboumans> the only thing I can think is special about this setup is that this node is normally
in a cluster of 4, but the other 3 instances do not have riak running at the moment
15:16 <seancribbs> jiboumans: read-repair
15:16 <jiboumans> seancribbs: i dont know what that means. is this some riak-admin command?
15:16 <seancribbs> it probably had one copy, but the two fallback partitions
returned not-found the first time
15:17 <seancribbs> then read-repair caused the fallbacks to be populated with the value
15:17 <seancribbs> so your second read got the value
15:17 <seancribbs> not founds are much quicker to return than a whole value
15:17 <jiboumans> why is it acting like this?
15:17 <jiboumans> seancribbs: they're also wrong :)
15:18 <seancribbs> they're not wrong. the default R quorum is 2.
15:18 <seancribbs> once it finds that it can't satisfy the quorum, not found is the appropriate response
15:18 <jiboumans> so with r=1 i should get the answer?
15:18 <seancribbs> in this case, no
15:19 <jiboumans> i'm afraid i dont understand
15:19 <seancribbs> because there's an optimization in there to return "not found"
faster… in the case where R=1, it could take a long time to return a not-found response
15:19 <seancribbs> so "basic quorum" (N/2+1) kicks in at that point
15:20 <seancribbs> sorry that it's a bit confusing
15:20 <jiboumans> ok, every key in my store has this problem. what causes this?
15:20 <seancribbs> downed nodes
15:20 <jiboumans> is it the fact that the 3 other nodes are not there, or is it... right
15:20 <* jiboumans> starts another node
15:20 <seancribbs> there might even be some keys that don't exist on the one up node
15:21 <seancribbs> and they would always return not found as long as those nodes are down and
the value hasn't been rewritten
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment