A bit tangential to this particular announcement - but i've been musing about using Riak, though so far put off by their (seemingly) open-core, rather than open-source implementation. Are the paid, enterprise functions stuff you eventually need in most use cases? the lack of multi-site replication in particular is curious; would this mean I can replicate between nodes on the cluster, as long as they are in the same datacenter, but not across the interwebs until i hand over some $$$?
Enterprise includes a ring replication layer designed for higher-latency connections.
There is nothing preventing you setting up a cluster that spans continents. What will deter you is the poor performance of the cluster due to the added latency between nodes.
Interesting - from what I remember of the the original Amazon Dynamo paper it seems the ring replication is pretty central to the thing (if we are both talking about the ring replication used for the distribution of keys across the nodes).
This is sounding like crippleware :(
Replicas (or as you put it, ring replication) is critical, and Riak very much has replicas. What it doesn't have in it's open source version is multi-ring replication (cross DC) which is a separate concern.
In the Dynamo paper the ring spans DCs but they also have a very different network than most that allows them to do that. In Riak it is recommended that each ring is contained in a single DC. If you want ring-to-ring replication from Basho then you can pay for Riak EDS. You could also build it yourself as others have mentioned (Kresten Krab Thorup has done something like this in Riak Mobile [1]).
Nothing is stopping you from running a single ring (cluster) across DCs, and it might even be okay for certain apps, but it's not a choice that should be taken lightly. In general, if you don't understand the tradeoffs you're making in that regard then it's best to stick to one ring, one DC.
Replication of keys around the ring is free. What you pay for is their solution to the problem of significant latency between nodes: code that replicates the whole ring in several sites and coordinates the communication between the sites.
The replication in the Enterprise version is replication between entirely different clusters. The ring replication you talk about is definitely open source.
From what I understand, you could build the same functionality on your own if you wanted. Riak has post-commit hooks that you can tap into. I think the multi-dc replication uses them, though I'm not positive.
Riak is Open Source. It contains a very complete platform. Riak Core is a dynamo style distributed system platform (not database specific), Riak Pipe is workflows, Riak KV is a KV database, Riak Search is full text search over that database. And there's lot of other stuff I'm not even mentioning (like bitcask, the logging stuff, etc.)
When you go to the Riak project on github, what you find is actually sort of a skeleton, that has as dependancies all those projects I mentioned above, such as riak_kv, riak_pipe, etc.
Riak ES, the commercial offering, is a superset of Riak. It has Riak as a dependency, and adds the feature of cross datacenter replication. I think the real reason you buy Riak ES is because you're wanting to buy support.
Riak ES being a commercial product doesn't make Riak any less open source, than Oracle Server being a commercial product makes Linux less open source.
Also, Basho is keen to develop users of Riak ES, and customers of Riak (who don't spend any money) still get some support from Basho. Basho has a "Riak ES for startups" program, which gives you a huge discount.
I'm building my business on Riak because Riak is open source. IF Basho goes away, I'll still have Riak. There's nothing missing from Riak that I need.
I figure if I get big enough where I want to be running out of multiple data centers, I'll be big enough to afford Riak ES, and if I can't afford Riak ES at that point, then I'll be able to build my own solution. (I don't think it would be that hard, actually.)
I guess what he mean was this: "Open core (a.k.a. proprietary relicensing[1]) is a business model where an open source product is also made available commercially with non-open-source additions" [1]
I cant speak to Riak, but generally this model can create a conflict of interest between the "enterprise features" on the one hand and open source commitments on the other.
For example if someone submits code to the opensource version that duplicates/overlaps an "enterprise feature"
> I figure if I get big enough where I want to be running out of multiple data centers, I'll be big enough to afford Riak ES
I was thinking along those exact same lines, but a big unknown was pricing on their enterprise offering. That information is unavailable on the web, and despite my skepticism in contact-us-for-the-price situations, I filled out their online form, which is a request to be contacted by a representative.
I haven't heard from them, but they did put me on a mailing list—I got an email about this 'milestone release' today! Not quite what I wanted to know, though :)
Nirvana, or someone using their Enterprise offering, perhaps you could fill us all in on the price?