On Wed, Feb 19, 2014 at 7:49 PM, Sylvain Lebresne <sylvain@datastax.com> wrote:
On Wed, Feb 19, 2014 at 11:27 AM, Rüdiger Klaehn <rklaehn@gmail.com> wrote:

Am I doing something wrong, or is this a fundamental limitation of CQL.

Neither. I believe you are running into https://issues.apache.org/jira/browse/CASSANDRA-6737, which is a bug, a performance bug, which we should and will fix. So thanks for the report. If you could give a shot to the patch on that issue and check if it helps, that would definitively be much appreciated.

Hi Sylvain,

Yes, this issue looks almost identical to the problem I have been experiencing. Great to hear that you are aware of the issue and that there is a fix.

I have cloned the cassandra repo, applied the patch, and built it. But when I want to run the bechmark I get an exception. See below. I tried with a non-managed dependency to cassandra-driver-core-2.0.0-rc3-SNAPSHOT-jar-with-dependencies.jar, which I compiled from source because I read that that might help. But that did not make a difference.

So currently I don't know how to give the patch a try. Any ideas?

cheers,

Rüdiger

Exception in thread "main" java.lang.IllegalArgumentException: replicate_on_write is not a column defined in this metadata
    at com.datastax.driver.core.ColumnDefinitions.getAllIdx(ColumnDefinitions.java:273)
    at com.datastax.driver.core.ColumnDefinitions.getFirstIdx(ColumnDefinitions.java:279)
    at com.datastax.driver.core.Row.getBool(Row.java:117)
    at com.datastax.driver.core.TableMetadata$Options.<init>(TableMetadata.java:474)
    at com.datastax.driver.core.TableMetadata.build(TableMetadata.java:107)
    at com.datastax.driver.core.Metadata.buildTableMetadata(Metadata.java:128)
    at com.datastax.driver.core.Metadata.rebuildSchema(Metadata.java:89)
    at com.datastax.driver.core.ControlConnection.refreshSchema(ControlConnection.java:259)
    at com.datastax.driver.core.ControlConnection.tryConnect(ControlConnection.java:214)
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:161)
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:77)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:890)
    at com.datastax.driver.core.Cluster$Manager.newSession(Cluster.java:910)
    at com.datastax.driver.core.Cluster$Manager.access$200(Cluster.java:806)
    at com.datastax.driver.core.Cluster.connect(Cluster.java:158)
    at cassandra.CassandraTestMinimized$delayedInit$body.apply(CassandraTestMinimized.scala:31)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
    at scala.App$class.main(App.scala:71)
    at cassandra.CassandraTestMinimized$.main(CassandraTestMinimized.scala:5)
    at cassandra.CassandraTestMinimized.main(CassandraTestMinimized.scala)
 
There is absolutely no fundamental reason why a CQL operation would be more than 10 times slower than it's thrift equivalent, such dramatic difference is indicative of a bug, something obviously wrong.

--
Sylvain