Siblings don't have to be limited to terrible scenarios - they're a feature
that makes sense for many workloads using an eventually consistent,
distributed database like Riak.

Siblings are being used under the covers in Riak 2.0 to implement sets,
maps, and counters. Riak 1.4.x implements counters using siblings, too.

There's a whole set of data types called CRDTs that can be used to
implement rich data types in a system like Riak. There's work already in
place to do this with some of the existing clients and I started a project
to implement CRDTs through CorrugatedIron:
https://github.com/peschkaj/MoarDT/

The only tricky bit is that you can never be quite sure if you've read
everything. Oh, and garbage collecting the CRDT can be tricky if you're
using a client generated CRDT - you can end up with a large number of
siblings if you aren't careful.


---
Jeremiah Peschka - Founder, Brent Ozar Unlimited
MCITP: SQL Server 2008, MVP
Cloudera Certified Developer for Apache Hadoop


On Wed, Sep 11, 2013 at 4:29 PM, Alex Rice <a...@mindlube.com> wrote:

> Hi I'm very new to Riak. The allow_mult = true /  Siblings feature is
> very interesting. Could it be used to implement a high performance
> collection like a Queue or Set, in a lock free manner? The Riak docs
> make it sound like allow_mult is mainly for confict resolution and
> degenerate cases, rather than a feature which a data structure could
> be designed around.  Does anyone have any links to share, or thoughts
> about this broader issue?
> Thanks much!
> Alex
>
> _______________________________________________
> 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

Reply via email to