We could eventually make a virtual table only mode to resolve this - not serve 
any data until a node is ready to do so - if necessary.

> On 15 Jul 2021, at 17:43, Jeff Jirsa <jji...@gmail.com> wrote:
> 
> There's a tactical issue, too, that virtual tables require native transport
> to be up before it's usable, so for things pre-startup (e.g. querying
> streaming state during bootstrap), so I don't think nodetool/jmx dies
> entirely ever (or, a non-client-facing-virtual-tables-only port has to be
> created, but that's much more involved obviously)
> 
> On Thu, Jul 15, 2021 at 9:18 AM Lorina Poland <lor...@datastax.com> wrote:
> 
>> 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?
>>>>> 
>>>> 
>>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
For additional commands, e-mail: dev-h...@cassandra.apache.org

Reply via email to