Skip to content

Instantly share code, notes, and snippets.

@russelldb
Created August 28, 2013 16:44
Show Gist options
  • Save russelldb/6368223 to your computer and use it in GitHub Desktop.
Save russelldb/6368223 to your computer and use it in GitHub Desktop.
What should happen? Looks correct, but weird, no?
{set,{var,1},{call,crdt_statem_eqc,create,[riak_dt_multi]}},
{set,{var,2},
{call,crdt_statem_eqc,merge,[riak_dt_multi,{0,{var,1}},{0,{var,1}}]}},
{set,{var,3},
{call,crdt_statem_eqc,merge,[riak_dt_multi,{0,{var,2}},{0,{var,2}}]}},
{set,{var,4},
{call,crdt_statem_eqc,update,
[riak_dt_multi,
{update,[{update,{<<>>,riak_dt_vvorset},{add_all,[]}}]},
{0,{var,3}}]}},
{set,{var,5},
{call,crdt_statem_eqc,update,
[riak_dt_multi,
{update,[{update,{<<>>,riak_dt_vvorset},{add,2}},
{remove,{<<>>,riak_dt_vvorset}}]},
{0,{var,4}}]}},
{set,{var,6},
{call,crdt_statem_eqc,update,
[riak_dt_multi,
{update,[{update,{<<>>,riak_dt_vvorset},{remove,2}}]},
{0,{var,5}}]}}]
which is:
48> M = riak_dt_multi:new().
{{[],[]},[]}
49> {ok, M2} = riak_dt_multi:update({update,[{update,{<<>>,riak_dt_vvorset},{add_all,[]}}]}, a, M).
{ok,{{[{a,1}],[{{<<>>,riak_dt_vvorset},{1,[{1,1}]}}]},
[{{<<>>,riak_dt_vvorset},{[],[]}}]}}
54> riak_dt_multi:value(M2).
[{{<<>>,riak_dt_vvorset},[]}]
56> {ok, M3} = riak_dt_multi:update( {update,[{update,{<<>>,riak_dt_vvorset},{add,2}},
56> {remove,{<<>>,riak_dt_vvorset}}]},a, M2).
{ok,{{[{a,1}],[{{<<>>,riak_dt_vvorset},{0,[{1,2}]}}]},
[{{<<>>,riak_dt_vvorset},{[{a,1}],[{2,{0,[{1,1}]}}]}}]}}
57> riak_dt_multi:value(M3).
[]
58> {ok, M4} = riak_dt_multi:update({update,[{update,{<<>>,riak_dt_vvorset},{remove,2}}]}, a, M3).
{ok,{{[{a,1}],[{{<<>>,riak_dt_vvorset},{1,[{1,3}]}}]},
[{{<<>>,riak_dt_vvorset},{[{a,1}],[{2,{0,[{1,1}]}}]}}]}}
59> riak_dt_multi:value(M4).
[{{<<>>,riak_dt_vvorset},[]}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment