Sasha,

Thanks for the feedback.  I can appreciate your comment on connection pooling, and it is certainly a matter of taste/purpose/perspective.  In our case, it helps to have the REST layer because its a more natural fit into our platform/ecosystem (considering we use COTS ETL tools, workflows, etc.)
 
We place a load balancer in front of all of our REST services to get high-availability and decrease code complexity on the client.

Stay tuned though.. hopefully we can add enough feature/function at the services layer to make it compelling.  I hope to add Hadoop/Pig support sometime next week then start on the GUI after that.  Security is also on the list.  We'll most likely use Spring Security, which would allow it to tie into different credentials repositories on the backend. (LDAP, RDBMS, etc)

-brian

On Tue, Oct 25, 2011 at 5:18 AM, Sasha Dolgy <sdolgy@gmail.com> wrote:
Hi Brian,

It's an interesting one.  Hope you don't mind some feedback .....I see you have been making rounds publicizing the concept and patch (like on my  blog ; )  http://blog.sasha.dolgy.com/2011/05/apache-cassandra-restful-api.html

For me, and the goals I have, I'm not sure this is fit for purpose.  I built an API that implements the business processes, business rules, security and policies of what I require.  I made it RESTful to allow consumers quick and easy access....  The API implements Hector or PHPCassa depending on my mood.  Both libraries provide an element of Connection Pooling, meaning I don't have to worry about that in my code.  It just works....  The cost to me writing code that leverages Hector or PHPCassa isn't that high when I compare it to writing code that would leverage a RESTful interface.  I'd have to think about Connection Pooling / selecting the best available node, etc.  I think the cost would be higher unless it's a one or two node infrastructure or there is a load balancer in front of all of the Cassandra interfaces so that I don't have to think about it ..

Would I leverage the RESTful interface if it existed with Cassandra?  Probably not.  I am happy with the libraries as they are today .. and they let me bundle in a bunch of fun (batch mutates, connection pooling, etc).  They aren't overly complicated and make overall development and integration quite simple. 

I definitely think that people who are looking into Apache Cassanda for the first time may look for this feature and/or CQL ... and in that respects, it's something good to have. 

Probably the best question I read in the JIRA ticket ( https://issues.apache.org/jira/browse/CASSANDRA-3380 ) is:  "...what problem the REST API solves..." , which is still not clear to me...

-sd


On Tue, Oct 25, 2011 at 5:48 AM, Brian ONeill <bone@alumni.brown.edu> wrote:
Peter Minearo <Peter.Minearo <at> Reardencommerce.com> writes:

> Thrift uses RPC, I was wondering if Cassandra uses Thrift on the server
side to
> handle the requests from the clients?  I know Thrift is used on the client
> side, but what about the server side?   If this is true; is there a reason for
> it?  Was a REST API with a JSON payload tried?  Are there any plans to
> create a REST API for Cassandra?


We started work on an extension to Cassandra that would deliver a
REST layer.

Check out:
http://tinyurl.com/3ktnc9f
http://code.google.com/a/apache-extras.org/p/virgil/

-brian





--
Brian ONeill
Lead Architect, Health Market Science (http://healthmarketscience.com)
mobile:215.588.6024
blog: http://weblogs.java.net/blog/boneill42/
blog: http://brianoneill.blogspot.com/