Riak 1.4.12 and siblings

Henning Verbeek hankipanky at gmail.com
Mon Dec 22 06:03:34 EST 2014


We're using a number of Riak 1.4 nodes in a cluster. In front of it is
our java-based "Storage-Backend" (our own version of Riak-CS, custom
built to our requirements), which connects to localhost Riak. The Riak
nodes are linked over IPSec-links. All of this is running on cheap
commodity hardware, and thanks to the nature of Riak we can deal with
node failures. We're learning to embrace the concept of enventual
consistency and are using conflict resolvers to deal with siblings.

Recently we upgraded from 1.4.10 to 1.4.12, and we're having the
impression that this version performs worse. The rate of sibling
creation feels much higher (but I don't have solid data to back this
up).

We've also noticed a few occasions where our conflict resolver was
unable to do its job. Manual investigation showed that an object had
siblings with *identical vtags*, but only sometimes!! From memory,
this is what happened:

- Storage-Backend throws Unresolved Conflict Exception with object
"abc123" of bucket "chunks"
- Repeatedly issuing 'curl --head
http://localhost:8087/buckets/chunks/keys/abc123' returns half the
time HTTP 200 and half the time HTTP 300
- When getting the HTTP 300 response, the output of  'curl
http://localhost:8087/buckets/chunks/keys/abc123' was something like
this:
Siblings:
4BaLvqdDSd8qYicDsn3DS4
4BaLvqdDSd8qYicDsn3DS4

The solution was to manually retrieve the object (specifying the vtag)
and uploading it again (specifying the Vclock).


My questions:
- Is anyone else experiencing similar issues, maybe even with 1.4.12?
- Is it possible (or even worthwhile) to downgrade to 1.4.10?

Thanks a bunch!
Cheers,
Henning




More information about the riak-users mailing list