

Why Riak should power your next Rails app - webology
http://seancribbs.com/tech/2010/02/06/why-riak-should-power-your-next-rails-app/

======
gfodor
Pages and pages of feature descriptions, and not a single hard stat on people
using this in production. Don't people writing these types of posts realize
that that's a _pre-requisite_ to trying to convince any decision-maker to look
into their favorite pet framework/language/db/etc.?

Now, it could very well be the case that nobody _is_ using this in production,
or at scale. Fine. Where's that disclosure, then? 100 whiz bang features is
only one part of the process of evaluating a new piece of technology.

~~~
gamingco4win
Research before writing. EA's world of warhammer f/b app got rid of MongoDB,
which failed, to use open source Riak. Mochi uses Riak. Collecta uses Riak.
These are Akamai guys who make things work at one node or at 400 nodes.

Pls don't be stupid.

~~~
ehsanul
Do you know how/why MongoDB "failed" for the facebook application? It's not
really clear what that actually means given your comment. Care to share a link
to the story or an explanation if there is any?

Also, I'm glad you informed us about Riak deployments, but the last statement
is inappropriate: please don't be rude. And spelling please as "pls" makes you
seem immature too.

~~~
sailormoon
He seems to be referring to this article:
[http://www.masshightech.com/stories/2010/02/01/daily27-MHT-E...](http://www.masshightech.com/stories/2010/02/01/daily27-MHT-
Exclusive-Basho-maps-unstructured-road-to-web-scalability.html)

~~~
ehsanul
Nice find. However, I don't see where it says anything about MongoDB failing,
though it is mentioned as a NoSQL database. Also:

 _Another customer, Electronic Arts, uses Basho infrastructure for a system
that supports 7 million daily users of Warhammer Online on Facebook, saving
each player’s status every half-minute, Falco said._

That's an impressive number of daily users, but it's just saving a status
every half-minute? I don't see why MongoDB couldn't handle that just fine,
assuming enough nodes (auto-sharding is basically working now right?).

~~~
sailormoon
I don't know, that's 230k saves a second .. that's no joke no matter what
platform you're using. I am not super familiar with sharding in MongoDB
(haven't needed to go there yet) but seems like 230k writes/second would
stress pretty much anything, and Mongo only added that functionality fairly
recently.

Personally I am not at all worried about having to deal with 230k
writes/second, though. If one of my apps ever gets that large, I will expect
my far-smarter-than-me head of DB ops to deal with it, then send me an email
telling me all about how he'd solved the problem, which I will read with great
interest from on board my gold-plated yacht.

~~~
spidaman
No so fast with the yacht, he didn't say they're doing 230k saves/sec. That'd
be the case if Warhamemr Online saved statuses for 7M concurrent users every
30 seconds. The basho guy said 7M daily users, not 7M concurrent ones.

~~~
sailormoon
Oops. My mistake. Oh well, it's EA's yacht anyway ..

------
patio11
Not to be persnickety, but there is an entire world of Rails developers who
don't have the problems that Riak purports to solve. I'll be a multi-
millionaire bingo tycoon long, long before I outgrow MySQL, given my app's
needs. (Adjust appropriately if you're Facebook. I'm not Facebook.)

~~~
sailormoon
Agreed 100%. I spent some time checking it out a little while ago, and was
inspired by the article to go back and have another look. Very impressive
indeed. And also total, utter overkill for 99.99% of sites. And hey, I'm all
for overkill, but it looks like a pretty steep learning curve; time probably
better spent polishing your site based on a more traditional DB.

Also, while the tech looks good, I wasn't delighted to read this:

<http://basho.com/enterpriseds.html>

That's an awful lot of features held back, and the lack of specific pricing
does not bode well IMO.

------
ehsanul
On the question of performance, Riak's FAQ says the following:

 _We've found it to be fast enough for our purposes, and our goal is not to be
"fastest" but rather to stay "fast enough" as the system grows, as hosts fail,
and so on._

You know what they say, when you ask about a girl and she's just called
"sweet", you know she's not a looker!

Riak's probably not appropriate for anyone without a cluster of over a couple
dozen nodes, at least.

~~~
z8000
_Riak's probably not appropriate for anyone without a cluster of over a couple
dozen nodes, at least._

Did you pull this out of thin air?

~~~
ehsanul
Not completely, but any argument I have would be hand-waving. Hence the
"probably". The number ( _a couple dozen_ ) was totally out of nowhere, just
making a point here.

I should've added the disclaimer that I haven't used Riak, and hence nobody
should take what I say seriously at all. It was just my impression from
looking through the site.

------
wheels
Reading the description it sounds virtually identical to what I know about
CouchDB:

    
    
      - Distributed document database
      - Masterless replication
      - HTTP interface
      - Map-reduce-based query system
      - Written in Erlang
    

Given that, and its relative obscurity compared to CouchDB, it seems odd that
they only place where they bothered to compare the two was on the specifics of
their map-reduced based query system.

------
sabat
Anyone with some Riak experience care to talk about it?

~~~
SlyShy
I tried it when it was first announced, so the experience has probably been
smoothed over a lot since then.

It has the steepest learning curve of any nosql database I've tried so far,
but perhaps for people with more Map/Reduce familiarity that won't be the
case. The biggest hangup was that Map/Reduce queries could only be written in
Erlang, but now it seems they can be written in JavaScript too. That'll be a
nice improvement.

The installation was a bit less straightforward than I would have liked, but
it seemed to work fine after that.

I ended up going back to Redis, because I don't actually own enough hardware
to make Riak worth using.

~~~
anotherjesse
"make rel", HTTP REST interface, and JS map-reduce fixed the learning curve
for me.

Even if you don't have the hardware I recommend trying it again.

