Thanks for the response. We're trying to get a general idea of the insert and retrieval performance, and we figured BinaryMemtable would be a great enabler for our bulk import scenarios. Normal thrift inserts are certainly fast, but it would be nice to get an idea of how BMT could improve our throughput.
Are you able to share some general performance numbers for thrift/avro/bmt? Thanks. AD -----Original Message----- From: Jonathan Ellis [mailto:jbel...@gmail.com] Sent: Thursday, November 11, 2010 8:23 PM To: user Subject: Re: Cassandra 0.7 beta3 BinaryMemtable and Supercolumns Before you dig into that, are you sure normal Thrift inserts are not fast enough? On Thu, Nov 11, 2010 at 4:41 PM, Aditya Muralidharan <aditya.muralidha...@nisc.coop> wrote: > Pretty sure I could ask that better: > > > > Is it possible for me to perform RowMutations on BinaryMemtable for a > ColumnFamily of type Super? > > > > The bmt_example seems to say that it's possible, but cassandra 0.7 b3 seems > to disagree with the following: > > > > ERROR [MutationStage:38] 2010-11-11 13:47:37,383 > DebuggableThreadPoolExecutor.java (line 103) Error in ThreadPoolExecutor > > java.lang.RuntimeException: java.lang.UnsupportedOperationException: This > operation is not supported for Super Columns. > > at > org.apache.cassandra.db.BinaryVerbHandler.doVerb(BinaryVerbHandler.java:54) > > at > org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:62) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > > at java.lang.Thread.run(Thread.java:619) > > Caused by: java.lang.UnsupportedOperationException: This operation is not > supported for Super Columns. > > at org.apache.cassandra.db.SuperColumn.value(SuperColumn.java:158) > > at org.apache.cassandra.db.Table.load(Table.java:640) > > at > org.apache.cassandra.db.RowMutation.applyBinary(RowMutation.java:206) > > at > org.apache.cassandra.db.BinaryVerbHandler.doVerb(BinaryVerbHandler.java:44) > > > > The code in the bmt_example serializes the CF for the super columns and sets > that as column data (made me scratch my head) on a different CF for the > RowMutation. Attempting that causes the following exception: > > > > Caused by: java.io.IOException: Invalid localDeleteTime read: 0 > > at > org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:334) > > at > org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:291) > > at > org.apache.cassandra.db.ColumnFamilySerializer.deserializeColumns(ColumnFamilySerializer.java:129) > > at > org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:120) > > at > org.apache.cassandra.db.RowMutationSerializer.defreezeTheMaps(RowMutation.java:368) > > at > org.apache.cassandra.db.RowMutationSerializer.deserialize(RowMutation.java:378) > > at > org.apache.cassandra.db.RowMutationSerializer.deserialize(RowMutation.java:336) > > at > org.apache.cassandra.db.RowMutationMessageSerializer.deserialize(RowMutationMessage.java:84) > > at > org.apache.cassandra.db.BinaryVerbHandler.doVerb(BinaryVerbHandler.java:42) > > > > . which is basically because the CFSerializer is (rightly) expecting to > deserialize a super column though the bmt_example serialized a Standard CF. > > > > Any help on BMT with supercolumns would be appreciated. > > > > Thanks. > > > > AD > > > > > > From: Aditya Muralidharan [mailto:aditya.muralidha...@nisc.coop] > Sent: Thursday, November 11, 2010 3:27 PM > To: user@cassandra.apache.org > Subject: Cassandra 0.7 beta3 BinaryMemtable and Supercolumns > > > > Is it possible for BinaryMemtable RowMutations to a ColumnFamily with > supercolumns? -- Jonathan Ellis Project Chair, Apache Cassandra co-founder of Riptano, the source for professional Cassandra support http://riptano.com