cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shao-Chuan Wang <shaochuan.w...@bloomreach.com>
Subject Re: Proposal: freeze Thrift starting with 2.1.0
Date Tue, 11 Mar 2014 19:41:23 GMT
Hi,

I just received this email from Jonathan regarding this deprecation of
thrift in 2.1 in dev emailing list.

In fact, we migrated from thrift client to native one several months ago;
however, in the Cassandra.hadoop, there are still a lot of dependencies on
thrift interface, for example describe_splits_ex in
org.apache.cassandra.hadoop.AbstractColumnFamilyInputFormat.

Therefore, we had to keep thrift and native in our server but mainly, the
CRUD query are through native protocol.
However, Jonathan says "*I don't know of any use cases for Thrift that
can't be **done in CQL"*. This statement makes me wonder maybe there is
something I don't know about native protocol yet.

So, does anyone know how to do "describing the splits" and "describing the
local rings" using native protocol?

Also, cqlsh uses python client, which is talking via thrift protocol too.
Does it mean that it will be migrated to native protocol soon as well?

Comments, pointers, suggestions are much appreciated.

Many thanks,

Shao-Chuan

On Tue, Mar 11, 2014 at 10:00 AM, Jonathan Ellis <jbellis@gmail.com> wrote:

> CQL3 is almost two years old now and has proved to be the better API
> that Cassandra needed.  CQL drivers have caught up with and passed the
> Thrift ones in terms of features, performance, and usability.  CQL is
> easier to learn and more productive than Thrift.
>
> With static columns and LWT batch support [1] landing in 2.0.6, and
> UDT in 2.1 [2],
> *I don't know of any use cases for Thrift that can't be done in CQL.* Contrawise, CQL
makes many things easy that are
> difficult to impossible in Thrift.  New development is overwhelmingly
> done using CQL.
>
> To date we have had an unofficial and poorly defined policy of "add
> support for new features to Thrift when that is 'easy.'"  However,
> even relatively simple Thrift changes can create subtle complications
> for the rest of the server; for instance, allowing Thrift range
> tombtones would make filter conversion for CASSANDRA-6506 more
> difficult.
>
> Thus, I think it's time to officially close the book on Thrift.  We
> will retain it for backwards compatibility, but we will commit to
> adding no new features or changes to the Thrift API after 2.1.0.  This
> will help send an unambiguous message to users and eliminate any
> remaining confusion from supporting two APIs.  If any new use cases
> come to light that can be done with Thrift but not CQL, we will commit
> to supporting those in CQL.
>
> (To a large degree, this merely formalizes what is already de facto
> reality.  Most thrift clients have not even added support for
> atomic_batch_mutate and cas from 2.0, and popular clients like
> Astyanax are migrating to the native protocol.)
>
> Reasonable?
>
> [1] https://issues.apache.org/jira/browse/CASSANDRA-6561
> [2] https://issues.apache.org/jira/browse/CASSANDRA-5590
>
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder, http://www.datastax.com
> @spyced
>

Mime
View raw message