[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cassandra-dev
Subject:    Re: Is simplenative in cassandra-stress still relevant?
From:       "Josh McKenzie" <jmckenzie () apache ! org>
Date:       2023-05-31 17:35:43
Message-ID: d0ce2bc3-86fd-4d36-9f07-9a3cd65e0647 () app ! fastmail ! com
[Download RAW message or body]

> I think that Cassandra should have some basic tool available to stress-test itself
> I do not think that the current cassandra-stress is completely "useless"
Think there was an implication in my statement I didn't intend. I wasn't talking \
about not having *any* stress tool as the reference in our code-base, just trying to \
poke a bit at whether or not the one we have, which isn't maintained, should continue \
to be the one we use going forward.

I'd be fine with us collectively investing more energy into cassandra-stress, or \
seeing about reaching out to the tlp folks about tlp-stress replacing it as the \
default, or NoSQLBench, or some cassandra-stress argument compatible wrapper over one \
of them so things can migrate transparently, etc.

On Wed, May 31, 2023, at 11:42 AM, Miklosovic, Stefan wrote:
> 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 <jmckenzie@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.Miklosovic@netapp.com<mailto:Stefan.Miklosovic@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 <driftx@gmail.com<mailto:driftx@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 \
> <bschoeni@gmail.com<mailto:bschoeni@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
> 
> 


[Attachment #3 (text/html)]

<!DOCTYPE html><html><head><title></title><style \
type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><blockquote \
type="cite"><div>I think that Cassandra should have some basic tool available to \
stress-test itself<br></div><div>I do not think that the current cassandra-stress is \
completely "useless"<br></div></blockquote><div>Think there was an implication in my \
statement I didn't intend. I wasn't talking about not having&nbsp;<i>any</i> stress \
tool as the reference in our code-base, just trying to poke a bit at whether or not \
the one we have, which isn't maintained, should continue to be the one we use going \
forward.<br></div><div><br></div><div>I'd be fine with us collectively investing more \
energy into cassandra-stress, or seeing about reaching out to the tlp folks about \
tlp-stress replacing it as the default, or NoSQLBench, or some cassandra-stress \
argument compatible wrapper over one of them so things can migrate transparently, \
etc.<br></div><div><br></div><div>On Wed, May 31, 2023, at 11:42 AM, Miklosovic, \
Stefan wrote:<br></div><blockquote type="cite" id="qt" style=""><div>Well this is a \
completely different kind of discussion, Josh, let's explore it, shall \
we?<br></div><div><br></div><div>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.<br></div><div><br></div><div>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.<br></div><div><br></div><div>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.<br></div><div><br></div><div>Regards<br></div><div><br></div><div><br></div><div>________________________________________<br></div><div>From: \
Josh McKenzie &lt;<a \
href="mailto:jmckenzie@apache.org">jmckenzie@apache.org</a>&gt;<br></div><div>Sent: \
Wednesday, May 31, 2023 15:15<br></div><div>To: dev<br></div><div>Subject: Re: Is \
simplenative in cassandra-stress still relevant?<br></div><div><br></div><div>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.<br></div><div><br></div><div><br></div><div><br></div><div>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:<br></div><div>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.<br></div><div><br></div><div>On Wed, May 31, 2023, at 9:00 AM, Brad \
wrote:<br></div><div>We all agree that we're not suggesting removing SimpleClient \
from Cassandra, just from its use in \
cassandra-stress.<br></div><div><br></div><div>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.&nbsp; Are \
they not sufficient?<br></div><div><br></div><div>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:<br></div><div><br></div><div>&gt; cassandra-stress help \
-mode<br></div><div><br></div><div><br></div><div>Usage: -mode native [unprepared] \
cql3 [compression=?] [port=?] [user=?] [password=?] [auth-provider=?] [maxPending=?] \
[connectionsPerHost=?] \
[protocolVersion=?]<br></div><div><br></div><div>OR<br></div><div><br></div><div>Usage: \
-mode simplenative [prepared] cql3 \
[port=?]<br></div><div><br></div><div><br></div><div>....<br></div><div><br></div><div><br></div><div>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).&nbsp; It \
can lead down a rabbit hole of sparse documentation trying to figure out what the \
simplenative option is, and is better than \
cql3?<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>On \
Wed, May 31, 2023 at 1:58 AM Miklosovic, Stefan &lt;<a \
href="mailto:Stefan.Miklosovic@netapp.com">Stefan.Miklosovic@netapp.com</a>&lt;mailto:<a \
href="mailto:Stefan.Miklosovic@netapp.com">Stefan.Miklosovic@netapp.com</a>&gt;&gt; \
wrote:<br></div><div>Interesting point about the \
debuggability.<br></div><div><br></div><div>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.<br></div><div><br></div><div>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.<br></div><div><br></div><div>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.<br></div><div><br></div><div><br></div><div>________________________________________<br></div><div>From: \
Brandon Williams &lt;<a \
href="mailto:driftx@gmail.com">driftx@gmail.com</a>&lt;mailto:<a \
href="mailto:driftx@gmail.com">driftx@gmail.com</a>&gt;&gt;<br></div><div>Sent: \
Wednesday, May 31, 2023 2:33<br></div><div>To:&nbsp;<a \
href="mailto:dev@cassandra.apache.org">dev@cassandra.apache.org</a>&lt;mailto:<a \
href="mailto:dev@cassandra.apache.org">dev@cassandra.apache.org</a>&gt;<br></div><div>Subject: \
Re: Is simplenative in cassandra-stress still \
relevant?<br></div><div><br></div><div>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.<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>On \
Tue, May 30, 2023 at 7:15 PM Brad &lt;<a \
href="mailto:bschoeni@gmail.com">bschoeni@gmail.com</a>&lt;mailto:<a \
href="mailto:bschoeni@gmail.com">bschoeni@gmail.com</a>&gt;&gt; \
wrote:<br></div><div>&gt; If you're performing stress testing, why would you not want \
to use the official driver?&nbsp; I've spoken to several people who all have said \
they've never used simplenative mode.<br></div><div><br></div><div>I agree that it \
shouldn't be used normally, but I'm not sure we should<br></div><div>remove it, \
because we can't remove it fully: SimpleClient is still<br></div><div>used in many \
tests, and I think that should continue.<br></div><div><br></div><div>If you suspect \
any kind of native proto or driver issue it may be<br></div><div>useful to have \
another implementation easily accessible to aid in<br></div><div>debugging the \
problem, and the maintenance cost of keeping it in<br></div><div>stress is roughly \
zero in my opinion.&nbsp; We can make it clear that it's<br></div><div>not \
recommended for use and is intended only as a debugging \
tool,<br></div><div>though.<br></div><div><br></div><div>Kind \
Regards,<br></div><div>Brandon<br></div><div><br></div><div><br></div></blockquote><div><br></div></body></html>




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic