[erlang-questions] Selecting a speedy NoSQL datastore

Henning Diedrich <>
Thu Feb 25 08:17:39 CET 2010


Scalaris is the one that promises strong consistency.

The trade off is that it is not as tolerant with the number of copies 
that may go amiss at any time. Meaning that while Riak, CouchDB et al. 
could recover data from just one surviving node, Scalaris currently 
needs at least 3 out of 4 to recover (floor(n/2+1) nodes of n). That's 
because they use Paxos, which may be the best you can do to be 
consistent, not only "Eventual Consistent".

VoltDB may be interesting if you need throughput, and don't care what 
the data base is implemented in: http://www.voltdb.com.

This is the newest creation of Mike Stonebraker and it's optimized for 
extreme throughput at the cost of some latency. This means that you can 
write a lot at once it just may take a bit (~msecs) to execute. For OLTP 
that should be just what you want. You can sign up to get information on 
it at their site and/or learn more about the principle they apply at 
http://db.cs.yale.edu/hstore/

VoltDB is SQL, albeit a small but essential subset, and ACID. The main 
trade off is that there are no ad hoc queries with VoltDB, which is not 
really a disadvantage compared to NoSQLs. It's currently in beta.

Thanks to Bob Ippolito for pointing me to their stuff.

Henning


Jayson Vantuyl wrote:
> This is not entirely so simple.  MongoDB does not ensure durability for a single machine database.  Instead, they require you to use replication across multiple servers.  When properly deployed on redundant storage, you get eventually-consistent durability across the system.
>
> Read a little about it here:
>
> http://blog.mongodb.org/post/381927266/what-about-durability
>
> Their rationale, which is actually quite insightful, is that anyone who is really concerned with not losing data (and understands the problem) wouldn't want just one machine durability anyway--especially with the weaker guarantees that they've otherwise accepted due to eventual-consistency.
>
> Also, note that Mongo Sharding gives you the same replication plus horizontal scalability.  Right now, Mongo, Riak, and Dynomite are the NoSQLs that really seem to scale.  All of them are apparently eventually-consistent.  Among those, Mongo is the best performing.
>
> Mongo doesn't "lose data" any more than the others.  More directly, in an eventually-consistent system, there is always a point where you can lose the partition of nodes that has the data.
>
> On Feb 23, 2010, at 12:06 PM, Max Lapshin wrote:
>
>   
>> On Tue, Feb 23, 2010 at 11:03 PM, Rapsey <> wrote:
>>     
>>> MongoDB looses data? First time I've heard mongodb having such an issue.
>>>
>>>       
>> Yes, we have experienced this problem on staging tests and stopped
>> experiments with nosql after it.
>>
>> ________________________________________________________________
>> erlang-questions (at) erlang.org mailing list.
>> See http://www.erlang.org/faq.html
>> To unsubscribe; mailto:
>>
>>     
>
>   



More information about the erlang-questions mailing list