Re: Trying to use the new column index feature

2010-08-27 Thread Jonathan Ellis
the TProtocolException means you're either (most likely) mixing
framed/unframed modes between client/server, or (less likely) creating
an obsolete TBinaryProtocol.

On Fri, Aug 27, 2010 at 10:13 AM, Jeremiah Jordan
jeremiah.jor...@morningstar.com wrote:
 I am trying to use the new column index feature.  I am using the nightly
 from: apache-cassandra-2010-08-23_13-57-40-bin.tar.gz.
 I created a column family:
 colFam = CfDef('Activity',
                       'Activity',
                       'Standard',
                       'Timestamp',
                       'BytesType')
 colFam.column_metadata = ColumnDef(name='Time',

 validation_class='LongType',

 index_type=IndexType.KEYS,
                                               index_name='TIME_INDEX')

 self._client.system_add_column_family(colFam)

 When I try to use batch_mutate to insert data I get:
 Traceback (most recent call last):
  File C:\GitStuff\olympus_beta\Python\Olympus\Common\DataHelper.py,
 line 404, in InsertData
    self._client.batch_mutate(mutation_map=dataToInsert,
 consistency_level=self._DATA_CONSISTENCY_WRITE)
  File
 C:\GitStuff\olympus_beta\Python\Olympus\Common\cassandra\Cassandra.py,
 line 786, in batch_mutate
    self.recv_batch_mutate()
  File
 C:\GitStuff\olympus_beta\Python\Olympus\Common\cassandra\Cassandra.py,
 line 803, in recv_batch_mutate
    raise x
 TApplicationException: Required field 'cf_def' was not present! Struct:
 system_add_column_family_args(cf_def:null)

 The system.log has this in it:
 10/08/27 10:09:05 ERROR thrift.CustomTThreadPoolServer: Thrift error
 occurred during processing of message.
 org.apache.thrift.protocol.TProtocolException: Missing version in
 readMessageBegin, old client?
        at
 org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProto
 col.java:211)
        at
 org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2
 487)
        at
 org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(Cu
 stomTThreadPoolServer.java:167)
        at
 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
 r.java:886)
        at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
 va:908)
        at java.lang.Thread.run(Thread.java:619)

 My code and the server are both using API version 11.1.0, so that wasn't
 the problem.

 [defa...@unknown] connect localhost/9160
 Connected to: Test Cluster on localhost/9160
 [defa...@unknown] show api version
 11.1.0

 import cassandra.constants
 print cassandra.constants.VERSION
 11.1.0


 Am I doing something wrong or is this a bug?
 I looked at the code in test_thrift_server.py, but it uses insert not
 batch_mutate to put data into the indexed column.

 
 Jeremiah Jordan
 Application Developer
 Morningstar, Inc.

 Morningstar. Illuminating investing worldwide.

 +1 312 696-6128 voice
 jeremiah.jor...@morningstar.com

 www.morningstar.com

 This e-mail contains privileged and confidential information and is
 intended only for the use of the person(s) named above. Any
 dissemination, distribution, or duplication of this communication
 without prior written consent from Morningstar is strictly prohibited.
 If you have received this message in error, please contact the sender
 immediately and delete the materials from any computer.





-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com


RE: Trying to use the new column index feature

2010-08-27 Thread Jeremiah Jordan
If I remove the colFam.column_metadata = so that I don't have an indexed 
colum everything works fine.

-Original Message-
From: Jonathan Ellis [mailto:jbel...@gmail.com] 
Sent: Friday, August 27, 2010 11:29 AM
To: dev@cassandra.apache.org
Subject: Re: Trying to use the new column index feature

the TProtocolException means you're either (most likely) mixing
framed/unframed modes between client/server, or (less likely) creating
an obsolete TBinaryProtocol.

On Fri, Aug 27, 2010 at 10:13 AM, Jeremiah Jordan
jeremiah.jor...@morningstar.com wrote:
 I am trying to use the new column index feature.  I am using the nightly
 from: apache-cassandra-2010-08-23_13-57-40-bin.tar.gz.
 I created a column family:
 colFam = CfDef('Activity',
                       'Activity',
                       'Standard',
                       'Timestamp',
                       'BytesType')
 colFam.column_metadata = ColumnDef(name='Time',

 validation_class='LongType',

 index_type=IndexType.KEYS,
                                               index_name='TIME_INDEX')

 self._client.system_add_column_family(colFam)

 When I try to use batch_mutate to insert data I get:
 Traceback (most recent call last):
  File C:\GitStuff\olympus_beta\Python\Olympus\Common\DataHelper.py,
 line 404, in InsertData
    self._client.batch_mutate(mutation_map=dataToInsert,
 consistency_level=self._DATA_CONSISTENCY_WRITE)
  File
 C:\GitStuff\olympus_beta\Python\Olympus\Common\cassandra\Cassandra.py,
 line 786, in batch_mutate
    self.recv_batch_mutate()
  File
 C:\GitStuff\olympus_beta\Python\Olympus\Common\cassandra\Cassandra.py,
 line 803, in recv_batch_mutate
    raise x
 TApplicationException: Required field 'cf_def' was not present! Struct:
 system_add_column_family_args(cf_def:null)

 The system.log has this in it:
 10/08/27 10:09:05 ERROR thrift.CustomTThreadPoolServer: Thrift error
 occurred during processing of message.
 org.apache.thrift.protocol.TProtocolException: Missing version in
 readMessageBegin, old client?
        at
 org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProto
 col.java:211)
        at
 org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2
 487)
        at
 org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(Cu
 stomTThreadPoolServer.java:167)
        at
 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
 r.java:886)
        at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
 va:908)
        at java.lang.Thread.run(Thread.java:619)

 My code and the server are both using API version 11.1.0, so that wasn't
 the problem.

 [defa...@unknown] connect localhost/9160
 Connected to: Test Cluster on localhost/9160
 [defa...@unknown] show api version
 11.1.0

 import cassandra.constants
 print cassandra.constants.VERSION
 11.1.0


 Am I doing something wrong or is this a bug?
 I looked at the code in test_thrift_server.py, but it uses insert not
 batch_mutate to put data into the indexed column.

 
 Jeremiah Jordan
 Application Developer
 Morningstar, Inc.

 Morningstar. Illuminating investing worldwide.

 +1 312 696-6128 voice
 jeremiah.jor...@morningstar.com

 www.morningstar.com

 This e-mail contains privileged and confidential information and is
 intended only for the use of the person(s) named above. Any
 dissemination, distribution, or duplication of this communication
 without prior written consent from Morningstar is strictly prohibited.
 If you have received this message in error, please contact the sender
 immediately and delete the materials from any computer.





-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com