You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Kumar Ranjan <wi...@gmail.com> on 2013/11/26 18:46:25 UTC

Choosing python client lib for Cassandra

I have worked with Pycassa before and wrote a wrapper to use batch mutation
& connection pooling etc. But
http://wiki.apache.org/cassandra/ClientOptions recommends
now to use CQL 3 based api because Thrift based api (Pycassa) will be
supported for backward compatibility only. Apache site recommends to use
Python api written by DataStax which is still in Beta (As per their
documentation). See warnings from their python-driver/README.rst file

*Warning*

This driver is currently under heavy development, so the API and layout of
packages,modules, classes, and functions are subject to change. There may
also be serious bugs, so usage in a production environment is *not* recommended
at this time.

DataStax site http://www.datastax.com/download/clientdrivers recommends
using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
between CQL 3 based apis? Which stands out on top? Answers based on facts
will help the community so please refrain from opinions.

Please help ??

Re: Choosing python client lib for Cassandra

Posted by Kumar Ranjan <wi...@gmail.com>.
Hi Jon - you are right. Its that I understand other ORM like python sqlalchemy or perl DBIX by heart. So i can cql faster than use cqlengine. I will give a shot at python-driver based on Michael's recommendation.

—
Sent from Mailbox for iPhone

On Tue, Nov 26, 2013 at 2:21 PM, Jonathan Haddad <jo...@jonhaddad.com>
wrote:

> We're currently using the "cql" package, which is really a wrapper around
> thrift.
> To your concern about deadlines, I'm not sure how writing raw CQL is going
> to be any faster than using a mapper library for anything other than the
> most trivial of project.
> On Tue, Nov 26, 2013 at 11:09 AM, Kumar Ranjan <wi...@gmail.com> wrote:
>> Jon - Thanks. As I understand, cqlengine is an object mapper and must be
>> using for cql prepare statements. What are you wrapping it with, in
>> alternative to python-driver?
>> —
>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>
>>
>> On Tue, Nov 26, 2013 at 1:19 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>>
>>>  So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
>>> currently using the thrift api to execute CQL until the native driver is
>>> out of beta.  I'm a little biased in recommending it, since I'm one of the
>>> primary authors.  If you've got cqlengine specific questions, head to the
>>> mailing list: https://groups.google.com/forum/#!forum/cqlengine-users
>>>
>>> If you want to roll your own solution, it might make sense to take an
>>> approach like we did and throw a layer on top of thrift so you don't have
>>> to do a massive rewrite of your entire app once you want to go native.
>>>
>>> Jon
>>>
>>>
>>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>
>>>>  I have worked with Pycassa before and wrote a wrapper to use batch
>>>> mutation & connection pooling etc. But
>>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to use
>>>> CQL 3 based api because Thrift based api (Pycassa) will be supported for
>>>> backward compatibility only. Apache site recommends to use Python api
>>>> written by DataStax which is still in Beta (As per their documentation).
>>>> See warnings from their python-driver/README.rst file
>>>>
>>>> *Warning*
>>>>
>>>> This driver is currently under heavy development, so the API and layout
>>>> of packages,modules, classes, and functions are subject to change. There
>>>> may also be serious bugs, so usage in a production environment is *not* recommended
>>>> at this time.
>>>>
>>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>>> will help the community so please refrain from opinions.
>>>>
>>>> Please help ??
>>>>
>>>
>>>
>>>
>>> --
>>> Jon Haddad
>>> http://www.rustyrazorblade.com
>>> skype: rustyrazorblade
>>>
>>
>>
> -- 
> Jon Haddad
> http://www.rustyrazorblade.com
> skype: rustyrazorblade

Re: Choosing python client lib for Cassandra

Posted by Jonathan Haddad <jo...@jonhaddad.com>.
We're currently using the "cql" package, which is really a wrapper around
thrift.

To your concern about deadlines, I'm not sure how writing raw CQL is going
to be any faster than using a mapper library for anything other than the
most trivial of project.



On Tue, Nov 26, 2013 at 11:09 AM, Kumar Ranjan <wi...@gmail.com> wrote:

> Jon - Thanks. As I understand, cqlengine is an object mapper and must be
> using for cql prepare statements. What are you wrapping it with, in
> alternative to python-driver?
> —
> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>
>
> On Tue, Nov 26, 2013 at 1:19 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>
>>  So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
>> currently using the thrift api to execute CQL until the native driver is
>> out of beta.  I'm a little biased in recommending it, since I'm one of the
>> primary authors.  If you've got cqlengine specific questions, head to the
>> mailing list: https://groups.google.com/forum/#!forum/cqlengine-users
>>
>> If you want to roll your own solution, it might make sense to take an
>> approach like we did and throw a layer on top of thrift so you don't have
>> to do a massive rewrite of your entire app once you want to go native.
>>
>> Jon
>>
>>
>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>
>>>  I have worked with Pycassa before and wrote a wrapper to use batch
>>> mutation & connection pooling etc. But
>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to use
>>> CQL 3 based api because Thrift based api (Pycassa) will be supported for
>>> backward compatibility only. Apache site recommends to use Python api
>>> written by DataStax which is still in Beta (As per their documentation).
>>> See warnings from their python-driver/README.rst file
>>>
>>> *Warning*
>>>
>>> This driver is currently under heavy development, so the API and layout
>>> of packages,modules, classes, and functions are subject to change. There
>>> may also be serious bugs, so usage in a production environment is *not* recommended
>>> at this time.
>>>
>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>> will help the community so please refrain from opinions.
>>>
>>> Please help ??
>>>
>>
>>
>>
>> --
>> Jon Haddad
>> http://www.rustyrazorblade.com
>> skype: rustyrazorblade
>>
>
>


-- 
Jon Haddad
http://www.rustyrazorblade.com
skype: rustyrazorblade

Re: Choosing python client lib for Cassandra

