Hacker News new | ask | show | jobs
by davidcollantes 5229 days ago
For those, like me, who do not know what Riak is:

"Riak is an open source, highly scalable, fault-tolerant distributed database."

Source: http://basho.com/products/riak-overview/

2 comments

It also makes different trade-offs in usability of the software. It is (in my opinion) the most sysadmin friendly datastore, without hiding complexity, the tools are just pleasant to use. However, it has a larger curve for developers. We did a shootout to find a solution that would work for our needs and it came down to Mongo vs. Riak. We went with Mongo and are feeling the pain of getting everything automated and set up, but consider it a one-time cost rather than an "every time we get a new developer" cost.
Having worked with some quite large Mongo setups, I think you'll find the administration of Mongo ends up being significantly more than a single upfront cost.

Dealing with sharding + replica sets is an administrative nightmare with Mongo.

We (MongoHQ) do lots of sharding + replica set admin. Sharding is finicky, but we've found replica set admin to be really straightforward.

Getting client apps configured properly is the hardest part of replica set use. It's only a one time problem though.

Do you have some more insight into this? We currently run a hybrid Riak-MySQL setup, and are actively looking at Mongo to replace parts of it. In a few tests mongo 's speed seems to be all over the place: From REALLY fast to quite slow. And that is without the admin involved in a larger scale setup.
It's a distributed multi-node key-value store. They built it using Erlang (I almost consider that, alone, a "feature").
Yeah, it's important to note that it's a key-value store; that's what attracted me initially.
Based off Amazon's Dynamo work (think S3).
There's little relationship between Dynamo and S3. Riak is based on the former but not the latter.
Correct. I've heard conflicting accounts on how much of the original Dynamo was/is used by S3.

(Also, if you like S3, keep your eyes on Basho over the next few weeks).

If it claims to be distributed and its not written in erlang, don't use it.

Well, that's the filter I use when looking at anything. If its not written in erlang I spend a lot of time trying to figure out exactly how it isn't really actually a distributed system. Usually I find out that it isn't.

While I generally agree with you, there are some applications out there that get distributed multi-node environments "right" without using Erlang. It's just much harder to do because those problems are (for the most part) solved BY Erlang for the programmer.

If something says it is parallel this, or concurrent that, that is when I filter it - thus far Erlang's concurrency model has been unmatched (in my limited experience) by any other language I've used for efficacy and simplicity.

That's an extremely crude filter. A lot of the best distributed system stuff is built on the JVM. Too many to name, but I'll name one anyway: Zookeeper