Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Proposal: RESTful coordinator service for the Voldemort cluster
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  14 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Chinmay Soman  
View profile  
 More options Oct 11 2012, 12:08 am
From: Chinmay Soman <chinmay.cere...@gmail.com>
Date: Wed, 10 Oct 2012 21:08:18 -0700 (PDT)
Local: Thurs, Oct 11 2012 12:08 am
Subject: Proposal: RESTful coordinator service for the Voldemort cluster

*The problem*:
The DefaultStoreClient currently in use in production at LinkedIn is a
source of a lot of issues. I'm enumerating them below:

* The *cluster topology and store metadata has to be synchronized* on the
client side. This makes bootstrapping (a process by which the client
obtains this metadata from a random server node) an expensive operation. In
addition, it introduces the additional burden of fetching the latest
changes or bouncing the client when such an event occurs.
* Complicated connection management which seems to have operational and
performance implications.
* Existing client handles all the replication (including cross zone) which
is inefficient.
* The client design is pretty complicated, with multiple levels of nesting.
* Client side config parameters are far too many (sometimes confusing)
which causes an operational overhead.

Although some of these issues can be fixed, it requires an iterative
release to all the clients. For instance, we have recently implemented an
auto-bootstrapper mechanism which tracks changes in cluster.xml happening
on the cluster and automatically re-bootstraps the client which helps in
doing cluster maintenance. However, in order to reap the benefits, it is
essential that all the clients using the cluster pick up this new release.
This is a very costly operation when a large number of clients are involved.

*The proposal*:
Refactor most of the Voldemort logic out of the client and create a new
entity called the 'Coordinator'. Essentially we're trying to make the
client more lightweight to address most of the issues discussed above.

A high level description of how it will work is as follows:
- We can deploy a set of N coordinators in front of M server nodes (the
ration of N:M needs to be worked out).
- The coordinator deployment is symmetric in the sense: each coordinator
can satisfy any Voldemort request (get/put/getall/...).
- The coordinator is stateless (across requests) and supports a REST
interface.
- When it receives a Voldemort request (get/put/...), it takes care of
routing the request to the required server nodes as specified by the store
properties, aggregate the result and return an HTTP response.

The coordinator still needs to obtain the cluster.xml and stores.xml, but
the point is that its within the control of the administrator (thus,
fetching/bouncing is really easy). In addition, all the bug fixes can be
quickly deployed due to this property. In summary, this is a huge
operational benefit. Please note that the subsequent bug fixes would also
be made available as part of the existing thick client (same code path).

*Open issue*:
The main issue now is how to route a request from the thin client to the
coordinator. The ideal solution should take care of the following:
- Fair load balance of the incoming REST requests amongst the N coordinators
- Have the ability to dynamically add / remove / change the coordinator
nodes (with minimal impact to the clients)
- Should not have any extra overhead (since every request will route
through this piece)
- Should be highly available

At LinkedIn, there is a *proprietary solution* that resolves the above Open
Issue. Unfortunately, the proprietary solution is not open sourced (yet).
So we're opening this question to the community: What open source options
may resolve our *Open Issue*?

We will document the detailed design for the coordinator and thin client in
a separate wiki. This is just to get some initial feedback from the
community regarding the routing logic between the thin client and the
coordinator in the long term. If you have any ideas please share with us!

*Voldemort team*


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sunny Gleason  
View profile  
 More options Oct 11 2012, 7:41 am
From: Sunny Gleason <sunny.glea...@gmail.com>
Date: Thu, 11 Oct 2012 07:41:37 -0400
Local: Thurs, Oct 11 2012 7:41 am
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster
On 10/11/12, Chinmay Soman <chinmay.cere...@gmail.com> wrote:

> At LinkedIn, there is a *proprietary solution* that resolves the above Open
> Issue. Unfortunately, the proprietary solution is not open sourced (yet).
> So we're opening this question to the community: What open source options
> may resolve our *Open Issue*?

You should check out Riak.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Maarten Koopmans  
View profile  
 More options Oct 15 2012, 5:51 am
From: Maarten Koopmans <maarten.koopm...@gmail.com>
Date: Mon, 15 Oct 2012 11:51:23 +0200
Local: Mon, Oct 15 2012 5:51 am
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster
Sounds nice, I have been toying with the idea of putting a REST proxy
for a Voldemort cluster. The elephant in the room is of course how to
shield the resources - i.e. add session management/authN or not.

Using Lift/Scala it should be a few days of work. What is your planning?

--Maarten


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Chinmay Soman  
View profile  
 More options Oct 16 2012, 5:43 pm
From: Chinmay Soman <chinmay.cere...@gmail.com>
Date: Tue, 16 Oct 2012 14:43:07 -0700 (PDT)
Local: Tues, Oct 16 2012 5:43 pm
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster

Currently, we're thinking of using Netty for implementing the REST enabled
coordinator and make that part open source. The other component is
essentially a software load balancer with a persistent HTTP connection pool
which is the core of the thin client. This thin client will be released
internal to LinkedIn at first.

But yes, any good load balancing solution (along with a HTTP connection
pool) will work in this case. I agree that wont be a lot of work: anyone
willing to take this up ?

I'm currently designing the REST API for the coordinator. Since we dont
want to do any extra work, the de-compression, de-serialization and
inconsistency resolver modules should still be located in the thin client.
This means we can only transfer raw bytes between the thin client and the
coordinator. In my prototype I'm going to use base64 encoding to send the
data to and fro. But are there any specific suggestions with respect to the
REST API ?

