Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create native alternatives to java tools #14856

Open
3 of 8 tasks
tchaikov opened this issue Jul 27, 2023 · 8 comments
Open
3 of 8 tasks

create native alternatives to java tools #14856

tchaikov opened this issue Jul 27, 2023 · 8 comments
Assignees
Milestone

Comments

@tchaikov
Copy link
Contributor

tchaikov commented Jul 27, 2023

we now have two sets of tools around scylla in parallel.

  • one of which is https://github.com/scylladb/scylla-tools-java, they were inherited from Cassandra. since quite a few of the scylla developers are not experts in Java, and the interactivity between java and scylla is not that good -- we have to use RESTful API to bridge them. they are not well maintained. and other problem we are facing is that these tools were forked from the 3.x branch, which does not have UUID sstable identifier support, but recently, we introduced the support to scylla. this creates a gap of our tooling.
  • the other is the native tools builtin in scylla. these tools are launched using scylla <command>. these tools inherently have better interoperability with scylla. and since these tools colocate with scylla, it would be simpler to add features requiring the coordination between these two parties in a single executable and in a single source repository.

so, in the long run, we want to drop the dependency on https://github.com/scylladb/scylla-tools-java as a whole, and replace the actively used tool with the native tools provided by scylla.

the involved java tools and their replacement solution are listed below:

  • sstablemetadata: scylla sstable dump-*
  • sstableloader: load and stream. we will have a dedicated issue for tracking this.
  • sstableverify: scylla sstable validate
  • sstablescrub: scylla sstable scrub
  • nodetool: scylla nodetool

some other java tools which are not being actively used

since this task involves more than one steps. this issue is created to track all of them:

Tasks

  1. documentation
  2. 48 of 48
    area/nodetool area/scylla tools enhancement
    denesb
  3. bug showstopper
    tchaikov
@mykaul
Copy link
Contributor

mykaul commented Jul 27, 2023

@tchaikov , please work with @tgrabiec to see which tools (the new, non-Java alternatives) need support for Tablets.

@denesb
Copy link
Contributor

denesb commented Jul 27, 2023

@tchaikov , please work with @tgrabiec to see which tools (the new, non-Java alternatives) need support for Tablets.

All of the current native tools are completely indifferent to replication strategies. They work with local, concrete objects like values or sstables directly.

@Lorak-mmk
Copy link
Contributor

nodetool is also part of scylla-tools-java but is not on the list. If we want to drop dependency of scylla-tools-java, we'd have to take care of it too - preferably by creating our own that talks to REST API (that would allow us to drop scylla-jmx too).

@denesb
Copy link
Contributor

denesb commented Jul 27, 2023

nodetool is also part of scylla-tools-java but is not on the list. If we want to drop dependency of scylla-tools-java, we'd have to take care of it too - preferably by creating our own that talks to REST API (that would allow us to drop scylla-jmx too).

There is already a POC for a scylla-native nodetool replacement: #14841.

@tchaikov
Copy link
Contributor Author

nodetool is also part of scylla-tools-java but is not on the list. If we want to drop dependency of scylla-tools-java, we'd have to take care of it too - preferably by creating our own that talks to REST API (that would allow us to drop scylla-jmx too).

thanks. i revised the issue description to add nodetool and Botond's POC .

@DoronArazii DoronArazii added this to the Backlog milestone Aug 22, 2023
@denesb
Copy link
Contributor

denesb commented Sep 29, 2023

@tchaikov please consider adding #15588 to the tasklist above, instead of the POC (which implemented just a single command).

@tchaikov
Copy link
Contributor Author

@tchaikov please consider adding #15588 to the tasklist above, instead of the POC (which implemented just a single command).

sure. replaced the link to #14841 with the one to #15588

syuu1228 added a commit to syuu1228/scylla that referenced this issue Mar 21, 2024
Since Java based tools and JMX server are deprecated, drop them from
submodule, build system and package definition.
Also, move nodetool-wrapper to scylla-server package since we drop
scylla-tools.

Related scylladb/scylla-tools-java#370
Related scylladb#14856
syuu1228 added a commit to syuu1228/scylla that referenced this issue Mar 25, 2024
Since Java based tools and JMX server are deprecated, drop them from
submodule, build system and package definition.

Related scylladb/scylla-tools-java#370
Related scylladb#14856
denesb pushed a commit to denesb/scylla that referenced this issue Mar 28, 2024
Since Java based tools and JMX server are deprecated, drop them from
submodule, build system and package definition.

Related scylladb/scylla-tools-java#370
Related scylladb#14856
@denesb
Copy link
Contributor

denesb commented Apr 2, 2024

I would like to attempt to wrap this up for 6.1, so we can reap the full benefits of the effort that went into the native nodetool.

@denesb denesb self-assigned this Apr 2, 2024
@mykaul mykaul modified the milestones: Backlog, 6.1 Apr 2, 2024
syuu1228 added a commit to syuu1228/scylla that referenced this issue May 20, 2024
Since JMX server is deprecated, drop them from submodule, build system
and package definition.

Related scylladb/scylla-tools-java#370
Related scylladb#14856
syuu1228 added a commit to syuu1228/scylla that referenced this issue May 27, 2024
Since JMX server is deprecated, drop them from submodule, build system
and package definition.

Related scylladb/scylla-tools-java#370
Related scylladb#14856
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants