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.

Guido.

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 <[email protected]> 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){
       destBucket.store(riakObject).withoutFetch().execute();
     }
   }


Regards,

Guido.
_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com


_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to