On Tue, Feb 14, 2012 at 2:02 PM, Andres Jaan Tack
<[email protected]> wrote:
> You should read
> this: http://codahale.com/you-cant-sacrifice-partition-tolerance/
>
> Riak's primary application as a key-value store is precisely to provide a
> mechanism to deal with partition tolerance. It borrows the inventive step of
> Dynamo to do this without sacrificing writeability (and more generally
> availability). The above text makes a case for why this your assumption ("no
> split brain") is invalid: you always have to have an answer for the split
> brain.

Firstly: There are other reasons to use Riak than its partition
tolerance, e.g. write scalability, transparent redundancy and
failover, nice API, integrated search and database functionality etc.

Secondly: Many cases of partitioned clusters still work with the code
I posted, and I consider the cases where I actually have a bona fide
split brain (two parts of the cluster separately running and
accessible by different client systems) to be pretty rare.

Usually machines crash, or complete segments of the network become
unavailable, and my code would work fine in both of those cases.

> Given this, I'm struggling to find value in your contribution. Was there a
> specific application you had in mind?

Yes, having a cluster in a single datacenter with "reliable"
(redundant, fail-over etc) network connections between them serving a
set of web application servers.

But if you don't consider any network reliable enough for this I guess
the contribution is not for you :)

regards,
//Martin

> --
> Andres
>
> 2012/2/14 Martin Bruse <[email protected]>
>>
>> Hello list, I am looking for some clever comments and critique.
>>
>> This is my first post, so have patience with my loutish behavior :)
>>
>> At the company where I work we have built an EventMachine
>> <http://rubyeventmachine.com/> based Ruby client to Riak that
>> simplifies both asynchronous HTTP requests and a few relation
>> concepts.
>>
>> You can find it at https://github.com/ProjectDaisy/blodsband if you
>> are interested.
>>
>> In this project I have added a few things that add a synchronous layer
>> on top of Riak. For example a compare-and-set method that guarantees
>> uniqueness of a document update.
>>
>> This is used for a #put_if_missing method, a Lock class to synchronize
>> operations, and (lo and behold) a linked list class using Riak
>> documents for elements.
>>
>> All these things, of course, assume that the cluster is not
>> partitioned in any way more interesting than a bunch of nodes being
>> offline. Split brain would break all synchronization.
>>
>> They all seem to work in our tests, but I would be very happy for some
>> peer review educated comments!
>>
>> regards,
>> //Martin
>>
>> _______________________________________________
>> 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

Reply via email to