cassandra-client-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Viner <davevi...@gmail.com>
Subject Re: Calling all library maintainers
Date Thu, 04 Nov 2010 16:30:09 GMT
A few quick thoughts and questions.

1. How does replacing thrift/avro with a SQL-inspired query language make
the server more stable?  As a client, I still need to connect via something,
and that something will make something like an RPC call to the server.  In
traditional rdbms-es, this is wrapped into the connection library itself
(e.g., odbc, perl dbi, etc).  But, just by having a query language, I don't
think that makes the interface more "stable".   It certainly might make the
internal code structure more stable inside Cassandra - since the "core"
would implement the query language parser & execution engine.  Then you can
abstract the "connection listener" into a separate piece of code entirely.
 But, that seems like the goal/idea behind Thrift & Avro.  (Note that I am
neither a thrift nor avro expert - so this comment is more from a basic
concept understanding of how those libs work.)

2. Backwards compatibility is a "good thing".  the closer we can get to
that, the more likely cassandra adoption will be faster and remain in place
for longer periods.  (I doubt most people would argue otherwise.)

3. Both Avro and Thrift have graduated to top-level apache projects.  Thrift
did so in just the past month or two.  I'm not sure exactly when Avro did,
but it's a top-level project now for sure.  Although this provides no
absolute guarantees, both are more likely to have longer-lived support than
previous non-TLP since the apache foundation is meant to stand behind such
projects.  As a practical matter, this might be little consolation for
previous difficulties of working with those projects/libraries, but it
should provide some comfort for the future.

I don't think I have a strong opinion one way or the other.  But, I do think
that RPC interfaces are hard, but query language interfaces aren't much
simpler.  Just look at SQL.  It took years for that to coalesce around
common idioms and still there are incompatibilities across platforms.
 That's not to say SQL was a bad idea or isn't useful.  Just that it's not
clear that creating a new QL isn't a recipe for solving all
connection/interface challenges.

Dave Viner


On Thu, Nov 4, 2010 at 9:10 AM, Eric Evans <eevans@rackspace.com> wrote:

>
> Some of you might already be aware, but I recently proposed a query
> language as an alternative to (or full replacement for) the Thrift/Avro
> RPC interfaces.
>
> http://article.gmane.org/gmane.comp.db.cassandra.devel/2370
>
> For me, this isn't so much about making the raw Cassandra interface
> "easier", as it is about making it more *stable*.  Or to put it another
> way, I continue to believe that high quality idiomatic client libraries
> are The Answer, what I want to do is make it easier for library
> maintainers to focus on the features of *their* APIs, and spend less
> time chasing Cassandra's, while giving user's interfaces that are
> backward compatible across major versions.
>
> That makes this group the primary target audience, and so I'd love to
> have everyone involved in the process.  If this interests you, I've
> submitted a Cassandra issue to coordinate the related goals for 0.8.
>
> https://issues.apache.org/jira/browse/CASSANDRA-1703
>
> Discuss!
>
> --
> Eric Evans
> eevans@rackspace.com
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message