Copying counters from cluster A to B using Java client.

Guido Medina guido.medina at
Wed Jan 29 07:55:52 EST 2014

Got it, do a counter fetch (CounterObject) from source which internally 
does the sibling resolution,  do a counter fetch from dest and increase 
that counter by source-dest (if dest is null then 0) :D

I wish I could setCounter(n) instead of increase (only in this case) to 
avoid extra fetch.


On 29/01/14 11:44, Russell Brown wrote:
> Oh damn, wait. You said 1.4.*. There might, therefore be siblings, do a counter increment before the copy to ensure siblings are resolved (if you can.) Or use RiakEE MDC.
> On 29 Jan 2014, at 11:27, Guido Medina <guido.medina at> wrote:
>> Hi,
>> We are using Riak Java client 1.4.x and we want to copy all counters from cluster A to cluster B (all counters will be stored on a single to very few buckets), if I list the keys using special 2i bucket index and then treat each key as IRiakObject, will that be enough to copy counters, or will counter siblings stop me from doing that? Since at Riak Java client CounterObject is not an IRiakObject, it is instead an operation.
>> Comments at a working method:
>> Source bucket: Bucket from Riak client pointing to source cluster.
>> Dest bucket: Bucket from Riak client pointing to dest bucket.
>>    protected void copyOneItem(final Bucket sourceBucket, final Bucket destBucket, final String key) throws RiakRetryFailedException
>>    {
>>      final IRiakObject riakObject=sourceBucket.fetch(key).execute();
>>      if(riakObject!=null){
>>      }
>>    }
>> Regards,
>> Guido.
>> _______________________________________________
>> riak-users mailing list
>> riak-users at

More information about the riak-users mailing list