Riak_ensemble implementation

Sargun Dhillon sargun at sargun.me
Tue Mar 8 21:45:21 EST 2016


Riak_kv sits atop riak_ensemble, which is a multipaxos implementation.

On Tue, Mar 8, 2016 at 6:41 PM, Agung Laksono <agung.laksono at surya.ac.id> wrote:
> Thank you for answering the question.
>
> @Sargun: Right now, I'm interested in testing Riak-ensemble
> with a distributed model checker like SAMC. In the cluster membership
> in the documentation, I found steps to activate a cluster, add a node,
> create an ensemble. However, is there any example to implement those
> processes?
>
> And one more question: Does Riak-kv implement multi-paxos or paxos-like
> protocols?
>
> Actually, my target is so simple, I just need to be able to put some
> key-value by
> executing the multi-paxos.
>
> On Tue, Mar 8, 2016 at 11:39 PM, Sargun Dhillon <sargun at sargun.me> wrote:
>>
>> If you want to learn to use riak_ensemble the library, the
>> documentation that Joe put together (and others)
>> https://github.com/basho/riak_ensemble/blob/develop/doc/Readme.md
>>
>> There's real world usage of the code here:
>> -https://github.com/basho/riak_kv/blob/develop/src/riak_kv_ensembles.erl
>>
>> Basically as a user, you have to create the root ensemble, add all
>> your nodes to it, and then create your individual, "sub-ensembles".
>>
>> You need to implement a backend, and this is a rough sketch of one:
>>
>> https://github.com/basho/riak_ensemble/blob/develop/src/riak_ensemble_basic_backend.erl
>>
>> Due the design of Riak ensemble, and the fact that's it's effectively
>> a bunch of individual vertical Paxos group in conjunction with its
>> usage of single decree, over multi-decree paxos it has some
>> interesting fault-recovery semantics. An example of this is the
>> adjustable paranoia level -- it has some strong failure-recovery
>> semantics, so in the highest paranoia mode, if you have 5 nodes, and
>> one fails. When that node comes back, it will have to sync with 3/5 of
>> the other nodes to be considered good to go.
>>
>> Even with this, riak ensemble is a pretty easy, fun library to use.
>> The fact that it's a composition of single decree paxos groups it
>> makes it much simpler to understand, and you can implement SMR atop
>> it, like so: https://github.com/sargun/riak_ensemble/commits/sargun/redis
>> (see the few extra commits)
>>
>> On Tue, Mar 8, 2016 at 8:19 AM, Carlos González Florido
>> <carlosj.gf at gmail.com> wrote:
>> > You may have a look at nkbase[1] that includes riak_ensemble as one of
>> > it
>> > working models.
>> >
>> > [1]
>> >
>> > https://github.com/NetComposer/nkbase/blob/master/doc/strong_consistency.md
>> >
>> > Carlos González
>> > NetComposer
>> >
>> >
>> > On Mon, Mar 7, 2016 at 4:48 AM, Agung Laksono
>> > <agung.laksono at surya.ac.id>
>> > wrote:
>> >>
>> >> Hi Basho developer,
>> >>
>> >> I've seen the video that you guys present about rian_ensemble. I am
>> >> interesting to implement riak_ensemble in the production environment in
>> >> the
>> >> future. After reading the
>> >> documentation(https://github.com/basho/riak_ensemble/tree/develop/doc),
>> >> I
>> >> still couldn't understand how it's work and implement it. Could you
>> >> tell me
>> >> in a simple way to implement it in the single node to simulate multiple
>> >> nodes or 3 real nodes?
>> >>
>> >> So far, I can compile riak_ensemble via rebar and run
>> >> application:ensure_all_started(riak_ensemble). But I don't know what
>> >> should
>> >> I do after that(sent K/V, communicate to other nodes, etc)
>> >>
>> >>  Thank you in advance.
>> >>
>> >> --
>> >> Warm Regards,
>> >>
>> >> Agung Laksono
>> >>
>> >> _______________________________________________
>> >> riak-users mailing list
>> >> riak-users at lists.basho.com
>> >> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>> >>
>> >
>> > _______________________________________________
>> > riak-users mailing list
>> > riak-users at lists.basho.com
>> > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>> >
>
>
>
>
> --
> Warm Regards,
>
> Agung Laksono




More information about the riak-users mailing list