Let me preface this by saying: the fact that it looks like SQL doesn't bother 
me. But: I think this would be a terrible thing to _focus_ on. Something for 
contrib? Sure.

Most reasonable languages these days have a way to define what looks like a 
DSL: giving people a text DSL which is subject to injection attacks and can't 
be type checked without support from a client driver anyway is brain dead. 
There is a reason that 99% of clients that interact with a SQL server do so 
programmatically via a library: because that is an easier way to interact than 
via string concatenation. At least that way the library is performing the 
concatenation for you.

Regarding performance: assuming optimized RPC libraries (which we do not yet 
have in Avro, and which Thrift is getting better at), serializing to a string 
and back will never be as performant as using a pre-parsed representation of 
the statement on both sides. "Oh but we can add prepared statements!" Poppycock.

----

> Truth is we've seen quite a bit of proliferation, and very little critical 
> mass.
> forced to move in lock-step with Cassandra releases, that are never backward 
> compatible
Expecting stable libraries or API pre-1.0 is not reasonable: neither the devs 
nor the users expect stability, and yet we are still able to guarantee 
compatibility within major versions.

The stated problem is that backwards compatibility is hard to provide: if that 
is the core complaint, then changing to a text based serialization format with 
a sexy name in order to add backwards compatibility is a severe overreaction to 
the problem. Instead, I would propose evolving the API in a manner that 
simplifies it.

Thanks,
Stu


-----Original Message-----
From: "Eric Evans" <eev...@rackspace.com>
Sent: Thursday, October 28, 2010 4:56pm
To: dev@cassandra.apache.org
Subject: Re: NoSQL, YesCQL?

On Thu, 2010-10-28 at 14:46 -0700, Chip Salzenberg wrote:
> Short answer: "YES Please, but we will still want a side channel for
> minimum overhead."

Ok.  Though I'm not sure I agree with the "minimum overhead" argument.

I've only done preliminary tests so far, but this seems on par (if not a
little faster) than Thrift is, and no effort to optimize has been made
(using a socket transport instead of HTTP for example would make a big
difference).

> Long answer: Query languages only work reliably when you have data
> binding assistance (insert "Bobby Tables" xkcd here).  However, they
> do
> have the wonderful property of evolving aggressively without requiring
> upgrades of the driver plumbing.  This is, of course, emphatically
> *not*
> true of anything like the current Thrift and Avro interfaces.  So
> that's
> why I say "Yes."  On the other hand, a very simple interface for very
> simple queries has a lot of value, too; see, for example,
> http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html
>   
> So that's why I think we will still want to bypass the full language
> for minimum latency in some circumstances. 

I'm also not sure I follow here either.  Do you mean simple for the
application developer?  CQL-using code should be considerably simpler
than the equivalent Thrift/Avro.

Thanks for the feedback!

-- 
Eric Evans
eev...@rackspace.com



Reply via email to