Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supporting Cassandra 3.0+ #612

Closed
uluyol opened this issue Feb 4, 2016 · 8 comments
Closed

Supporting Cassandra 3.0+ #612

uluyol opened this issue Feb 4, 2016 · 8 comments

Comments

@uluyol
Copy link
Contributor

uluyol commented Feb 4, 2016

The current cassandra2-cql layer errors when used with new versions of cassandra.

$ bin/ycsb run cassandra2-cql -P workloads/workloadc -p hosts=localhost
[WARN]  Running against a source checkout. In order to get our runtime dependencies we'll have to invoke Maven. Depending on the state of your system, this may take ~30-45 seconds
[DEBUG]  Running 'mvn -pl com.yahoo.ycsb:cassandra2-binding -am package -DskipTests dependency:build-classpath -DincludeScope=compile -Dmdep.outputFilterFile=true'
java -cp /Users/m/Desktop/scratch/YCSB/cassandra2/conf:/Users/m/Desktop/scratch/YCSB/cassandra2/target/cassandra2-binding-0.7.0-SNAPSHOT.jar:/Users/m/.m2/repository/io/netty/netty-handler/4.0.27.Final/netty-handler-4.0.27.Final.jar:/Users/m/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.4/HdrHistogram-2.1.4.jar:/Users/m/.m2/repository/io/netty/netty-transport/4.0.27.Final/netty-transport-4.0.27.Final.jar:/Users/m/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.4/jackson-core-asl-1.9.4.jar:/Users/m/.m2/repository/io/netty/netty-buffer/4.0.27.Final/netty-buffer-4.0.27.Final.jar:/Users/m/.m2/repository/io/netty/netty-common/4.0.27.Final/netty-common-4.0.27.Final.jar:/Users/m/.m2/repository/com/datastax/cassandra/cassandra-driver-core/2.1.8/cassandra-driver-core-2.1.8.jar:/Users/m/.m2/repository/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar:/Users/m/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.4/jackson-mapper-asl-1.9.4.jar:/Users/m/.m2/repository/com/codahale/metrics/metrics-core/3.0.2/metrics-core-3.0.2.jar:/Users/m/Desktop/scratch/YCSB/core/target/core-0.7.0-SNAPSHOT.jar:/Users/m/.m2/repository/io/netty/netty-codec/4.0.27.Final/netty-codec-4.0.27.Final.jar:/Users/m/.m2/repository/com/google/guava/guava/14.0.1/guava-14.0.1.jar com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.CassandraCQLClient -P workloads/workloadc -p hosts=localhost -t
YCSB Client 0.1
Command line: -db com.yahoo.ycsb.db.CassandraCQLClient -P workloads/workloadc -p hosts=localhost -t
Loading workload...
Starting test.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
com.yahoo.ycsb.DBException: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces))
    at com.yahoo.ycsb.db.CassandraCQLClient.init(CassandraCQLClient.java:193)
    at com.yahoo.ycsb.DBWrapper.init(DBWrapper.java:77)
    at com.yahoo.ycsb.ClientThread.run(Client.java:289)
Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces))
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:227)
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:86)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1409)
    at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:382)
    at com.yahoo.ycsb.db.CassandraCQLClient.init(CassandraCQLClient.java:180)
    ... 2 more
com.yahoo.ycsb.DBException: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces))
    at com.yahoo.ycsb.db.CassandraCQLClient.init(CassandraCQLClient.java:193)
    at com.yahoo.ycsb.DBWrapper.init(DBWrapper.java:77)
    at com.yahoo.ycsb.ClientThread.run(Client.java:289)
Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces))
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:227)
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:86)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1409)
    at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:382)
    at com.yahoo.ycsb.db.CassandraCQLClient.init(CassandraCQLClient.java:180)
    ... 2 more
[OVERALL], RunTime(ms), 725.0
[OVERALL], Throughput(ops/sec), 0.0

Updating the version of the cassandra driver to 3.0.0 fixes this. As per http://datastax.github.io/java-driver/#compatibility, compatibility with older versions should be unaffected.

@kruthar
Copy link
Collaborator

kruthar commented Feb 5, 2016

@uluyol - thanks for checking the compatibility on this. Are you interested in submitting a PR to update the driver?

@zzvara
Copy link

zzvara commented Feb 11, 2016

I've successfully added a cassandra3-cql layer based on the 2-cql layer, and it works fine with Cassandra 3.2.1. I'm working on a use-case, that involves the evaluation of 6 systems, including Cassandra 3.2.1. Also developed improvements to Neo4J binding and Riak binding as well. Back to the issue at hand, are you guys open to a PR to have a 3+ binding?

@busbey
Copy link
Collaborator

busbey commented Feb 11, 2016

there's already a PR open (#614) that updates cassandra2-cql to use the 3.x driver (which should be able to work with all the relevant versions).

I believe that PR is just waiting for @uluyol to fix an error in the test cases. If you'd like to start from that PR and add a commit that fixes the tests, that'd be the fastest way to get Cassandra 3.x support merged.

@hu174
Copy link

hu174 commented Feb 12, 2016

The test case error is due to cassandra and cassandraunit version conflict. The latest cassandraunit release is 2.2.2.1. After run command "mvn clean package -DskipTests", it works just fine with 3.X version.

@busbey
Copy link
Collaborator

busbey commented Feb 12, 2016

great! that sounds like an easy enough fix. If you'd like to start from that PR and add a commit that fixes the tests, that'd be the fastest way to get Cassandra 3.x support merged.

@risdenk
Copy link
Collaborator

risdenk commented Feb 12, 2016

I pulled down #614 and updated cassandra unit to 2.2.2.1 and that didn't fix the test errors. Same error with signature mismatch basically. Looks like cassandraunit isn't at 3.x yet so doesn't support the 3.x classes? I don't know if there is an easy way to fix this yet.

@hu174
Copy link

hu174 commented Feb 12, 2016

True, current Cassandra unit doesn't support 3.x version yet. I have to manually bypass test to build the project to make it work with 3.x Cassandra cluster.

@uluyol
Copy link
Contributor Author

uluyol commented Feb 14, 2016

Ref jsevellec/cassandra-unit#166

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants