Well this is a completely different kind of discussion, Josh, let's explore it, 
shall we?

I think that Cassandra should have some basic tool available to stress-test 
itself. Why not? I do not want to depend on some 3rd party tools even if they 
might be objectively better. I do not think that the current cassandra-stress 
is completely "useless". It is doing its job, more or less. If a user wants to 
have something more advanced she is welcome to use that but I do not like that 
we are trying to outsource the basic tooling outside of the project.

As I see it, we just spice it up with some tests to be sure that it will not 
break without us knowing it and that's it. The fact that it is not actively 
contributed to does not necessarily make it eligible for deletion as a whole.

Anyway, I am not calling the shots here, if a community decides it has to go so 
it will but I would be said to see it.

Regards


________________________________________
From: Josh McKenzie <jmcken...@apache.org>
Sent: Wednesday, May 31, 2023 15:15
To: dev
Subject: Re: Is simplenative in cassandra-stress still relevant?

NetApp Security WARNING: This is an external email. Do not click links or open 
attachments unless you recognize the sender and know the content is safe.



The main issue I see with maintaining the SimpleClient in cassandra-stress is 
the burden it puts on a user to understand the options available when 
connecting with -mode:
How frequently do we expect users or devs to use the built-in cassandra-stress 
tool? Between tlp-stress and NoSQLBench, it's not clear to me that keeping 
cassandra-stress (which has been largely unmaintained for years as I understand 
it?) is the best option.

On Wed, May 31, 2023, at 9:00 AM, Brad wrote:
We all agree that we're not suggesting removing SimpleClient from Cassandra, 
just from its use in cassandra-stress.

For debugging the native transport protocol, in addition to the standalone Java 
Driver, there are the python drivers and ODBC drivers which can be exercised 
with cqlsh and Intellij respectively.  Are they not sufficient?

The main issue I see with maintaining the SimpleClient in cassandra-stress is 
the burden it puts on a user to understand the options available when 
connecting with -mode:

> cassandra-stress help -mode


Usage: -mode native [unprepared] cql3 [compression=?] [port=?] [user=?] 
[password=?] [auth-provider=?] [maxPending=?] [connectionsPerHost=?] 
[protocolVersion=?]

 OR

Usage: -mode simplenative [prepared] cql3 [port=?]


....


A user trying to determine how to specify credentials for usr/pwd is presented 
with the option to use simplenative and prepared statements (which appear 
broken).  It can lead down a rabbit hole of sparse documentation trying to 
figure out what the simplenative option is, and is better than cql3?




On Wed, May 31, 2023 at 1:58 AM Miklosovic, Stefan 
<stefan.mikloso...@netapp.com<mailto:stefan.mikloso...@netapp.com>> wrote:
Interesting point about the debuggability.

Yes, I agree that SimpleClient (as class) should not be removed because we are 
using it in tests. I have already mentioned in my original e-mail that for this 
reason that class is not going anywhere and we still need to use it.

The cost of keeping it there is not big, sure, but we clearly see that e.g. the 
usage of "prepared" is buggy and it does not work. That somehow indicates to me 
that it kind of atrophied and nobody seems to notice which further supports my 
case that it is actually not used too much if it went undetected for so long.

Anyway, I think that we might just look at that bug with "prepared" and fix it 
and keep it all there. I do not see any tests which would test cassandra-stress 
command, similarly what we have for nodetool in JUnit. We could cover 
cassandra-stress similarly, just to be sure that its invocation on the most 
important commands does not fail over time.


________________________________________
From: Brandon Williams <dri...@gmail.com<mailto:dri...@gmail.com>>
Sent: Wednesday, May 31, 2023 2:33
To: dev@cassandra.apache.org<mailto:dev@cassandra.apache.org>
Subject: Re: Is simplenative in cassandra-stress still relevant?

NetApp Security WARNING: This is an external email. Do not click links or open 
attachments unless you recognize the sender and know the content is safe.




On Tue, May 30, 2023 at 7:15 PM Brad 
<bscho...@gmail.com<mailto:bscho...@gmail.com>> wrote:
> If you're performing stress testing, why would you not want to use the 
> official driver?  I've spoken to several people who all have said they've 
> never used simplenative mode.

I agree that it shouldn't be used normally, but I'm not sure we should
remove it, because we can't remove it fully: SimpleClient is still
used in many tests, and I think that should continue.

If you suspect any kind of native proto or driver issue it may be
useful to have another implementation easily accessible to aid in
debugging the problem, and the maintenance cost of keeping it in
stress is roughly zero in my opinion.  We can make it clear that it's
not recommended for use and is intended only as a debugging tool,
though.

Kind Regards,
Brandon

Reply via email to