Hello, Here is the sequence of commands:
--Compiled Riak with "make rel" and riak-erlang-client with “make". Erlang version R16B02; using the latest version on GitHub or the riak2.0.0.5pre package. ./bin/riak stop --changed the consensus flag to true on ./etc/riak.conf ./bin/riak start .bin//riak-admin bucket-type create bucket '{"props": {"consistent": true}}' ./bin/riak-admin bucket-type activate bucket ./bin/riak stop ./bin/riak start on a erlang console, initialized with: ./erts-5.10.3/bin/erl -pa ../riak-erlang-client/ebin ../riak-erlang-client/deps/*/ebin f(Pid), {ok, Pid} = riakc_pb_socket:start_link("localhost", 8087). NewA = riakc_obj:new(<<"bucket">>, <<"key">>, <<"my binary data">>). NewB = riakc_obj:new(<<"bucket">>, <<"key">>, <<"my other binary data">>). riakc_pb_socket:put(Pid, NewA, [return_body]). {ok,{riakc_obj,<<"bucket">>,<<"key">>, <<107,206,97,96,96,96,204,96,202,5,82,28,202,156,255,126, 6,245,74,255,202,96,74,...>>, [{{dict,2,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],...}, {{[],[],[],[],[],[],[],[],[],[],...}}}, <<"my binary data">>}], undefined,undefined}} 5> riakc_pb_socket:put(Pid, NewB, [return_body]). {ok,{riakc_obj,<<"bucket">>,<<"key">>, <<107,206,97,96,96,96,204,96,202,5,82,28,202,156,255,126, 6,245,74,255,202,96,74,...>>, [{{dict,2,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],[],...}, {{[],[],[],[],[],[],[],[],[],[],...}}}, <<"my binary data">>}, {{dict,2,16,16,8,80,48, {[],[],[],[],[],[],[],[],[],[],[],...}, {{[],[],[],[],[],[],[],[],[],...}}}, <<"my other binary data">>}], undefined,undefined}} bin/riak-admin bucket-type status bucket bucket is active young_vclock: 20 w: quorum small_vclock: 50 rw: quorum r: quorum pw: 0 precommit: [] pr: 0 postcommit: [] old_vclock: 86400 notfound_ok: true n_val: 3 linkfun: {modfun,riak_kv_wm_link_walker,mapreduce_linkfun} last_write_wins: false dw: quorum consistent: true chash_keyfun: {riak_core_util,chash_std_keyfun} big_vclock: 50 basic_quorum: false allow_mult: true active: true claimant: 'riak@127.0.0.1 bin/riak-admin bucket-type list bucket (active) No dia 20/11/2013, às 17:23, Jordan West <jw...@basho.com> escreveu: > Hi Valter, > > Could you provide the code you are using to generate the concurrent requests > in addition to the output of `riak-admin bucket-type list` and `riak-admin > bucket-type status <buckettype>` where <buckettype> is the name of the > strongly consistent bucket you created (from one node should be sufficient)? > I've been using this feature in a personal project and just tested on a local > cluster using curl and was unable to reproduce (the cluster was a bit behind > develop but there have been no recent changes to the feature). > > Cheers, > Jordan > > > On Wed, Nov 20, 2013 at 5:30 AM, Valter Balegas <bale...@gmail.com> wrote: > Hello, > > I was able to activate strong consistency, but the node keeps generating > siblings, when i execute two concurrent writes (Store two objects without > vector clock). > I tried with the Riak 2.0.0.5pre package and the latest version on the > repository. Am i missing anything? i was expecting operations to fail, in > this case. > > It seems that the error was caused by my Erlang version. The creation of the > bucket type didn’t fail with R16B02. > > Valter > > No dia 20/11/2013, às 03:13, Jordan West <jw...@basho.com> escreveu: > >> Valter, >> >> You mentioned you are using a recent develop. Would you be able to pull down >> any recent changes and update-deps (or build a fresh devrel)? I just tried a >> fresh clone of develop and was unable to reproduce the same error. I, also, >> tried with R15B01 (Riak 2.0 is slated to use R16B02 right now). >> >> Alternatively, you should be able to workaround this by doing a `riak >> attach-direct` and defining the atom at the erlang shell: >> >> 1> consistent. >> consistent >> >> Jordan >> >> >> On Tue, Nov 19, 2013 at 3:06 PM, Valter Balegas <bale...@gmail.com> wrote: >> I can’t create the bucket type: >> >> RPC to 'riak@127.0.0.1' failed: {'EXIT', >> {badarg, >> [{erlang,list_to_existing_atom, >> ["consistent"], >> []}, >> {riak_kv_wm_utils,erlify_bucket_prop,1, >> [{file,"src/riak_kv_wm_utils.erl"}, >> {line,393}]}, >> {riak_kv_console, >> '-bucket_type_create/2-lc$^0/1-0-',1, >> [{file,"src/riak_kv_console.erl"}, >> {line,483}]}, >> {riak_kv_console,bucket_type_create,2, >> [{file,"src/riak_kv_console.erl"}, >> {line,483}]}, >> {rpc,'-handle_call_call/6-fun-0-',5, >> [{file,"rpc.erl"},{line,203}]}]}} >> >> I activated the consensus in riak.conf in the etc dir (find command seems >> not to find the pattern anywhere else). >> Is there any other way to create the bucket? >> >> Valter >> >> No dia 19/11/2013, às 18:10, Jordan West <jw...@basho.com> escreveu: >> >>> On Tue, Nov 19, 2013 at 7:33 AM, Valter Balegas <bale...@gmail.com> wrote: >>> >>> Strong consistency: >>> How does one activate this? As i understand, either the pb or the http >>> clients do not accept the consistent property. >>> >>> >>> Using strong consistency in the Tech Preview is a two-step process. First, >>> turn on the feature in your riak.conf (the following command assumes you >>> are using a devrel): >>> >>> for d in dev/dev*; do sed -e 's/## enable_consensus = true/enable_consensus >>> = true/' -i $d/etc/riak.conf; done >>> >>> Then re(start) the cluster. >>> >>> With the enable_consensus=true un-commented and the cluster running create >>> a strongly consistent bucket type: >>> >>> riak-admin bucket-type create <type name> '{"props": {"consistent": true}}' >>> riak-admin bucket-type activate <type name> >>> >>> You can create and activate the bucket type without having >>> enabled_consensus=true but both must be done to work with strongly >>> consistent data. >>> >>> Once that is done you can make requests, just like you would to eventually >>> consistent data in Riak, but the semantics will be different. For example, >>> if you make two PUT requests to the same key, w/ no vector clock*, the >>> second request will fail because the data already exists. More details on >>> semantics of strongly consistent requests can be found in this PR: >>> https://github.com/basho/riak_kv/pull/710 >>> >>> Hope that helps get you started, >>> >>> Jordan >>> >>> * in strong consistency, the "vector clock" is not really a vector clock. >>> its called such for familiarity, but like any real vector clock exposed to >>> the client, should be treated like an opaque context. >>> >>> Details about my environment: >>> -I’m running Mac OSX 10.9 >>> -Erlang R15B01 >>> -Compiling riak “develop” branch, from basho github >>> -Compiling riak-erlang-client “master” branch, from basho github. >>> -recompiled the latest versions of the branches just before writing this >>> email. >>> >>> >>> Thank you for your help, >>> Valter >>> >>> >>> >>> _______________________________________________ >>> 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