I think it is important to keep in mind that users may be utilizing
nodetool programmatically, in scripts. Obviously, those scripts could use
calls to cqlsh as an alternative, but I'm a fan of keeping nodetool intact,
building out virtual table capability, and then deprecating nodetool. In
other words, only deprecate/remove nodetool commands once a *whole*
replacement is available. And then deprecate slowly, perhaps with migration
help in the docs for nodetool -> virtual tables.

Lorina

On Thu, Jul 15, 2021 at 6:59 AM Paulo Motta <pauloricard...@gmail.com>
wrote:

> Perhaps one approach to expose VirtualTables via nodetool without requiring
> the user to provide CQL credentials would be to provide a generic
> StorageServiceMBean.queryVirtualTable(String name) JMX method returning a
> TabularData result. This would allow to keep a consistent nodetool frontend
> to users while progressively switching the backend from JMX to
> VirtualTables.
>
> We could create a framework to automatically expose a basic nodetool
> getter/setter command whenever a new virtual table is added, making the new
> feature visible to non-power nodetool users while requiring little
> additional effort from the VirtualTable implementor.
>
> When migrating commands from JMX to VirtualTables we could just update the
> legacy nodetool command implementation to access the virtual table via the
> generic StorageServiceMBean.queryVirtualTable(String name) method while
> keeping the output consistent with the previous implementation, and
> deprecating their JMX counterpart.
>
> Ultimately when all commands are migrated from JMX to VirtualTables we
> could decide if we want to keep the nodetool CLI, acessing all virtual
> tables via the generic JMX virtual table accessor, or to deprecate nodetool
> altogether and tell users to query virtual tables directly via cqlsh
> instead.
>
> Em qui., 15 de jul. de 2021 às 10:34, Paulo Motta <
> pauloricard...@gmail.com>
> escreveu:
>
> > Thanks for bringing this discussion Benjamin. I raised a similar point in
> > CASSANDRA-16725 <https://issues.apache.org/jira/browse/CASSANDRA-16725>
> > and it may become a recurrent topic now the code freeze is lifted and
> more
> > contributors will want to add new administrative commands to nodetool so
> > it's important that we discuss and decide a consistent approach to this
> > transition moving forward.
> >
> > I was planning to write a CEP to propose a migration strategy from JMX to
> > Virtual tables but since this discussion came before I will detail my
> > thoughts so far.
> >
> > I think that we should add new commands exclusively to Virtual Tables and
> > progressively migrate existing nodetool/JMX commands to VirtualTables/CQL
> > until we ultimately get rid of JMX/nodetool. Nevertheless, from the user
> > point of view it may be inconvenient/confusing to have administrative
> > commands split between different interfaces so we need to think about
> this
> > transition carefully to provide the best possible user experience.
> >
> > My motivation for CASSANDRA-16513 <
> > https://issues.apache.org/jira/browse/CASSANDRA-16513> was that we're
> > already providing some functionalities exclusively via Virtual Tables, so
> > these features may not be visible to non-power users which are accustomed
> > to the nodetool CLI interface for admin commands. The original plan for
> > that ticket was to make nodetool abstract away the underlying interface
> > (JMX, CQL) for administrative commands, so we would expose admin
> > functionality via the same CLI interface (nodetool) to users while
> > progressively migrating the backend from JMX to CQL/VirtualTables.
> >
> > Some people raised the concern that this could cause confusion among
> users
> > about which credentials to use if JMX or CQL for nodetool. Based on this
> > feedback I adapted the proposal to create an entirely different
> > administrative CLI tool (which I called admintool) to access/modify
> virtual
> > tables. In this proposal new administrative commands would be added
> > exclusively to Virtual Tables and would automatically land on this tool,
> > and legacy nodetool commands (via JMX) would be progressively migrated to
> > admintool (CQL/VT) until the migration is completed. The drawback of this
> > alternative proposal is that it would still split administrative commands
> > between different CLI tools.
> >
> > So, if we decide to stop adding new admin functionality to JMX we have a
> > few options to make this transition smoother for our users:
> > 1) Do nothing and tell users some admin functionalities will be
> accessible
> > exclusively via cqlsh/virtual tables - imo this option is the least
> > user-friendly.
> > 2) Make nodetool hybrid and provide a consistent interface to users while
> > abstracting away the backend (JMX/CQL)
> > 3) Create a new CLI tool (admintool) to provide CLI access to  virtual
> > tables and tell users to use both nodetool and admintool.
> >
> > I personally think option 2 is the least disruptive to users during the
> > transition phase since people are already used to using nodetool so we
> can
> > provide a seamless transition to JMX while keeping the CLI tool for
> legacy
> > users. Even though there are concerns of confusion of which credentials
> to
> > use on nodetool if we support both interfaces, we can make sure this is
> > well documented.
> >
> > Em qui., 15 de jul. de 2021 às 09:35, Benjamin Lerer <ble...@apache.org>
> > escreveu:
> >
> >> Hi everyone,
> >>
> >> When Virtual Tables/System Views were introduced in 4.0 it was with the
> >> intention to provide a more friendly way than JMX and NodeTool to manage
> >> and monitor nodes.
> >>
> >> In CASSANDRA-16404 <
> https://issues.apache.org/jira/browse/CASSANDRA-16404
> >> >,
> >> Sam raises the point that it might make sense from now on to stop adding
> >> functionalities to NodeTool and to provide them through Virtual Tables.
> >> My initial feeling was that we could provide both until we decided to
> >> deprecate NodeTool but that would require some extra work and as such
> >> might
> >> not be a good strategy.
> >>
> >> What is your opinion on this?
> >>
> >
>

Reply via email to