Is Riak suitable for s small-record write-intensive billion-records application?

Jeremiah Peschka jeremiah.peschka at gmail.com
Thu Oct 18 11:15:29 EDT 2012


Right - if you want read your own writes consistency you need to make Riak
behave consistently and (assuming *n* = 3) specify *dw* at least 2
(preferably 3) for writes and *r* at least 2 for reads. This, of course,
means that you're going to lose.

In reality, this can be mitigated by putting a cache in front of Riak. A
number of people on the list advocate using Redis since it offers
relatively rich querying functionality that most caches lack. A combination
of Redis + Riak will, most likely, meet most querying needs but it does add
some operational and development complexity.

Without knowing more about Yassen's requirements, it's difficult to say
which aspects of Riak meet the app's needs and which ones might require
some mitigation wrt operational shenanigans like caching.
---
Jeremiah Peschka
Managing Director, Brent Ozar PLF, LLC


On Thu, Oct 18, 2012 at 8:07 AM, Pavel Kogan <pavel.kogan at cortica.com>wrote:

> I did some tests and saw that it is correct only for very recent keys.
> The DB becomes consistent for specific key very fast (few seconds) at
> least for 5 nodes in 1Gbit network (which seems to be enough or almost
> enough
> for required capacity and throughput with bitcask backend).
>
> Pavel
>
> On Thu, Oct 18, 2012 at 4:53 PM, Reid Draper <reiddraper at gmail.com> wrote:
>
>>
>> On Oct 18, 2012, at 7:42 AM, Yassen Damyanov <yassen.tis at gmail.com>
>> wrote:
>>
>> > Hi everyone,
>> >
>> > Absolutely new (and ignorant) to NoSQL solutions and to Riak (my
>> > apologies; but extensive experience with SQL RDBMS).
>>
>> --snip--
>>
>> >
>> > The application should be able to write several hundreds of new
>> > records per second, but first check if the unique key already exists.
>> > Writing is to be done only if it is not there. If it is, the app needs
>> > to retrieve the whole record and return it to the client and no
>> > writing is done in this case.
>>
>> Since Riak is an eventually consistent database, you will not be able to
>> tell
>> with 100% certainty that a key or does not exist. If this is a _firm
>> requirement_,
>> you'll need to either use another db or some external service to provide
>> this
>> guarantee.
>>
>> Reid
>>
>> >
>> > _______________________________________________
>> > riak-users mailing list
>> > riak-users at lists.basho.com
>> > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>
>>
>> _______________________________________________
>> riak-users mailing list
>> riak-users at lists.basho.com
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>
>
>
> _______________________________________________
> 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/20121018/8a77ded0/attachment.html>


More information about the riak-users mailing list