Bucket properties not updated
jeremiah.peschka at gmail.com
Wed Oct 9 15:42:49 EDT 2013
Could this be a duplicate of bug 660?
I can reliably reproduce this on a local 5 node stagedevrel cluster on Riak
1.4.2 and develop.
Jeremiah Peschka - Founder, Brent Ozar Unlimited
MCITP: SQL Server 2008, MVP
Cloudera Certified Developer for Apache Hadoop
On Wed, Oct 9, 2013 at 12:35 PM, Daniel Iwan <iwan.daniel at gmail.com> wrote:
> Thank for reply.
> The thing is that bucket never converges. The allow_mult remains false
> even several minutes after handoff had finished.
> I don't know whether it's because properties get overwritten by defaults
> during gossip or it's because message from client(s) never reaches Riak.
> This situation is potentially very dangerous for us. As I have no way of
> checking if allow_mult has incorrect value (Riak client returns true)
> it simply means write loss during updates.
> Is there a way to debug what's happening or check what's in the ring?
> Daniel Iwan
> On 9 October 2013 20:08, Joe Caswell <jcaswell at basho.com> wrote:
>> Custom (i.e. non-default) bucket properties are currently stored in the
>> ring. Once you set a bucket property on one node, the updated ring must be
>> gossiped to the other nodes. I assume by 'vnode transfer' you mean
>> handoff. An ownership handoff would also generate changes to the ring
>> which need to be gossiped, and so could slow the propagation of the bucket
>> data. If you are setting bucket properties at multiple nodes
>> simultaneously, there will be additional steps to resolve the change in
>> order for the ring to converge. If all nodes are online and reachable, the
>> change should complete very quickly (I would consider 1 second somewhat
>> Joe Caswell
>> From: Daniel Iwan <iwan.daniel at gmail.com>
>> Date: Wednesday, October 9, 2013 7:39 AM
>> To: "riak-users at lists.basho.com" <riak-users at lists.basho.com>
>> Subject: Bucket properties not updated
>> With Java client 1.1.3 and Riak 1.3.1
>> I'm doing:
>> WriteBucket wb =
>> Bucket b = wb.execute();
>> _logger.fine("Regular bucket: " + bucket + ", allows siblings? " +
>> DomainBucketBuilder< MyObjectInRiak > builder =
>> DomainBucket.builder(bucket, MyObjectInRiak.class);
>> with custom resolver, mutator and converter.
>> This code runs on 3 servers at the same time during a test and I know
>> Riak db is empty
>> and bucket BUCKET_NAME does not exist.
>> log shows that all 3 servers see allowSibbling set to true, but
>> occasionally test fails and curl shows allow_multi is false on that bucket!
>> Is there any delay, race condition etc in Riak, or client library. that
>> would explain why that bucket property is not set?
>> During a test vnode transfer occurs but that should not matter I guess?
>> _______________________________________________ riak-users mailing list
>> riak-users at lists.basho.com
> riak-users mailing list
> riak-users at lists.basho.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the riak-users