Migrating to riak 2.1.4, selecting a specific multi-backend from the Java Client

Henning Verbeek hankipanky at gmail.com
Tue Aug 9 10:42:11 EDT 2016


We're slowly migrating our application from Riak KV 1.4 to Riak KV
2.1.4, and at the same time riak-java-client 1.4.x to riak-java-client
2.0.6. We are doing this by adding seven new Riak KV 2.1 nodes to the
ring, and later removing the seven Riak KV 1.4 nodes from the ring.
For a few days, the cluster will consist of a mix.

Almost everything is stored in bitcask, but for some
progress-information-items, we are using the memory backend with
automatic expiration. Thus, the multibackend is being configured
(app.config for the old nodes, riak.conf for the new nodes). In the
past, I have configured bucket properties in Java (here in
riak-java-client 2 syntax):

  Namespace ns = new Namespace(bucketName);
  StoreBucketProperties.Builder builder = new StoreBucketProperties.Builder(ns);
  builder.withBackend(backendName);
  riakClient.execute(builder.build());

Is this equivalent to specifying a bucket type?

How does a cluster behave where some nodes have the multibackend
configured (in riak.conf), and others not (because you forgot)?
What happens if you configure the multibackend afterwards? Is the
bucket with all its data being migrated? Can you detect in which
*backend* an object is located?

Thanks guys! Cheers, Henning
-- 
My other signature is a regular expression.
http://www.pray4snow.de



More information about the riak-users mailing list