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