Posted by Kumar Ranjan <wi...@gmail.com>.
Jon - Thanks. As I understand, cqlengine is an object mapper and must be using for cql prepare statements. What are you wrapping it with, in alternative to python-driver? 

—
Sent from Mailbox for iPhone

On Tue, Nov 26, 2013 at 1:19 PM, Jonathan Haddad <jo...@jonhaddad.com>
wrote:

> So, for cqlengine (https://github.com/cqlengine/cqlengine), we're currently
> using the thrift api to execute CQL until the native driver is out of beta.
>  I'm a little biased in recommending it, since I'm one of the primary
> authors.  If you've got cqlengine specific questions, head to the mailing
> list: https://groups.google.com/forum/#!forum/cqlengine-users
> If you want to roll your own solution, it might make sense to take an
> approach like we did and throw a layer on top of thrift so you don't have
> to do a massive rewrite of your entire app once you want to go native.
> Jon
> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com> wrote:
>> I have worked with Pycassa before and wrote a wrapper to use batch
>> mutation & connection pooling etc. But
>> http://wiki.apache.org/cassandra/ClientOptions recommends now to use CQL
>> 3 based api because Thrift based api (Pycassa) will be supported for
>> backward compatibility only. Apache site recommends to use Python api
>> written by DataStax which is still in Beta (As per their documentation).
>> See warnings from their python-driver/README.rst file
>>
>> *Warning*
>>
>> This driver is currently under heavy development, so the API and layout of
>> packages,modules, classes, and functions are subject to change. There may
>> also be serious bugs, so usage in a production environment is *not* recommended
>> at this time.
>>
>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>> will help the community so please refrain from opinions.
>>
>> Please help ??
>>
> -- 
> Jon Haddad
> http://www.rustyrazorblade.com
> skype: rustyrazorblade

Re: Choosing python client lib for Cassandra

Posted by Kumar Ranjan <wi...@gmail.com>.
Thanks Jonathan for the help.


On Tue, Nov 26, 2013 at 6:14 PM, Jonathan Haddad <jo...@jonhaddad.com> wrote:

> No, 2.7 only.
>
>
> On Tue, Nov 26, 2013 at 3:04 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>
>> Hi Jonathan - Does cqlengine have support for python 2.6 ?
>>
>>
>> On Tue, Nov 26, 2013 at 4:17 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>>
>>> cqlengine supports batch queries, see the docs here:
>>> http://cqlengine.readthedocs.org/en/latest/topics/queryset.html#batch-queries
>>>
>>>
>>> On Tue, Nov 26, 2013 at 11:53 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>
>>>> Jon - Any comment on batching?
>>>> —
>>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>>
>>>>
>>>> On Tue, Nov 26, 2013 at 2:52 PM, Laing, Michael <
>>>> michael.laing@nytimes.com> wrote:
>>>>
>>>>> That's not a problem we have faced yet.
>>>>>
>>>>>
>>>>> On Tue, Nov 26, 2013 at 2:46 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>>
>>>>>> How do you insert huge amount of data?
>>>>>>  —
>>>>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>>>>
>>>>>>
>>>>>>  On Tue, Nov 26, 2013 at 2:31 PM, Laing, Michael <
>>>>>> michael.laing@nytimes.com> wrote:
>>>>>>
>>>>>>> I think thread pooling is always in operation - and we haven't seen
>>>>>>> any problems in that regard going to the 6 local nodes each client connects
>>>>>>> to. We haven't tried batching yet.
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Nov 26, 2013 at 2:05 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>>>>
>>>>>>>> Michael - thanks. Have you tried batching and thread pooling in
>>>>>>>> python-driver? For now, i would avoid object mapper cqlengine, just because
>>>>>>>> of my deadlines.
>>>>>>>> —
>>>>>>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Nov 26, 2013 at 1:52 PM, Laing, Michael <
>>>>>>>> michael.laing@nytimes.com> wrote:
>>>>>>>>
>>>>>>>>> We use the python-driver and have contributed some to its
>>>>>>>>> development.
>>>>>>>>>
>>>>>>>>> I have been careful to not push too fast on features until we need
>>>>>>>>> them. For example, we have just started using prepared statements - working
>>>>>>>>> well BTW.
>>>>>>>>>
>>>>>>>>> Next we will employ futures and start to exploit the async nature
>>>>>>>>> of new interface to C*.
>>>>>>>>>
>>>>>>>>> We are very familiar with libev in both C and python, and are
>>>>>>>>> happy to dig into the code to add features and fix bugs as needed, so the
>>>>>>>>> rewards of bypassing the old and focusing on the new seem worth the risks
>>>>>>>>> to us.
>>>>>>>>>
>>>>>>>>> ml
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <
>>>>>>>>> jon@jonhaddad.com> wrote:
>>>>>>>>>
>>>>>>>>>>  So, for cqlengine (https://github.com/cqlengine/cqlengine),
>>>>>>>>>> we're currently using the thrift api to execute CQL until the native driver
>>>>>>>>>> is out of beta.  I'm a little biased in recommending it, since I'm one of
>>>>>>>>>> the primary authors.  If you've got cqlengine specific questions, head to
>>>>>>>>>> the mailing list:
>>>>>>>>>> https://groups.google.com/forum/#!forum/cqlengine-users
>>>>>>>>>>
>>>>>>>>>> If you want to roll your own solution, it might make sense to
>>>>>>>>>> take an approach like we did and throw a layer on top of thrift so you
>>>>>>>>>> don't have to do a massive rewrite of your entire app once you want to go
>>>>>>>>>> native.
>>>>>>>>>>
>>>>>>>>>> Jon
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <
>>>>>>>>>> winnerdood@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>>  I have worked with Pycassa before and wrote a wrapper to use
>>>>>>>>>>> batch mutation & connection pooling etc. But
>>>>>>>>>>> http://wiki.apache.org/cassandra/ClientOptions recommends now
>>>>>>>>>>> to use CQL 3 based api because Thrift based api (Pycassa) will be supported
>>>>>>>>>>> for backward compatibility only. Apache site recommends to use Python api
>>>>>>>>>>> written by DataStax which is still in Beta (As per their documentation).
>>>>>>>>>>> See warnings from their python-driver/README.rst file
>>>>>>>>>>>
>>>>>>>>>>> *Warning*
>>>>>>>>>>>
>>>>>>>>>>> This driver is currently under heavy development, so the API and
>>>>>>>>>>> layout of packages,modules, classes, and functions are subject to change.
>>>>>>>>>>> There may also be serious bugs, so usage in a production environment is
>>>>>>>>>>> *not* recommended at this time.
>>>>>>>>>>>
>>>>>>>>>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>>>>>>>>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>>>>>>>>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>>>>>>>>>> will help the community so please refrain from opinions.
>>>>>>>>>>>
>>>>>>>>>>> Please help ??
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>>>> Jon Haddad
>>>>>>>>>> http://www.rustyrazorblade.com
>>>>>>>>>> skype: rustyrazorblade
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Jon Haddad
>>> http://www.rustyrazorblade.com
>>> skype: rustyrazorblade
>>>
>>
>>
>
>
> --
> Jon Haddad
> http://www.rustyrazorblade.com
> skype: rustyrazorblade
>

Re: Choosing python client lib for Cassandra

Posted by Jonathan Haddad <jo...@jonhaddad.com>.
No, 2.7 only.


On Tue, Nov 26, 2013 at 3:04 PM, Kumar Ranjan <wi...@gmail.com> wrote:

> Hi Jonathan - Does cqlengine have support for python 2.6 ?
>
>
> On Tue, Nov 26, 2013 at 4:17 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>
>> cqlengine supports batch queries, see the docs here:
>> http://cqlengine.readthedocs.org/en/latest/topics/queryset.html#batch-queries
>>
>>
>> On Tue, Nov 26, 2013 at 11:53 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>
>>> Jon - Any comment on batching?
>>> —
>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>
>>>
>>> On Tue, Nov 26, 2013 at 2:52 PM, Laing, Michael <
>>> michael.laing@nytimes.com> wrote:
>>>
>>>> That's not a problem we have faced yet.
>>>>
>>>>
>>>> On Tue, Nov 26, 2013 at 2:46 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>
>>>>> How do you insert huge amount of data?
>>>>>  —
>>>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>>>
>>>>>
>>>>>  On Tue, Nov 26, 2013 at 2:31 PM, Laing, Michael <
>>>>> michael.laing@nytimes.com> wrote:
>>>>>
>>>>>> I think thread pooling is always in operation - and we haven't seen
>>>>>> any problems in that regard going to the 6 local nodes each client connects
>>>>>> to. We haven't tried batching yet.
>>>>>>
>>>>>>
>>>>>> On Tue, Nov 26, 2013 at 2:05 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>>>
>>>>>>> Michael - thanks. Have you tried batching and thread pooling in
>>>>>>> python-driver? For now, i would avoid object mapper cqlengine, just because
>>>>>>> of my deadlines.
>>>>>>> —
>>>>>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Nov 26, 2013 at 1:52 PM, Laing, Michael <
>>>>>>> michael.laing@nytimes.com> wrote:
>>>>>>>
>>>>>>>> We use the python-driver and have contributed some to its
>>>>>>>> development.
>>>>>>>>
>>>>>>>> I have been careful to not push too fast on features until we need
>>>>>>>> them. For example, we have just started using prepared statements - working
>>>>>>>> well BTW.
>>>>>>>>
>>>>>>>> Next we will employ futures and start to exploit the async nature
>>>>>>>> of new interface to C*.
>>>>>>>>
>>>>>>>> We are very familiar with libev in both C and python, and are happy
>>>>>>>> to dig into the code to add features and fix bugs as needed, so the rewards
>>>>>>>> of bypassing the old and focusing on the new seem worth the risks to us.
>>>>>>>>
>>>>>>>> ml
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <jon@jonhaddad.com
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>>  So, for cqlengine (https://github.com/cqlengine/cqlengine),
>>>>>>>>> we're currently using the thrift api to execute CQL until the native driver
>>>>>>>>> is out of beta.  I'm a little biased in recommending it, since I'm one of
>>>>>>>>> the primary authors.  If you've got cqlengine specific questions, head to
>>>>>>>>> the mailing list:
>>>>>>>>> https://groups.google.com/forum/#!forum/cqlengine-users
>>>>>>>>>
>>>>>>>>> If you want to roll your own solution, it might make sense to take
>>>>>>>>> an approach like we did and throw a layer on top of thrift so you don't
>>>>>>>>> have to do a massive rewrite of your entire app once you want to go native.
>>>>>>>>>
>>>>>>>>> Jon
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <
>>>>>>>>> winnerdood@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>>  I have worked with Pycassa before and wrote a wrapper to use
>>>>>>>>>> batch mutation & connection pooling etc. But
>>>>>>>>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to
>>>>>>>>>> use CQL 3 based api because Thrift based api (Pycassa) will be supported
>>>>>>>>>> for backward compatibility only. Apache site recommends to use Python api
>>>>>>>>>> written by DataStax which is still in Beta (As per their documentation).
>>>>>>>>>> See warnings from their python-driver/README.rst file
>>>>>>>>>>
>>>>>>>>>> *Warning*
>>>>>>>>>>
>>>>>>>>>> This driver is currently under heavy development, so the API and
>>>>>>>>>> layout of packages,modules, classes, and functions are subject to change.
>>>>>>>>>> There may also be serious bugs, so usage in a production environment is
>>>>>>>>>> *not* recommended at this time.
>>>>>>>>>>
>>>>>>>>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>>>>>>>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>>>>>>>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>>>>>>>>> will help the community so please refrain from opinions.
>>>>>>>>>>
>>>>>>>>>> Please help ??
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>> Jon Haddad
>>>>>>>>> http://www.rustyrazorblade.com
>>>>>>>>> skype: rustyrazorblade
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>>
>> --
>> Jon Haddad
>> http://www.rustyrazorblade.com
>> skype: rustyrazorblade
>>
>
>


-- 
Jon Haddad
http://www.rustyrazorblade.com
skype: rustyrazorblade

Re: Choosing python client lib for Cassandra

Posted by Kumar Ranjan <wi...@gmail.com>.
Hi Jonathan - Does cqlengine have support for python 2.6 ?


On Tue, Nov 26, 2013 at 4:17 PM, Jonathan Haddad <jo...@jonhaddad.com> wrote:

> cqlengine supports batch queries, see the docs here:
> http://cqlengine.readthedocs.org/en/latest/topics/queryset.html#batch-queries
>
>
> On Tue, Nov 26, 2013 at 11:53 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>
>> Jon - Any comment on batching?
>> —
>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>
>>
>> On Tue, Nov 26, 2013 at 2:52 PM, Laing, Michael <
>> michael.laing@nytimes.com> wrote:
>>
>>> That's not a problem we have faced yet.
>>>
>>>
>>> On Tue, Nov 26, 2013 at 2:46 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>
>>>> How do you insert huge amount of data?
>>>>  —
>>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>>
>>>>
>>>>  On Tue, Nov 26, 2013 at 2:31 PM, Laing, Michael <
>>>> michael.laing@nytimes.com> wrote:
>>>>
>>>>> I think thread pooling is always in operation - and we haven't seen
>>>>> any problems in that regard going to the 6 local nodes each client connects
>>>>> to. We haven't tried batching yet.
>>>>>
>>>>>
>>>>> On Tue, Nov 26, 2013 at 2:05 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>>
>>>>>> Michael - thanks. Have you tried batching and thread pooling in
>>>>>> python-driver? For now, i would avoid object mapper cqlengine, just because
>>>>>> of my deadlines.
>>>>>> —
>>>>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>>>>
>>>>>>
>>>>>> On Tue, Nov 26, 2013 at 1:52 PM, Laing, Michael <
>>>>>> michael.laing@nytimes.com> wrote:
>>>>>>
>>>>>>> We use the python-driver and have contributed some to its
>>>>>>> development.
>>>>>>>
>>>>>>> I have been careful to not push too fast on features until we need
>>>>>>> them. For example, we have just started using prepared statements - working
>>>>>>> well BTW.
>>>>>>>
>>>>>>> Next we will employ futures and start to exploit the async nature of
>>>>>>> new interface to C*.
>>>>>>>
>>>>>>> We are very familiar with libev in both C and python, and are happy
>>>>>>> to dig into the code to add features and fix bugs as needed, so the rewards
>>>>>>> of bypassing the old and focusing on the new seem worth the risks to us.
>>>>>>>
>>>>>>> ml
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>>>>>>>
>>>>>>>>  So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
>>>>>>>> currently using the thrift api to execute CQL until the native driver is
>>>>>>>> out of beta.  I'm a little biased in recommending it, since I'm one of the
>>>>>>>> primary authors.  If you've got cqlengine specific questions, head to the
>>>>>>>> mailing list:
>>>>>>>> https://groups.google.com/forum/#!forum/cqlengine-users
>>>>>>>>
>>>>>>>> If you want to roll your own solution, it might make sense to take
>>>>>>>> an approach like we did and throw a layer on top of thrift so you don't
>>>>>>>> have to do a massive rewrite of your entire app once you want to go native.
>>>>>>>>
>>>>>>>> Jon
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <winnerdood@gmail.com
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>>  I have worked with Pycassa before and wrote a wrapper to use
>>>>>>>>> batch mutation & connection pooling etc. But
>>>>>>>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to
>>>>>>>>> use CQL 3 based api because Thrift based api (Pycassa) will be supported
>>>>>>>>> for backward compatibility only. Apache site recommends to use Python api
>>>>>>>>> written by DataStax which is still in Beta (As per their documentation).
>>>>>>>>> See warnings from their python-driver/README.rst file
>>>>>>>>>
>>>>>>>>> *Warning*
>>>>>>>>>
>>>>>>>>> This driver is currently under heavy development, so the API and
>>>>>>>>> layout of packages,modules, classes, and functions are subject to change.
>>>>>>>>> There may also be serious bugs, so usage in a production environment is
>>>>>>>>> *not* recommended at this time.
>>>>>>>>>
>>>>>>>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>>>>>>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>>>>>>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>>>>>>>> will help the community so please refrain from opinions.
>>>>>>>>>
>>>>>>>>> Please help ??
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>> Jon Haddad
>>>>>>>> http://www.rustyrazorblade.com
>>>>>>>> skype: rustyrazorblade
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>
> --
> Jon Haddad
> http://www.rustyrazorblade.com
> skype: rustyrazorblade
>

Re: Choosing python client lib for Cassandra

Posted by Jonathan Haddad <jo...@jonhaddad.com>.
cqlengine supports batch queries, see the docs here:
http://cqlengine.readthedocs.org/en/latest/topics/queryset.html#batch-queries


On Tue, Nov 26, 2013 at 11:53 AM, Kumar Ranjan <wi...@gmail.com> wrote:

> Jon - Any comment on batching?
> —
> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>
>
> On Tue, Nov 26, 2013 at 2:52 PM, Laing, Michael <michael.laing@nytimes.com
> > wrote:
>
>> That's not a problem we have faced yet.
>>
>>
>> On Tue, Nov 26, 2013 at 2:46 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>
>>> How do you insert huge amount of data?
>>>  —
>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>
>>>
>>>  On Tue, Nov 26, 2013 at 2:31 PM, Laing, Michael <
>>> michael.laing@nytimes.com> wrote:
>>>
>>>> I think thread pooling is always in operation - and we haven't seen any
>>>> problems in that regard going to the 6 local nodes each client connects to.
>>>> We haven't tried batching yet.
>>>>
>>>>
>>>> On Tue, Nov 26, 2013 at 2:05 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>
>>>>> Michael - thanks. Have you tried batching and thread pooling in
>>>>> python-driver? For now, i would avoid object mapper cqlengine, just because
>>>>> of my deadlines.
>>>>> —
>>>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>>>
>>>>>
>>>>> On Tue, Nov 26, 2013 at 1:52 PM, Laing, Michael <
>>>>> michael.laing@nytimes.com> wrote:
>>>>>
>>>>>> We use the python-driver and have contributed some to its development.
>>>>>>
>>>>>> I have been careful to not push too fast on features until we need
>>>>>> them. For example, we have just started using prepared statements - working
>>>>>> well BTW.
>>>>>>
>>>>>> Next we will employ futures and start to exploit the async nature of
>>>>>> new interface to C*.
>>>>>>
>>>>>> We are very familiar with libev in both C and python, and are happy
>>>>>> to dig into the code to add features and fix bugs as needed, so the rewards
>>>>>> of bypassing the old and focusing on the new seem worth the risks to us.
>>>>>>
>>>>>> ml
>>>>>>
>>>>>>
>>>>>> On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>>>>>>
>>>>>>>  So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
>>>>>>> currently using the thrift api to execute CQL until the native driver is
>>>>>>> out of beta.  I'm a little biased in recommending it, since I'm one of the
>>>>>>> primary authors.  If you've got cqlengine specific questions, head to the
>>>>>>> mailing list:
>>>>>>> https://groups.google.com/forum/#!forum/cqlengine-users
>>>>>>>
>>>>>>> If you want to roll your own solution, it might make sense to take
>>>>>>> an approach like we did and throw a layer on top of thrift so you don't
>>>>>>> have to do a massive rewrite of your entire app once you want to go native.
>>>>>>>
>>>>>>> Jon
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>>>>
>>>>>>>>  I have worked with Pycassa before and wrote a wrapper to use
>>>>>>>> batch mutation & connection pooling etc. But
>>>>>>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to
>>>>>>>> use CQL 3 based api because Thrift based api (Pycassa) will be supported
>>>>>>>> for backward compatibility only. Apache site recommends to use Python api
>>>>>>>> written by DataStax which is still in Beta (As per their documentation).
>>>>>>>> See warnings from their python-driver/README.rst file
>>>>>>>>
>>>>>>>> *Warning*
>>>>>>>>
>>>>>>>> This driver is currently under heavy development, so the API and
>>>>>>>> layout of packages,modules, classes, and functions are subject to change.
>>>>>>>> There may also be serious bugs, so usage in a production environment is
>>>>>>>> *not* recommended at this time.
>>>>>>>>
>>>>>>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>>>>>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>>>>>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>>>>>>> will help the community so please refrain from opinions.
>>>>>>>>
>>>>>>>> Please help ??
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>> Jon Haddad
>>>>>>> http://www.rustyrazorblade.com
>>>>>>> skype: rustyrazorblade
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>


-- 
Jon Haddad
http://www.rustyrazorblade.com
skype: rustyrazorblade

Re: Choosing python client lib for Cassandra

Posted by Kumar Ranjan <wi...@gmail.com>.
Jon - Any comment on batching?

—
Sent from Mailbox for iPhone

On Tue, Nov 26, 2013 at 2:52 PM, Laing, Michael <mi...@nytimes.com>
wrote:

> That's not a problem we have faced yet.
> On Tue, Nov 26, 2013 at 2:46 PM, Kumar Ranjan <wi...@gmail.com> wrote:
>> How do you insert huge amount of data?
>> —
>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>
>>
>> On Tue, Nov 26, 2013 at 2:31 PM, Laing, Michael <michael.laing@nytimes.com
>> > wrote:
>>
>>> I think thread pooling is always in operation - and we haven't seen any
>>> problems in that regard going to the 6 local nodes each client connects to.
>>> We haven't tried batching yet.
>>>
>>>
>>> On Tue, Nov 26, 2013 at 2:05 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>
>>>> Michael - thanks. Have you tried batching and thread pooling in
>>>> python-driver? For now, i would avoid object mapper cqlengine, just because
>>>> of my deadlines.
>>>> —
>>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>>
>>>>
>>>> On Tue, Nov 26, 2013 at 1:52 PM, Laing, Michael <
>>>> michael.laing@nytimes.com> wrote:
>>>>
>>>>> We use the python-driver and have contributed some to its development.
>>>>>
>>>>> I have been careful to not push too fast on features until we need
>>>>> them. For example, we have just started using prepared statements - working
>>>>> well BTW.
>>>>>
>>>>> Next we will employ futures and start to exploit the async nature of
>>>>> new interface to C*.
>>>>>
>>>>> We are very familiar with libev in both C and python, and are happy to
>>>>> dig into the code to add features and fix bugs as needed, so the rewards of
>>>>> bypassing the old and focusing on the new seem worth the risks to us.
>>>>>
>>>>> ml
>>>>>
>>>>>
>>>>> On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>>>>>
>>>>>>  So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
>>>>>> currently using the thrift api to execute CQL until the native driver is
>>>>>> out of beta.  I'm a little biased in recommending it, since I'm one of the
>>>>>> primary authors.  If you've got cqlengine specific questions, head to the
>>>>>> mailing list: https://groups.google.com/forum/#!forum/cqlengine-users
>>>>>>
>>>>>> If you want to roll your own solution, it might make sense to take an
>>>>>> approach like we did and throw a layer on top of thrift so you don't have
>>>>>> to do a massive rewrite of your entire app once you want to go native.
>>>>>>
>>>>>> Jon
>>>>>>
>>>>>>
>>>>>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>>>
>>>>>>>  I have worked with Pycassa before and wrote a wrapper to use batch
>>>>>>> mutation & connection pooling etc. But
>>>>>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to use
>>>>>>> CQL 3 based api because Thrift based api (Pycassa) will be supported for
>>>>>>> backward compatibility only. Apache site recommends to use Python api
>>>>>>> written by DataStax which is still in Beta (As per their documentation).
>>>>>>> See warnings from their python-driver/README.rst file
>>>>>>>
>>>>>>> *Warning*
>>>>>>>
>>>>>>> This driver is currently under heavy development, so the API and
>>>>>>> layout of packages,modules, classes, and functions are subject to change.
>>>>>>> There may also be serious bugs, so usage in a production environment is
>>>>>>> *not* recommended at this time.
>>>>>>>
>>>>>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>>>>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>>>>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>>>>>> will help the community so please refrain from opinions.
>>>>>>>
>>>>>>> Please help ??
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  --
>>>>>> Jon Haddad
>>>>>> http://www.rustyrazorblade.com
>>>>>> skype: rustyrazorblade
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>

Re: Choosing python client lib for Cassandra

Posted by "Laing, Michael" <mi...@nytimes.com>.
That's not a problem we have faced yet.


On Tue, Nov 26, 2013 at 2:46 PM, Kumar Ranjan <wi...@gmail.com> wrote:

> How do you insert huge amount of data?
> —
> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>
>
> On Tue, Nov 26, 2013 at 2:31 PM, Laing, Michael <michael.laing@nytimes.com
> > wrote:
>
>> I think thread pooling is always in operation - and we haven't seen any
>> problems in that regard going to the 6 local nodes each client connects to.
>> We haven't tried batching yet.
>>
>>
>> On Tue, Nov 26, 2013 at 2:05 PM, Kumar Ranjan <wi...@gmail.com>wrote:
>>
>>> Michael - thanks. Have you tried batching and thread pooling in
>>> python-driver? For now, i would avoid object mapper cqlengine, just because
>>> of my deadlines.
>>> —
>>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>>
>>>
>>> On Tue, Nov 26, 2013 at 1:52 PM, Laing, Michael <
>>> michael.laing@nytimes.com> wrote:
>>>
>>>> We use the python-driver and have contributed some to its development.
>>>>
>>>> I have been careful to not push too fast on features until we need
>>>> them. For example, we have just started using prepared statements - working
>>>> well BTW.
>>>>
>>>> Next we will employ futures and start to exploit the async nature of
>>>> new interface to C*.
>>>>
>>>> We are very familiar with libev in both C and python, and are happy to
>>>> dig into the code to add features and fix bugs as needed, so the rewards of
>>>> bypassing the old and focusing on the new seem worth the risks to us.
>>>>
>>>> ml
>>>>
>>>>
>>>> On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>>>>
>>>>>  So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
>>>>> currently using the thrift api to execute CQL until the native driver is
>>>>> out of beta.  I'm a little biased in recommending it, since I'm one of the
>>>>> primary authors.  If you've got cqlengine specific questions, head to the
>>>>> mailing list: https://groups.google.com/forum/#!forum/cqlengine-users
>>>>>
>>>>> If you want to roll your own solution, it might make sense to take an
>>>>> approach like we did and throw a layer on top of thrift so you don't have
>>>>> to do a massive rewrite of your entire app once you want to go native.
>>>>>
>>>>> Jon
>>>>>
>>>>>
>>>>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>>
>>>>>>  I have worked with Pycassa before and wrote a wrapper to use batch
>>>>>> mutation & connection pooling etc. But
>>>>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to use
>>>>>> CQL 3 based api because Thrift based api (Pycassa) will be supported for
>>>>>> backward compatibility only. Apache site recommends to use Python api
>>>>>> written by DataStax which is still in Beta (As per their documentation).
>>>>>> See warnings from their python-driver/README.rst file
>>>>>>
>>>>>> *Warning*
>>>>>>
>>>>>> This driver is currently under heavy development, so the API and
>>>>>> layout of packages,modules, classes, and functions are subject to change.
>>>>>> There may also be serious bugs, so usage in a production environment is
>>>>>> *not* recommended at this time.
>>>>>>
>>>>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>>>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>>>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>>>>> will help the community so please refrain from opinions.
>>>>>>
>>>>>> Please help ??
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  --
>>>>> Jon Haddad
>>>>> http://www.rustyrazorblade.com
>>>>> skype: rustyrazorblade
>>>>>
>>>>
>>>>
>>>
>>
>

Re: Choosing python client lib for Cassandra

Posted by Robert Coli <rc...@eventbrite.com>.
On Tue, Nov 26, 2013 at 11:46 AM, Kumar Ranjan <wi...@gmail.com> wrote:

> How do you insert huge amount of data?
>

http://www.palominodb.com/blog/2012/09/25/bulk-loading-options-cassandra ?

=Rob

Re: Choosing python client lib for Cassandra

Posted by Kumar Ranjan <wi...@gmail.com>.
How do you insert huge amount of data?

—
Sent from Mailbox for iPhone

On Tue, Nov 26, 2013 at 2:31 PM, Laing, Michael <mi...@nytimes.com>
wrote:

> I think thread pooling is always in operation - and we haven't seen any
> problems in that regard going to the 6 local nodes each client connects to.
> We haven't tried batching yet.
> On Tue, Nov 26, 2013 at 2:05 PM, Kumar Ranjan <wi...@gmail.com> wrote:
>> Michael - thanks. Have you tried batching and thread pooling in
>> python-driver? For now, i would avoid object mapper cqlengine, just because
>> of my deadlines.
>> —
>> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>>
>>
>> On Tue, Nov 26, 2013 at 1:52 PM, Laing, Michael <michael.laing@nytimes.com
>> > wrote:
>>
>>> We use the python-driver and have contributed some to its development.
>>>
>>> I have been careful to not push too fast on features until we need them.
>>> For example, we have just started using prepared statements - working well
>>> BTW.
>>>
>>> Next we will employ futures and start to exploit the async nature of new
>>> interface to C*.
>>>
>>> We are very familiar with libev in both C and python, and are happy to
>>> dig into the code to add features and fix bugs as needed, so the rewards of
>>> bypassing the old and focusing on the new seem worth the risks to us.
>>>
>>> ml
>>>
>>>
>>> On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>>>
>>>>  So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
>>>> currently using the thrift api to execute CQL until the native driver is
>>>> out of beta.  I'm a little biased in recommending it, since I'm one of the
>>>> primary authors.  If you've got cqlengine specific questions, head to the
>>>> mailing list: https://groups.google.com/forum/#!forum/cqlengine-users
>>>>
>>>> If you want to roll your own solution, it might make sense to take an
>>>> approach like we did and throw a layer on top of thrift so you don't have
>>>> to do a massive rewrite of your entire app once you want to go native.
>>>>
>>>> Jon
>>>>
>>>>
>>>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>>
>>>>>  I have worked with Pycassa before and wrote a wrapper to use batch
>>>>> mutation & connection pooling etc. But
>>>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to use
>>>>> CQL 3 based api because Thrift based api (Pycassa) will be supported for
>>>>> backward compatibility only. Apache site recommends to use Python api
>>>>> written by DataStax which is still in Beta (As per their documentation).
>>>>> See warnings from their python-driver/README.rst file
>>>>>
>>>>> *Warning*
>>>>>
>>>>> This driver is currently under heavy development, so the API and layout
>>>>> of packages,modules, classes, and functions are subject to change. There
>>>>> may also be serious bugs, so usage in a production environment is *not* recommended
>>>>> at this time.
>>>>>
>>>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>>>> will help the community so please refrain from opinions.
>>>>>
>>>>> Please help ??
>>>>>
>>>>
>>>>
>>>>
>>>>  --
>>>> Jon Haddad
>>>> http://www.rustyrazorblade.com
>>>> skype: rustyrazorblade
>>>>
>>>
>>>
>>

Re: Choosing python client lib for Cassandra

Posted by "Laing, Michael" <mi...@nytimes.com>.
I think thread pooling is always in operation - and we haven't seen any
problems in that regard going to the 6 local nodes each client connects to.
We haven't tried batching yet.


On Tue, Nov 26, 2013 at 2:05 PM, Kumar Ranjan <wi...@gmail.com> wrote:

> Michael - thanks. Have you tried batching and thread pooling in
> python-driver? For now, i would avoid object mapper cqlengine, just because
> of my deadlines.
> —
> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
>
>
> On Tue, Nov 26, 2013 at 1:52 PM, Laing, Michael <michael.laing@nytimes.com
> > wrote:
>
>> We use the python-driver and have contributed some to its development.
>>
>> I have been careful to not push too fast on features until we need them.
>> For example, we have just started using prepared statements - working well
>> BTW.
>>
>> Next we will employ futures and start to exploit the async nature of new
>> interface to C*.
>>
>> We are very familiar with libev in both C and python, and are happy to
>> dig into the code to add features and fix bugs as needed, so the rewards of
>> bypassing the old and focusing on the new seem worth the risks to us.
>>
>> ml
>>
>>
>> On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <jo...@jonhaddad.com>wrote:
>>
>>>  So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
>>> currently using the thrift api to execute CQL until the native driver is
>>> out of beta.  I'm a little biased in recommending it, since I'm one of the
>>> primary authors.  If you've got cqlengine specific questions, head to the
>>> mailing list: https://groups.google.com/forum/#!forum/cqlengine-users
>>>
>>> If you want to roll your own solution, it might make sense to take an
>>> approach like we did and throw a layer on top of thrift so you don't have
>>> to do a massive rewrite of your entire app once you want to go native.
>>>
>>> Jon
>>>
>>>
>>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>>
>>>>  I have worked with Pycassa before and wrote a wrapper to use batch
>>>> mutation & connection pooling etc. But
>>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to use
>>>> CQL 3 based api because Thrift based api (Pycassa) will be supported for
>>>> backward compatibility only. Apache site recommends to use Python api
>>>> written by DataStax which is still in Beta (As per their documentation).
>>>> See warnings from their python-driver/README.rst file
>>>>
>>>> *Warning*
>>>>
>>>> This driver is currently under heavy development, so the API and layout
>>>> of packages,modules, classes, and functions are subject to change. There
>>>> may also be serious bugs, so usage in a production environment is *not* recommended
>>>> at this time.
>>>>
>>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>>> will help the community so please refrain from opinions.
>>>>
>>>> Please help ??
>>>>
>>>
>>>
>>>
>>>  --
>>> Jon Haddad
>>> http://www.rustyrazorblade.com
>>> skype: rustyrazorblade
>>>
>>
>>
>

Re: Choosing python client lib for Cassandra

Posted by Kumar Ranjan <wi...@gmail.com>.
Michael - thanks. Have you tried batching and thread pooling in python-driver? For now, i would avoid object mapper cqlengine, just because of my deadlines.

—
Sent from Mailbox for iPhone

On Tue, Nov 26, 2013 at 1:52 PM, Laing, Michael <mi...@nytimes.com>
wrote:

> We use the python-driver and have contributed some to its development.
> I have been careful to not push too fast on features until we need them.
> For example, we have just started using prepared statements - working well
> BTW.
> Next we will employ futures and start to exploit the async nature of new
> interface to C*.
> We are very familiar with libev in both C and python, and are happy to dig
> into the code to add features and fix bugs as needed, so the rewards of
> bypassing the old and focusing on the new seem worth the risks to us.
> ml
> On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <jo...@jonhaddad.com> wrote:
>> So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
>> currently using the thrift api to execute CQL until the native driver is
>> out of beta.  I'm a little biased in recommending it, since I'm one of the
>> primary authors.  If you've got cqlengine specific questions, head to the
>> mailing list: https://groups.google.com/forum/#!forum/cqlengine-users
>>
>> If you want to roll your own solution, it might make sense to take an
>> approach like we did and throw a layer on top of thrift so you don't have
>> to do a massive rewrite of your entire app once you want to go native.
>>
>> Jon
>>
>>
>> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>>
>>> I have worked with Pycassa before and wrote a wrapper to use batch
>>> mutation & connection pooling etc. But
>>> http://wiki.apache.org/cassandra/ClientOptions recommends now to use CQL
>>> 3 based api because Thrift based api (Pycassa) will be supported for
>>> backward compatibility only. Apache site recommends to use Python api
>>> written by DataStax which is still in Beta (As per their documentation).
>>> See warnings from their python-driver/README.rst file
>>>
>>> *Warning*
>>>
>>> This driver is currently under heavy development, so the API and layout
>>> of packages,modules, classes, and functions are subject to change. There
>>> may also be serious bugs, so usage in a production environment is *not* recommended
>>> at this time.
>>>
>>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>>> will help the community so please refrain from opinions.
>>>
>>> Please help ??
>>>
>>
>>
>>
>> --
>> Jon Haddad
>> http://www.rustyrazorblade.com
>> skype: rustyrazorblade
>>

Re: Choosing python client lib for Cassandra

Posted by "Laing, Michael" <mi...@nytimes.com>.
We use the python-driver and have contributed some to its development.

I have been careful to not push too fast on features until we need them.
For example, we have just started using prepared statements - working well
BTW.

Next we will employ futures and start to exploit the async nature of new
interface to C*.

We are very familiar with libev in both C and python, and are happy to dig
into the code to add features and fix bugs as needed, so the rewards of
bypassing the old and focusing on the new seem worth the risks to us.

ml


On Tue, Nov 26, 2013 at 1:16 PM, Jonathan Haddad <jo...@jonhaddad.com> wrote:

> So, for cqlengine (https://github.com/cqlengine/cqlengine), we're
> currently using the thrift api to execute CQL until the native driver is
> out of beta.  I'm a little biased in recommending it, since I'm one of the
> primary authors.  If you've got cqlengine specific questions, head to the
> mailing list: https://groups.google.com/forum/#!forum/cqlengine-users
>
> If you want to roll your own solution, it might make sense to take an
> approach like we did and throw a layer on top of thrift so you don't have
> to do a massive rewrite of your entire app once you want to go native.
>
> Jon
>
>
> On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com>wrote:
>
>> I have worked with Pycassa before and wrote a wrapper to use batch
>> mutation & connection pooling etc. But
>> http://wiki.apache.org/cassandra/ClientOptions recommends now to use CQL
>> 3 based api because Thrift based api (Pycassa) will be supported for
>> backward compatibility only. Apache site recommends to use Python api
>> written by DataStax which is still in Beta (As per their documentation).
>> See warnings from their python-driver/README.rst file
>>
>> *Warning*
>>
>> This driver is currently under heavy development, so the API and layout
>> of packages,modules, classes, and functions are subject to change. There
>> may also be serious bugs, so usage in a production environment is *not* recommended
>> at this time.
>>
>> DataStax site http://www.datastax.com/download/clientdrivers recommends
>> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
>> between CQL 3 based apis? Which stands out on top? Answers based on facts
>> will help the community so please refrain from opinions.
>>
>> Please help ??
>>
>
>
>
> --
> Jon Haddad
> http://www.rustyrazorblade.com
> skype: rustyrazorblade
>

Re: Choosing python client lib for Cassandra

Posted by Jonathan Haddad <jo...@jonhaddad.com>.
So, for cqlengine (https://github.com/cqlengine/cqlengine), we're currently
using the thrift api to execute CQL until the native driver is out of beta.
 I'm a little biased in recommending it, since I'm one of the primary
authors.  If you've got cqlengine specific questions, head to the mailing
list: https://groups.google.com/forum/#!forum/cqlengine-users

If you want to roll your own solution, it might make sense to take an
approach like we did and throw a layer on top of thrift so you don't have
to do a massive rewrite of your entire app once you want to go native.

Jon


On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com> wrote:

> I have worked with Pycassa before and wrote a wrapper to use batch
> mutation & connection pooling etc. But
> http://wiki.apache.org/cassandra/ClientOptions recommends now to use CQL
> 3 based api because Thrift based api (Pycassa) will be supported for
> backward compatibility only. Apache site recommends to use Python api
> written by DataStax which is still in Beta (As per their documentation).
> See warnings from their python-driver/README.rst file
>
> *Warning*
>
> This driver is currently under heavy development, so the API and layout of
> packages,modules, classes, and functions are subject to change. There may
> also be serious bugs, so usage in a production environment is *not* recommended
> at this time.
>
> DataStax site http://www.datastax.com/download/clientdrivers recommends
> using DB-API 2.0 plus legacy api's. Is there more? Has any one compared
> between CQL 3 based apis? Which stands out on top? Answers based on facts
> will help the community so please refrain from opinions.
>
> Please help ??
>



-- 
Jon Haddad
http://www.rustyrazorblade.com
skype: rustyrazorblade

Re: Choosing python client lib for Cassandra

Posted by Robert Coli <rc...@eventbrite.com>.
On Tue, Nov 26, 2013 at 9:46 AM, Kumar Ranjan <wi...@gmail.com> wrote:

> I have worked with Pycassa before and wrote a wrapper to use batch
> mutation & connection pooling etc. But
> http://wiki.apache.org/cassandra/ClientOptions recommends now to use CQL
> 3 based api because Thrift based api (Pycassa) will be supported for
> backward compatibility only.
>
...

> Please help ??
>
Your choice is between mature libraries based on Thrift and forward looking
libraries based on the New Hotness. The latter is likely to have a
shake-out period which the former has already weathered. Their performance
is likely to be roughly comparable now, and their feature sets will diverge
in the future, in favor of CQL.

It depends on your priorities, only you know how much you care about the
rawness of the python driver from Datastax. I do suggest that if you go
with CQL, you go with the python driver from Datastax as the defacto
standard. Certainly no other CQL client is likely to be less beta.

=Rob