cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Dusbabek <>
Subject Re: Proposal: freeze Thrift starting with 2.1.0
Date Tue, 11 Mar 2014 17:43:31 GMT

On Tue, Mar 11, 2014 at 12:00 PM, Jonathan Ellis <> 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]
> [2]
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder,
> @spyced

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