I am doing some fixes for cassandra-stress and I stumbled upon this
https://issues.apache.org/jira/browse/CASSANDRA-18529
There is
Usage: -mode native [unprepared] cql3 [compression=?] [port=?] [user=?]
[password=?] [auth-provider=?] [maxPending=?] [connectionsPerHost=?]
[protocolVersion=?]
OR
Usage: -mode simplenative [prepared] cql3 [port=?]
"-mode simplenative prepared cql3" throws: (it works without "prepared").
java.lang.ClassCastException: [B cannot be cast to
org.apache.cassandra.transport.messages.ResultMessage$Prepared
java.io.IOException: Operation x10 on key(s) [373038504b3436363830]: Error
executing: (ClassCastException): [B cannot be cast to
org.apache.cassandra.transport.messages.ResultMessage$Prepared
at org.apache.cassandra.stress.Operation.error(Operation.java:127)
at
org.apache.cassandra.stress.Operation.timeWithRetry(Operation.java:105)
at
org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:91)
at
org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:99)
at
org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:242)
at
org.apache.cassandra.stress.StressAction$Consumer.run(StressAction.java:467)
java.io.IOException: Operation x10 on key(s) [4e334f364c4c4b373530]: Error
executing: (ClassCastException): [B cannot be cast to
org.apache.cassandra.transport.messages.ResultMessage$Prepared
I want to ask if this "simplenative" is still relevant and people are still
using it. It seems to me that nobody is actually using this / I've never heard
of anybody doing that but I may be wrong and people are using it all day and
night ...
simplenative uses SimpleClient which is used through the code base, e.g. in
CQLTester so we are not going to get rid of that for sure.
If simplenative in stress is not relevant, that whole -mode is questionable, if
we get rid of simplenative, we would end up having "-mode native cql3" and
since there is nothing but "native" as there is no Thrift anymore, "native" is
a constant which can go away. If we end up having "-mode cql3" as the only mode
possible, whole -mode can go away and we can rename it to "-cql3".
Thoughts?