Hi, I've been trying to change dvv_enabled for default bucket type. But this is impossible with riak-admin:
riak-admin bucket-type update default '{"props":{"dvv_enabled":true}}' Error updating bucket type default: no_default_update I think that workaround for this is changing default props in riak config: {riak_core, [ {default_bucket_props, [ {allow_mult, true}, {dvv_enabled, true} ]}, ... (yes, I still use old-style configs) And then I need to restart all riak nodes. Here is two questions: 1. Is this approach correct? 2. Is it ok to have different default_bucket_props value on different nodes of the same cluster (in short period of time)? I have to restart 27 riak nodes. There is several billions of keys in riak and each node starts wery slow (20-30-60 min; bitcask backend). So I can't change default_bucket_props simultaneously in a such way. I also can change this parameter in riak console, i.e. application:set_env(riak_core, default_bucket_props, [{dvv_enabled, true}, ......]). But what I need to do for applying this changes? On Wed, May 24, 2017 at 2:55 PM Vladyslav Zakhozhai < v.zakhoz...@smartweb.com.ua> wrote: > Russell, thank you for the answer. > > > Maybe one of the ex-basho support people remembers? I’ll prod one in a > back channel and see if they can help. > > It would be great. > > Thank you once more. > > On Wed, May 24, 2017 at 11:36 AM Russell Brown <russell.br...@icloud.com> > wrote: > >> Also, this issue https://github.com/basho/riak_kv/issues/1188 suggests >> that adding the property `riak_kv.retry_put_coordinator_failure=false` may >> help in future. But won’t help with your keys with too many siblings. >> >> On 24 May 2017, at 09:22, Russell Brown <russell.br...@icloud.com> wrote: >> >> > >> > On 24 May 2017, at 09:11, Vladyslav Zakhozhai < >> v.zakhoz...@smartweb.com.ua> wrote: >> > >> >> Hello, >> >> >> >> My riak cluster still experiences "too many siblings". And hinted >> handoffs are not able to be finished completely. So "siblings will be >> resolved after hinted handoffs are finished" is not my case unfortunately. >> >> >> >> According to basho's docs ( >> http://docs.basho.com/riak/kv/2.2.3/learn/concepts/causal-context/#sibling-explosion) >> I need to enable dvv conflict resolution mechanism. So here is a quesion: >> >> >> >> Is it safe to enable dvv on default bucket type and how it affects >> existing data? >> > >> > It might not affect existing data enough. All the existing siblings are >> “undotted” and would need a read-put cycle to resolve. >> > >> >> It may be a solution, is not it? >> > >> > You may require further action. I remember basho support helping >> someone with a similar issue, and there was some manual >> intervention/scripted solution, but I can’t remember what it was right now. >> I think those objects (as logged) with the sibling issues need to be read >> and resolved. Maybe one of the ex-basho support people remembers? I’ll prod >> one in a back channel and see if they can help. >> > >> >> >> >> Why I talk about default bucket type? Because there is only one riak >> client - Riak CS and it does not manage bucket types of PUT'ed object (so, >> default bucket type always is used during PUT's). Is it correct? >> > >> > Yes. >> > >> >> >> >> Thank you in advance. >> >> >> >> On Fri, Jun 17, 2016 at 11:45 AM Vladyslav Zakhozhai < >> v.zakhoz...@smartweb.com.ua> wrote: >> >> Hi Russel, >> >> >> >> thank you for your answer. I really appreciate your help. >> >> >> >> 2.1.3 is not actually riak_kv version. It is version of basho's riak >> package. Versions of riak subsystems you can see below. >> >> >> >> Bucket properties: >> >> # riak-admin bucket-type list >> >> default (active) >> >> >> >> # riak-admin bucket-type status default >> >> default is active >> >> >> >> allow_mult: true >> >> basic_quorum: false >> >> big_vclock: 50 >> >> chash_keyfun: {riak_core_util,chash_std_keyfun} >> >> dvv_enabled: false >> >> dw: quorum >> >> last_write_wins: false >> >> linkfun: {modfun,riak_kv_wm_link_walker,mapreduce_linkfun} >> >> n_val: 3 >> >> notfound_ok: true >> >> old_vclock: 86400 >> >> postcommit: [] >> >> pr: 0 >> >> precommit: [] >> >> pw: 0 >> >> r: quorum >> >> rw: quorum >> >> small_vclock: 50 >> >> w: quorum >> >> write_once: false >> >> young_vclock: 20 >> >> >> >> I did not mentioned that upgrade from riak 1.5.4 have been took place >> couple months ago (about 6 months). As I understand DVV is disabled. Is it >> safe to migrate to setting DVV from Vector Clocks? >> >> >> >> Package versions: >> >> # dpkg -l | grep riak >> >> ii riak 2.1.3-1 >> amd64 Riak is a distributed data store >> >> ii riak-cs 2.1.0-1 >> amd64 Riak CS >> >> >> >> Subsystems versions: >> >> "clique_version" : "0.3.2-0-ge332c8f", >> >> "bitcask_version" : "1.7.2", >> >> "sys_driver_version" : "2.2", >> >> "riak_core_version" : "2.1.5-0-gb02ab53", >> >> "riak_kv_version" : "2.1.2-0-gf969bba", >> >> "riak_pipe_version" : "2.1.1-0-gb1ac2cf", >> >> "cluster_info_version" : "2.0.3-0-g76c73fc", >> >> "riak_auth_mods_version" : "2.1.0-0-g31b8b30", >> >> "erlydtl_version" : "0.7.0", >> >> "os_mon_version" : "2.2.13", >> >> "inets_version" : "5.9.6", >> >> "erlang_js_version" : "1.3.0-0-g07467d8", >> >> "riak_control_version" : "2.1.2-0-gab3f924", >> >> "xmerl_version" : "1.3.4", >> >> "protobuffs_version" : "0.8.1p5-0-gf88fc3c", >> >> "riak_sysmon_version" : "2.0.0", >> >> "compiler_version" : "4.9.3", >> >> "eleveldb_version" : "2.1.10-0-g0537ca9", >> >> "lager_version" : "2.1.1", >> >> "sasl_version" : "2.3.3", >> >> "riak_dt_version" : "2.1.1-0-ga2986bc", >> >> "runtime_tools_version" : "1.8.12", >> >> "yokozuna_version" : "2.1.2-0-g3520d11", >> >> "riak_search_version" : "2.1.1-0-gffe2113", >> >> "sys_system_version" : "Erlang R16B02_basho8 (erts-5.10.3) [source] >> [64-bit] [smp:4:4] [async-threads:64] [kernel-poll:true] [frame-pointer]", >> >> "basho_stats_version" : "1.0.3", >> >> "crypto_version" : "3.1", >> >> "merge_index_version" : "2.0.1-0-g0c8f77c", >> >> "kernel_version" : "2.16.3", >> >> "stdlib_version" : "1.19.3", >> >> "riak_pb_version" : "2.1.0.2-0-g620bc70", >> >> "syntax_tools_version" : "1.6.11", >> >> "goldrush_version" : "0.1.7", >> >> "ibrowse_version" : "4.0.2", >> >> "mochiweb_version" : "2.9.0", >> >> "exometer_core_version" : "1.0.0-basho2-0-gb47a5d6", >> >> "ssl_version" : "5.3.1", >> >> "public_key_version" : "0.20", >> >> "pbkdf2_version" : "2.0.0-0-g7076584", >> >> "sidejob_version" : "2.0.0-0-gc5aabba", >> >> "webmachine_version" : "1.10.8-0-g7677c24", >> >> "poolboy_version" : "0.8.1p3-0-g8bb45fb", >> >> "riak_api_version" : "2.1.2-0-gd8d510f", >> >> "asn1_version" : "2.0.3", >> >> >> >> >> >> On Fri, Jun 17, 2016 at 10:45 AM Russell Brown <russell.br...@me.com> >> wrote: >> >> What version of riak_kv is behind this riak_cs install, please? Is it >> really 2.1.3 as stated below? This looks and sounds like sibling explosion, >> which is fixed in riak 2.0 and above. Are you sure that you are using the >> DVV enabled setting for riak_cs bucket properties? Can you post your bucket >> properties please? >> >> >> >> On 16 Jun 2016, at 23:54, Vladyslav Zakhozhai < >> v.zakhoz...@smartweb.com.ua> wrote: >> >> >> >>> Hello. >> >>> >> >>> I see very interesting and confusing thing. >> >>> >> >>> From my previous letter you can see that siblings count on manifest >> objects is about 100 (actualy it is in range 100-300). Unfortunately my >> problem is that almost all PUT requests are failing with 500 Internal >> Server error. >> >>> >> >>> I've tried today set max_siblings riak option to 500. And there were >> successfull PUT requests but not for long. Now I see in riak logs error >> with "max siblings", but actual count of them is 500+ (earlier it was >> 100-300 as I've mentioned). >> >>> >> >>> Period of time between max_siblings=500 and errors in log is about 30 >> minutes. And I want to point your attention that I've forbid PUT method on >> haproxy - frontend for riak cs. >> >>> >> >>> >> >>> >> >>> On Mon, Jun 6, 2016 at 1:17 AM Vladyslav Zakhozhai < >> v.zakhoz...@smartweb.com.ua> wrote: >> >>> Hi, Luke. >> >>> >> >>> Thank you for your answer. I did not understand you completely about >> transfer-limit. How does it relate to my problem. Transfer limit - is a >> limit of concurrent data transfer from different nodes. Am I wright? You >> mean that riak can handoff one partition from several nodes concurrently? >> >>> >> >>> Now I have transfer-limit 1 on all riak nodes. >> >>> >> >>> But I am not sure that my cluster will be converged ever. All nodes >> experiences low memory and are killed by OOM Killer periodically. I try to >> add new nodes to the cluster but due problem with OOM killer this process >> is very-very slow. >> >>> >> >>> In the official docs I've read: >> >>> >> >>> "Sibling explosion occurs when an object rapidly collects siblings >> that are not reconciled. This can lead to a variety of problems, including >> degraded performance, especially if many objects in a cluster suffer from >> siblings explosion. At the extreme, having an enormous object in a node can >> cause reads of that object to crash the entire node. Other issues include >> undue latency and out-of-memory errors." >> >>> >> >>> I mentioned that new nodes in the cluster do not experience such >> problems (I mean out of RAM). >> >>> >> >>> Regarding to siblings maybe your are right, this is manifest object. >> I can recognize key name but not bucket name. But more than 100 siblings on >> many keys is really confused me. Each time I try to PUT some object to Riak >> via Riak CS S3 interface I got errors with siblings. >> >>> >> >>> On Fri, Jun 3, 2016 at 6:43 PM Luke Bakken <lbak...@basho.com> wrote: >> >>> Hi Vladyslav, >> >>> >> >>> If you recognize the full name of the object raising the sibling >> >>> warning, it is most likely a manifest object. Sometimes, during hinted >> >>> handoff, you can see these messages. They should resolve after handoff >> >>> completes. >> >>> >> >>> Please see the documentation for the transfer-limit command as well: >> >>> >> >>> >> http://docs.basho.com/riak/kv/2.1.4/using/admin/riak-admin/#transfer-limit >> >>> >> >>> -- >> >>> Luke Bakken >> >>> Engineer >> >>> lbak...@basho.com >> >>> >> >>> >> >>> On Fri, Jun 3, 2016 at 2:55 AM, Vladyslav Zakhozhai >> >>> <v.zakhoz...@smartweb.com.ua> wrote: >> >>>> Hi. >> >>>> >> >>>> I have a trouble with PUT to Riak CS cluster. During this process I >> >>>> periodically see the following message in Riak error.log: >> >>>> >> >>>> 2016-06-03 11:15:55.201 [error] >> >>>> <0.15536.142>@riak_kv_vnode:encode_and_put:2253 Put failure: too many >> >>>> siblings for object OBJECT_NAME (101) >> >>>> >> >>>> and also >> >>>> >> >>>> 2016-06-03 12:41:50.678 [error] >> >>>> <0.20448.515>@riak_api_pb_server:handle_info:331 Unrecognized message >> >>>> {7345880,{error,{too_many_siblings,101}}} >> >>>> >> >>>> Here OBJECT_NAME - is the name of object in Riak which has too many >> >>>> siblings. >> >>>> >> >>>> I definitely sure that this objects are static. Nobody deletes is, >> nobody >> >>>> rewrites it. I have no idea why more than 100 siblings of this object >> >>>> occurs. >> >>>> >> >>>> The following effect of this issue occurs: >> >>>> >> >>>> Great amount of keys are loaded to RAM. I almost out of RAM (Do each >> sibling >> >>>> has it own key or key duplicate?). >> >>>> Nodes are slow - adding new nodes are too slow >> >>>> Presence of "too many siblings" affects ownership handoffs >> >>>> >> >>>> So I have several questions: >> >>>> >> >>>> Do hinted or ownership handoffs can affect siblings count (I mean can >> >>>> siblings be created during ownership of hinted handoffs) >> >>>> Is there any workaround of this issue. Do I need remove siblings >> manually or >> >>>> it removes during merges, read repairs and so on >> >>>> >> >>>> >> >>>> My configuration: >> >>>> >> >>>> riak from basho's packages - 2.1.3-1 >> >>>> riak cs from basho's packages - 2.1.0-1 >> >>>> 24 riak/riak-cs nodes >> >>>> 32 GB RAM per node >> >>>> AAE is disabled >> >>>> >> >>>> >> >>>> I appreciate you help. >> >>>> >> >>>> _______________________________________________ >> >>>> riak-users mailing list >> >>>> riak-users@lists.basho.com >> >>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >> >>>> >> >>> _______________________________________________ >> >>> riak-users mailing list >> >>> riak-users@lists.basho.com >> >>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >> >> >> >> _______________________________________________ >> >> riak-users mailing list >> >> riak-users@lists.basho.com >> >> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >> > >> > >> > _______________________________________________ >> > riak-users mailing list >> > riak-users@lists.basho.com >> > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >> >>
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com