Riak vs riak_core

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Riak vs riak_core

Mike Oxford
I thought I understood Riak, then I ran across the fact that riak_core was split out separately.

When would you use riak_core that you wouldn't use Riak?  Is it more ephemeral, with shared state
in an ETS ring compared to a storage-backed node?

Thanks...

-mox

_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Riak vs riak_core

Justin Sheehy
Hi, Mike.

On Wed, Mar 30, 2011 at 5:46 PM, Mike Oxford <[hidden email]> wrote:

> I thought I understood Riak, then I ran across the fact that riak_core was
> split out separately.
> When would you use riak_core that you wouldn't use Riak?

Good question.

Riak Core is the distributed systems center that Riak is built around.
 Riak Core is not a standalone database, and in fact by itself it
doesn't do data storage or even much of anything at all from the point
of view of a client application.

You use Riak to store, query, and retrieve your data.

You use Riak Core to build something shaped a bit like Riak.

Another way of looking at this is that Riak Core is a bit more
abstract, providing mechanisms for techniques such as vector clocks,
gossip, and other useful parts of the servers in a robust and scalable
system.  Riak, the database, builds on that core by adding a
client-facing storage and retrieval protocol, storage engines for
placing data on disk, and so on.

I hope that this helps to clarify matters.  If not, or even if you
just have additional questions, please ask.

Best regards,

-Justin

_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Riak vs riak_core

Ryan Zezeski
In reply to this post by Mike Oxford
Mike,

Riak (to be specific, riak-kv) it built atop riak-core.  The Basho devs recognized that a lot of the things that made riak-kv great were more general than just key-value storage.  This includes things like consistent hashing, virtual nodes, hinted handoff, etc.  They built riak-core as a foundation to build Dynamo based apps.  You could use riak-core to build a distributed computing cluster (i.e. no data, just for distributing work).  One example, a pretty original one I might add too, is Rusty's BashoBanjo which uses riak-core to power a "distributed orchestra." [1]

I think riak-core has a lot of potential beyond it's current usage and I'm working on a small but not completely trivial example that I hope to illustrate with a blog post.  Specifically, I want to focus on the mechanics of the "vnode" as this, AFAICT, is the main player when you want to leverage riak-core.  Consider this a teaser to make sure I follow thru on my word :)

-Ryan


On Wed, Mar 30, 2011 at 8:46 PM, Mike Oxford <[hidden email]> wrote:
I thought I understood Riak, then I ran across the fact that riak_core was split out separately.

When would you use riak_core that you wouldn't use Riak?  Is it more ephemeral, with shared state
in an ETS ring compared to a storage-backed node?

Thanks...

-mox

_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com



_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Riak vs riak_core

Mike Oxford
"Dynamo based apps" is what is throwing me;  Dynamo is a storage paradigm.

So what your'e saying, really, is that riak_core is basically a clustering configuration on top of OTP, and that Dynamo really doesn't have any play here?

Wouldn't Dynamo be in the riak-kv layer?

-mox

On Wed, Mar 30, 2011 at 6:02 PM, Ryan Zezeski <[hidden email]> wrote:
Mike,

Riak (to be specific, riak-kv) it built atop riak-core.  The Basho devs recognized that a lot of the things that made riak-kv great were more general than just key-value storage.  This includes things like consistent hashing, virtual nodes, hinted handoff, etc.  They built riak-core as a foundation to build Dynamo based apps.  You could use riak-core to build a distributed computing cluster (i.e. no data, just for distributing work).  One example, a pretty original one I might add too, is Rusty's BashoBanjo which uses riak-core to power a "distributed orchestra." [1]

I think riak-core has a lot of potential beyond it's current usage and I'm working on a small but not completely trivial example that I hope to illustrate with a blog post.  Specifically, I want to focus on the mechanics of the "vnode" as this, AFAICT, is the main player when you want to leverage riak-core.  Consider this a teaser to make sure I follow thru on my word :)

-Ryan


On Wed, Mar 30, 2011 at 8:46 PM, Mike Oxford <[hidden email]> wrote:
I thought I understood Riak, then I ran across the fact that riak_core was split out separately.

When would you use riak_core that you wouldn't use Riak?  Is it more ephemeral, with shared state
in an ETS ring compared to a storage-backed node?

Thanks...

-mox

_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com




_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
Reply | Threaded
Open this post in threaded view
|

Re: Riak vs riak_core

Mike Oxford
In reply to this post by Justin Sheehy
The weekly recap was just posted with a slide decks on riak_core.  Excellent timing!

Is the Dynamo stuff in the riak-kv layer, then?
Or is it still used for "workload distribution" somehow in riak_core?
Or is the Dynamo storage concept not used "at all" in the riak_core?

Thanks!
-mox


On Wed, Mar 30, 2011 at 6:00 PM, Justin Sheehy <[hidden email]> wrote:
Hi, Mike.

On Wed, Mar 30, 2011 at 5:46 PM, Mike Oxford <[hidden email]> wrote:

> I thought I understood Riak, then I ran across the fact that riak_core was
> split out separately.
> When would you use riak_core that you wouldn't use Riak?

Good question.

Riak Core is the distributed systems center that Riak is built around.
 Riak Core is not a standalone database, and in fact by itself it
doesn't do data storage or even much of anything at all from the point
of view of a client application.

You use Riak to store, query, and retrieve your data.

You use Riak Core to build something shaped a bit like Riak.

Another way of looking at this is that Riak Core is a bit more
abstract, providing mechanisms for techniques such as vector clocks,
gossip, and other useful parts of the servers in a robust and scalable
system.  Riak, the database, builds on that core by adding a
client-facing storage and retrieval protocol, storage engines for
placing data on disk, and so on.

I hope that this helps to clarify matters.  If not, or even if you
just have additional questions, please ask.

Best regards,

-Justin


_______________________________________________
riak-users mailing list
[hidden email]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com