You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by Vladimir Prudnikov <v....@gmail.com> on 2013/07/17 22:18:02 UTC

CQL vs Thrift

Hi all,

This is may be is not the right place to ask, but I though developers can
answer to my questions better than users.

It looks clear that Cassandra dev team concentrates on CQL rather than
Thrift interface. I'm considering using Cassandra as a storage for my
current project which will replace MySQL. I still have problem choosing
between Thrift (Pycassa) vs CQL (cqlengine, python-driver).

Personally after using pycassa in test project I fall in love with it. I'd
prefer to use pycassa rather than python-driver, cqlengine or write raw
queries.

1) What's going on with Thrift interface and pycassa? I read somewhere that
it will be for backward compatibility, but does it mean that new features
will not be added to the Thrift interface hence will not be available with
pycassa? For example collections
http://www.datastax.com/dev/blog/cql3_collections.

2) Currently column families created using CQL is not visible through the
Thrift interface and vice versa. If I start with pycassa and in future I
decide to use CQL (due to lack of new features) will it be possible to use
these CFs? Or convert them so they become visible and accessible using CQL?

3) Also I've done some basic tests (pycassa vs. cqlengine, no prepared
statements) and seems like pycassa performs almost 2 times better which
makes it more preferable. It was simple inserts of couple thousands rows.

Do I have to put up with all this and start using CQL?

Thanks,
-- 
Vladimir Prudnikov

Re: CQL vs Thrift

Posted by Brandon Williams <dr...@gmail.com>.
On Wed, Jul 17, 2013 at 3:18 PM, Vladimir Prudnikov
<v....@gmail.com>wrote:


> I read somewhere that it will be for backward compatibility, but does it
> mean that new features
> will not be added to the Thrift interface


Yes, the thrift interface will remain stable and not be changing.

-Brandon

Re: CQL vs Thrift

Posted by Edward Capriolo <ed...@gmail.com>.
If you understand how cql collections are written you can decode them and
work with them from thrift. It's quite a chore and i would not suggest
trying yo do it however.

(I suspect tyler tried it and jonathan broke his hand jk)

There is a perl cassandra driver that did something like this.

On Wednesday, July 17, 2013, Jonathan Ellis <jb...@gmail.com> wrote:
> On Wed, Jul 17, 2013 at 4:03 PM, Tyler Hobbs <ty...@datastax.com> wrote:
>> I'll leave it to somebody else to comment on adding collections, etc to
>> Thrift.
>
> Doesn't make sense, since Thrift is all about the raw data cells, and
> collections are an abstraction layer on top of that.
>
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder, http://www.datastax.com
> @spyced
>

Re: CQL vs Thrift

Posted by Vivek Mishra <vi...@yahoo.com>.
+1. Thrift should be all about raw data cells.

-Vivek

________________________________
 From: Jonathan Ellis <jb...@gmail.com>
To: dev@cassandra.apache.org 
Sent: Thursday, July 18, 2013 2:48 AM
Subject: Re: CQL vs Thrift
 

On Wed, Jul 17, 2013 at 4:03 PM, Tyler Hobbs <ty...@datastax.com> wrote:
> I'll leave it to somebody else to comment on adding collections, etc to
> Thrift.

Doesn't make sense, since Thrift is all about the raw data cells, and
collections are an abstraction layer on top of that.

-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder, http://www.datastax.com
@spyced

Re: CQL vs Thrift

Posted by Jonathan Ellis <jb...@gmail.com>.
On Wed, Jul 17, 2013 at 4:03 PM, Tyler Hobbs <ty...@datastax.com> wrote:
> I'll leave it to somebody else to comment on adding collections, etc to
> Thrift.

Doesn't make sense, since Thrift is all about the raw data cells, and
collections are an abstraction layer on top of that.

-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder, http://www.datastax.com
@spyced

Re: CQL vs Thrift

Posted by Tyler Hobbs <ty...@datastax.com>.
Hi, I'm the maintainer of pycassa and the DataStax python-driver.  I just
broke some fingers, so I will be brief.

Regarding performance, the python driver is brand new and still has some
issues to be worked out around performance (C extension, locking and
signaling).  How you use it has a big impact, though; see the benchmarks/
dir.  Some are on par or better than pycassa for single-threaded rates with
fewer connections.

You can use all Thrift CFs through CQL3.  Some cql3 support may be
backported to pycassa to ease the transition, but I have done no work there
so far.

I'll leave it to somebody else to comment on adding collections, etc to
Thrift.




On Wed, Jul 17, 2013 at 3:18 PM, Vladimir Prudnikov
<v....@gmail.com>wrote:

> Hi all,
>
> This is may be is not the right place to ask, but I though developers can
> answer to my questions better than users.
>
> It looks clear that Cassandra dev team concentrates on CQL rather than
> Thrift interface. I'm considering using Cassandra as a storage for my
> current project which will replace MySQL. I still have problem choosing
> between Thrift (Pycassa) vs CQL (cqlengine, python-driver).
>
> Personally after using pycassa in test project I fall in love with it. I'd
> prefer to use pycassa rather than python-driver, cqlengine or write raw
> queries.
>
> 1) What's going on with Thrift interface and pycassa? I read somewhere that
> it will be for backward compatibility, but does it mean that new features
> will not be added to the Thrift interface hence will not be available with
> pycassa? For example collections
> http://www.datastax.com/dev/blog/cql3_collections.
>
> 2) Currently column families created using CQL is not visible through the
> Thrift interface and vice versa. If I start with pycassa and in future I
> decide to use CQL (due to lack of new features) will it be possible to use
> these CFs? Or convert them so they become visible and accessible using CQL?
>
> 3) Also I've done some basic tests (pycassa vs. cqlengine, no prepared
> statements) and seems like pycassa performs almost 2 times better which
> makes it more preferable. It was simple inserts of couple thousands rows.
>
> Do I have to put up with all this and start using CQL?
>
> Thanks,
> --
> Vladimir Prudnikov
>



-- 
Tyler Hobbs
DataStax <http://datastax.com/>