Lemme know,
C


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Maarten Koopmans  
View profile  
 More options Oct 17 2012, 1:37 am
From: Maarten Koopmans <maarten.koopm...@gmail.com>
Date: Wed, 17 Oct 2012 07:37:22 +0200
Local: Wed, Oct 17 2012 1:37 am
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster

Sounds like were thinking along the same lines. I'm on it, I'll update with
a status within a week.

Contact me if you want to discuss this.

--Maarten


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Chinmay Soman  
View profile  
 More options Oct 18 2012, 5:46 pm
From: Chinmay Soman <chinmay.cere...@gmail.com>
Date: Thu, 18 Oct 2012 14:46:49 -0700 (PDT)
Local: Thurs, Oct 18 2012 5:46 pm
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster

Sounds good. I'll have a base prototype coordinator working soon (roughly
next week) which speaks a binary protocol on top of HTTP chunked transfer
encoding.

We can take it from there. There are a couple of issues with respect to
what protocol / schema to use for this communication though. For instance
if the messaging layer uses Avro and the keys and values use JSON, then
we'll end up doing expensive translations.

We need to standardize this.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Maarten Koopmans  
View profile  
 More options Oct 26 2012, 9:15 am
From: Maarten Koopmans <maarten.koopm...@gmail.com>
Date: Fri, 26 Oct 2012 15:15:12 +0200
Local: Fri, Oct 26 2012 9:15 am
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster
The question is whether speed is an issue on the container level. I am
short on time, but will try to pick things up sooner rather than
later.

Probably profitable to have the two approaches, I guess.

On Thu, Oct 18, 2012 at 11:46 PM, Chinmay Soman


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Chinmay Soman  
View profile  
 More options Jan 24, 8:41 pm
From: Chinmay Soman <chinmay.cere...@gmail.com>
Date: Thu, 24 Jan 2013 17:41:55 -0800 (PST)
Local: Thurs, Jan 24 2013 8:41 pm
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster

Apologies for the radio silence guys. We've just published the REST API to
be used with the coordinator and thin client.

Here's the link
: https://github.com/voldemort/voldemort/raw/gh-pages/pdfs/voldemort-re...

Any comments, concerns are welcome !


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Chinmay Soman  
View profile  
 More options Feb 5, 4:52 pm
From: Chinmay Soman <chinmay.cere...@gmail.com>
Date: Tue, 5 Feb 2013 13:52:40 -0800 (PST)
Local: Tues, Feb 5 2013 4:52 pm
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster

I've updated the design doc here:

https://github.com/voldemort/voldemort/wiki/Voldemort-thin-client

The link to the REST API is also at the end of this document. Anybody who
wants to implement the REST'ful client in a non Java language should
probably go through that PDF and point out mistakes if any.

Thanks,
C


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Alex Feinberg  
View profile  
 More options Feb 8, 10:06 pm
From: Alex Feinberg <feinb...@gmail.com>
Date: Fri, 8 Feb 2013 19:06:19 -0800
Local: Fri, Feb 8 2013 10:06 pm
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster
Looks great, I really like this. I like how multi-gets are handled!

- af

--
Alex Feinberg


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bongani Shongwe  
View profile  
 More options Feb 18, 11:36 am
From: Bongani Shongwe <alpha.ts...@gmail.com>
Date: Mon, 18 Feb 2013 08:36:16 -0800 (PST)
Local: Mon, Feb 18 2013 11:36 am
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster

Is there a REST'ful client available for use yet? I went through the github
code but I didn't see it, except a python implementation (which I'm unsure
if it still works properly as I received 404 errors). I've tried creating
my own Http client in Jetty but I receive 404 errors as well. A working
example would be great to help me figure out what I'm missing

Also, might be a slight oversight, in the API pdf the port number was not
indicated for the URI


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Chinmay Soman  
View profile  
 More options Feb 19, 2:25 am
From: Chinmay Soman <chinmay.cere...@gmail.com>
Date: Mon, 18 Feb 2013 23:25:03 -0800 (PST)
Local: Tues, Feb 19 2013 2:25 am
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster

We're still working on the implementation. There are two key pieces as part
of this:
1) Coordinator with the embedded fat client layer
2) Java Rest client

I'll send out a note when the coordinator is ready. At this moment we do
not have a plan for a Python client, but once the coordinator is in place,
it should be trivial to write one.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Vinoth Chandar  
View profile  
 More options Feb 22, 12:13 pm
From: Vinoth Chandar <mail.vinoth.chan...@gmail.com>
Date: Fri, 22 Feb 2013 09:13:54 -0800 (PST)
Local: Fri, Feb 22 2013 12:13 pm
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster

The biggest advantage of the coordinator is that now the community can chip
with clients in different languages... :)
Fun times ahead

-Vinoth


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Maarten Koopmans  
View profile  
 More options Mar 7, 11:57 am
From: Maarten Koopmans <maarten.koopm...@gmail.com>
Date: Thu, 7 Mar 2013 17:57:10 +0100
Local: Thurs, Mar 7 2013 11:57 am
Subject: Re: [project-voldemort] Proposal: RESTful coordinator service for the Voldemort cluster

Just saw this, pretty nice. Keep up the good work!

On Fri, Feb 22, 2013 at 6:13 PM, Vinoth Chandar <


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »