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

Alex Moore amoore at basho.com
Tue Aug 9 14:47:43 EDT 2016


Hey Henning,

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):

...

> Is this equivalent to specifying a bucket type?


Not exactly, that code will set the backend for that bucket, which is in
the default bucket type.
If you need to specify a bucket-type, it's just an extra parameter on the
Namespace ctor:

Namespace ns = new Namespace(bucketType, bucketName);

If you'd like everything in a bucket-type to be on the memory backend, you
should be able to specify that backend in the bucket type properties when
creating it with riak-admin. The bucket type'd namespace wont' be available
to the old Riak nodes though :/


 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?


Anything without the multibackend config should automatically save/load to
whatever the configured (or default) backend is.   If you configure it
afterwards, the data won't be available b/c it's on a backend it's now not
configured for.

If you need to move it, it's possible to use Multi-backend + a temp bucket
to move the data from the old backend to the new one - it's a bit of a
procedure though.

Thanks,
Alex


On Tue, Aug 9, 2016 at 10:42 AM, Henning Verbeek <hankipanky at gmail.com>
wrote:

> 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
>
> _______________________________________________
> riak-users mailing list
> riak-users at lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20160809/fb748dcb/attachment-0002.html>


More information about the riak-users mailing list