incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <ANAND_BALARA...@homedepot.com>
Subject RE: Exception while writing compsite column names
Date Thu, 18 Jul 2013 15:47:46 GMT
I had been using the StringSerilaizer.get() for all UTF8Type fields so far. Do not think I
need to check the code.
Do you suspect the column family definition?

-Anand

From: Vivek Mishra [mailto:mishra.vivs@gmail.com]
Sent: Thursday, July 18, 2013 11:29 AM
To: user@cassandra.apache.org
Subject: Re: Exception while writing compsite column names

Looks like validation class for composite column value is different than UTF8Type? Though
code suggests it is:
       composite.addComponent("TEXT1", StringSerializer.get());

Please validate.

-Vivek

On Thu, Jul 18, 2013 at 7:41 PM, <ANAND_BALARAMAN@homedepot.com<mailto:ANAND_BALARAMAN@homedepot.com>>
wrote:
Hi

I have an issue while inserting a composite column name to one of the Cassandra column families.
Below is a detailed description of what I had done and stuck up at.
Please let me know where I had went wrong.

Requirement:
------------------
       Rowkey        ->     RowIdString
       Column name   ->     TEXT1 : value1 : TEXT2 : value2 : TEXT3
       Column value ->     value3

Column family definition:
-------------------------------
                create column family CompositeColumnNameTest
       WITH comparator='CompositeType(UTF8Type,UTF8Type,UTF8Type,UTF8Type,UTF8Type)'
       AND key_validation_class=UTF8Type
       WITH compression_options={sstable_compression:SnappyCompressor, chunk_length_kb:64};

Code:
--------
                String RowIdString = "1234";

       Composite composite = new Composite();
       composite.addComponent("TEXT1", StringSerializer.get());
       composite.addComponent("value1", StringSerializer.get());
       composite.addComponent("TEXT2", StringSerializer.get());
       composite.addComponent("value3", StringSerializer.get());
       composite.addComponent("TEXT3", StringSerializer.get());

       Column column = new Column(composite.serialize());
       column.setValue("value3".getBytes());
       column.setTimestamp(System.currentTimeMillis());

       // push data to cassandra
       batchMutate.addInsertion(RowIdString, "CompositeColumnNameTest", column);
       keyspaceServiceImpl.batchMutate(batchMutate);

Exception:
-------------
me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:Not
enough bytes to read value of component 0)
       at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:45)
       at me.prettyprint.cassandra.service.KeyspaceServiceImpl$1.execute(KeyspaceServiceImpl.java:97)
       at me.prettyprint.cassandra.service.KeyspaceServiceImpl$1.execute(KeyspaceServiceImpl.java:90)
       at me.prettyprint.cassandra.service.Operation.executeAndSetResult(Operation.java:103)
       at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:258)
       at me.prettyprint.cassandra.service.KeyspaceServiceImpl.operateWithFailover(KeyspaceServiceImpl.java:131)


Thanks in advance
-Anand

________________________________

The information in this Internet Email is confidential and may be legally privileged. It is
intended solely for the addressee. Access to this Email by anyone else is unauthorized. If
you are not the intended recipient, any disclosure, copying, distribution or any action taken
or omitted to be taken in reliance on it, is prohibited and may be unlawful. When addressed
to our clients any opinions or advice contained in this Email are subject to the terms and
conditions expressed in any applicable governing The Home Depot terms of business or client
engagement letter. The Home Depot disclaims all responsibility and liability for the accuracy
and content of this attachment and for any damages or losses arising from any inaccuracies,
errors, viruses, e.g., worms, trojan horses, etc., or other items of a destructive nature,
which may be contained in this attachment and shall not be liable for direct, indirect, consequential
or special damages in connection with this e-mail message or its attachment.


________________________________

The information in this Internet Email is confidential and may be legally privileged. It is
intended solely for the addressee. Access to this Email by anyone else is unauthorized. If
you are not the intended recipient, any disclosure, copying, distribution or any action taken
or omitted to be taken in reliance on it, is prohibited and may be unlawful. When addressed
to our clients any opinions or advice contained in this Email are subject to the terms and
conditions expressed in any applicable governing The Home Depot terms of business or client
engagement letter. The Home Depot disclaims all responsibility and liability for the accuracy
and content of this attachment and for any damages or losses arising from any inaccuracies,
errors, viruses, e.g., worms, trojan horses, etc., or other items of a destructive nature,
which may be contained in this attachment and shall not be liable for direct, indirect, consequential
or special damages in connection with this e-mail message or its attachment.

Mime
View raw message