Model design and atomic transactions

Fred Dushin fred at dushin.net
Wed Jul 5 17:55:56 EDT 2017


Okay, I'll bite, but I don't know if anything I say will be satisfying.

In general Riak doesn't make any assumptions about ordering of data, particularly around back ends.  While Riak does support levelDB as a back end, and does order keys (and other data, such as secondary indices), until very recently not much leveraged this ordering.  We did a little work in Riak/KV to leverage ordering to optimize bucket and key listing, but that work was never released.  If you are interested, the work is on a few PRs and branches [1]

Riak data is generally schema-less.  Eventually-consistent Key, value, get, put, delete, with some more advanced features around the edges (secondary indexing, CRDTs, semi-structured search), as well a "enterprise-level" features, mostly focused around multi-datacenter replication.  I am sure I am butchering the feature set of Riak, the product.  But at it's core, that's the way I look at it.

Re: writes during network partitions, yes, of course, this part of the motivation of DynamoDB (not necessarily the product), and Riak faithfully implements the architecture, along with what guarantees can be provided for write availability in the presence of machine|network|software failure.

I can't really speak to ACID properties, except to say there is no transactional integrity in Riak, other than some tunable guarantees around reads and writes.

Can't say much about mnesia, except that Riak can store 100s of terabytes of data across a cluster (if not more).

Hope that helps.

-Fred

[1] https://github.com/basho/riak_kv/pull/1634 <https://github.com/basho/riak_kv/pull/1634> and https://github.com/basho/riak_kv/compare/jv-optimize_list_buckets...develop <https://github.com/basho/riak_kv/compare/jv-optimize_list_buckets...develop>

> On Jul 4, 2017, at 1:49 PM, Amirouche <amirouche at hypermove.net> wrote:
> 
> Héllo,
> 
> At work, we are studying the offering in the distributed database
> space and my eyes stumbled upon riak (via erlang).
> 
> I am wondering how does riak compare to leveldb (bsddb, wiredtiger
> and the like) when it comes down to schema design.
> 
> Does riak support orderred records based on the key?
> 
> If the records are ordered, is it possible to change the 'order'
> function/procedure?
> 
> Regarding CAP I understand, that Riak is AP which means that some
> time, some node can see old version the database. During a partition,
> is it possible to do writes at this point?
> 
> I don't understand what ACID guarantees riak does provide. What's
> the position of riak regarding ACID?
> 
> How do you compare riak and mnesia?
> 
> Thanks!
> 
> 
> Amirouche ~ http://hyperdev.fr
> 
> 
> _______________________________________________
> riak-users mailing list
> riak-users at lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20170705/ef6fe092/attachment-0002.html>


More information about the riak-users mailing list