On 10/04/13 02:20, Reid Draper wrote:
I'd like to point out that changing backends and n-val on the fly is usually
Not A Good Idea. Neither of these are things we test, nor advise. In both
cases, they can leave data that is never deleted or cleaned up. Unless you have
a really good reason for doing this, I'd strongly advise against it.
In my case, I'm looking to just set the backend/n_val once at the start
and then leave them there. However I wasn't sure if this was actually
taking effect or not without restarting the nodes, based on the
documentation. But then my comment below was using the disappearance of
keys as proof that things had changed.
Thanks for your feedback though, I'll make to keep that in mind.
Toby
Reid
On Apr 4, 2013, at 10:42 PM, Toby Corkindale
<[email protected]> wrote:
Answering my own question again, but hopefully that saves you time.
So, it appears that if a backend is changed via the JSON REST API, then all
keys from the previous backend are now inaccessible. I think this also
indicates that now the new backend is in use immediately, without any restarts
required.
May I suggest that the wording on the API Reference page is improved? Both I
and a colleague misunderstood it to mean that *any* change of backend required
a restart.
Cheers,
Toby
On 05/04/13 11:27, Toby Corkindale wrote:
Hi Jared,
I'm afraid I am still a little confused after reading your reply, so I'd
like to check something.
If I understand correctly, the reboot of nodes is only required if the
default settings in app.config are changed, and one can change anything
else on-the-fly?
So therefore, in the following scenario, I could issue these commands
and never need to reboot any nodes?
Riak backend = Multi, with Bitcask (default) and Leveldb.
PUT /buckets/myBucket/myKey
# Key is stored in Bitcask
PUT /buckets/myNewBucket/props
{ backend: Leveldb }
PUT /buckets/myBucket/myOtherKey
# Key is stored in Leveldb backend
If I change the backend, do I lose any keys that were previously
available in the original backend or are they migrated? (I'd expect to
lose them)
Thanks for your patience,
Toby
On 05/04/13 00:51, Jared Morrow wrote:
Toby,
That particular page is talking about changing the default settings of
the backend of a bucket. In that specific case, if you want to change
the default behavior in your app.config file a restart is necessary.
One particularly important detail there is you don't need to restart
*all* nodes at the same time. Restarting one node at a time is
sufficient and recommended so you don't have any cluster downtime.
For setting common bucket properties, you do not need to restart the
node. If you want to change the n_val of a bucket for instance, you can
just change it from your client on all nodes. That page explains at the
bottom how to set them on the erlang console or curl, but most people
use their chosen client to set bucket properties before writing values.
Here is an example using the Java Client
http://docs.basho.com/java/latest/cookbooks/buckets/. In general it
doesn't matter if your client supports HTTP or protocol buffers, both
API's support bucket
property changes.
Hope that helps,
Jared
On Wed, Apr 3, 2013 at 10:14 PM, Toby Corkindale
<[email protected]
<mailto:[email protected]>> wrote:
Hi,
According to the docs at the following URL, it is necessary to
reboot all Riak nodes after setting the bucket property for backend.
This seems really drastic, and we'd like to avoid having to do this!
See:
http://docs.basho.com/riak/1.__3.0/tutorials/choosing-a-__backend/Multi/
<http://docs.basho.com/riak/1.3.0/tutorials/choosing-a-backend/Multi/>
I wondered if the restart of the whole cluster can be avoided?
Perhaps we could set the bucket properties prior to setting any keys
within it?
_______________________________________________
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