scylla-tools-java
scylla-tools-java copied to clipboard
backport uuid identifier related changes to support uuid based sstable identifiers
uuid-based sstable identifier was introduced by Cassandra upstream in https://github.com/apache/cassandra/commit/0040fea3797ea3e497691e9d1e2660711c60ac4d. but our fork was based 3.x. so to support this feature, we need to merge the upstream changes or rebase on top of it. or, as put by Avi in https://github.com/scylladb/scylladb/pull/13932#issuecomment-1582277800, quoted here as well
We should probably drop sstableloader. We might develop a standalone format converter from Cassandra formats to our format, based on the Cassandra codebase. So migration would use either the Spark migrator, or (Cassandra sstables -> Scylla sstables) -> load'n'stream. This gives us one less reason to keep having tools/java/.
Note that Cassandra is now at "oa" format: https://github.com/apache/cassandra/commit/f16fb6765b8a3ff8f49accf61c908791520c0d6e.
without this change following test would be failing after enabling the uuid_sstable_identifier_enabled
option introduced by https://github.com/scylladb/scylladb/pull/13932
- Tests / Sanity Tests / alternator_tests.TesterAlternator.test_sstableloder_scenario[without_flag]: depends on sstableloder
- Tests / Sanity Tests / compaction_additional_test.TestCompactionAdditionalStrategy.test_compaction_removes_ttld_data_after_gc_period[LeveledCompactionStrategy]: depends on sstabledump
- Tests / Sanity Tests / snapshot_test.TestSnapshot.test_basic_snapshot_and_restore_with_sstableloader: depends on sstableloder
- Tests / Sanity Tests / snapshot_test.TestSnapshot.test_basic_mulitple_tables_snapshot_and_restore_with_sstableloader: depends on sstableloder
- Tests / Sanity Tests / sstabledump_test.TestSSTableDump.test_sstabledump_basic: depends on sstabledump
- Tests / Sanity Tests / sstabledump_test.TestSSTableDump.test_sstabledump_counter_basic: depends on sstabledump
- Tests / Sanity Tests / sstabledump_test.TestSSTableDumpAllDatatypes.test_sstabledump_all_datatypes: depends on sstabledump
- Tests / Sanity Tests / repair_additional_test.TestRepairAdditional.test_repair_ttl_update: depends on sstabledump
the tests above are only a subset. following tools should be updated
- sstabledump
- sstableloader
- sstableverify
- sstablemetadata
see also https://github.com/scylladb/scylladb/pull/13932
I want to patch out sstabledump
from all dtests. But I don't know when I will get around to do that, and certainly don't want to block the uuid migration on this.
@denesb hi Botond, thank you for the remarks! the recent changes of
- https://github.com/scylladb/scylla-dtest/pull/3220
- https://github.com/scylladb/scylla-dtest/pull/3232
can enable us to proceed without being blocked by this issue or your initiative to ditch sstabledump
. and your change will allow revert some of these dtest changes.
@denesb hi Botond, i am going to add a wrapper around scylla dump-data
to replace sstabledump
, what do you think? i think once we have https://github.com/scylladb/scylladb/pull/14726 . we will be able to drop sstabledump
.
sstablemetadata
also fails on uuid-based sstable identifier
sstablemetadata
also fails on uuid-based sstable identifier
thank you. added to the list.
an alternative of backport uuid identifier changes is to implement it right in scylla. see https://github.com/scylladb/scylladb/issues/14856
@tchaikov
this is breaking rolling upgrades tests as well https://github.com/scylladb/scylla-cluster-tests/blob/6e3d34cd1b9fc6533a4e5a3874fd36ad401b9a81/upgrade_test.py#L698
and a test for GC of tomestones: https://github.com/scylladb/scylla-cluster-tests/blob/6e3d34cd1b9fc6533a4e5a3874fd36ad401b9a81/longevity_tombstone_gc_test.py#L42
@denesb hi Botond, i am going to add a wrapper around
scylla dump-data
to replacesstabledump
, what do you think? i think once we have scylladb/scylladb#14726 . we will be able to dropsstabledump
.
@tchaikov - is this still the plan?
@mykaul no, in an offline discussion with Botond, he warned me that the output format of scylla dump-data
was different from that of sstabledump
. so unless we translate the former into the latter in the wrapper i imagined, it's a no-go. so we are actively replacing sstabledump
in our tests. and mark it deprecated, and then plan to remove it in favor of scylla sstable
after a grace period.
@mykaul no, in an offline discussion with Botond, he warned me that the output format of
scylla dump-data
was different from that ofsstabledump
. so unless we translate the former into the latter in the wrapper i imagined, it's a no-go. so we are actively replacingsstabledump
in our tests. and mark it deprecated, and then plan to remove it in favor ofscylla sstable
after a grace period.
I don't mind deprecating it, but it has docs implications. https://opensource.docs.scylladb.com/stable/operating-scylla/admin-tools/sstabledump.html for example.
https://opensource.docs.scylladb.com/stable/operating-scylla/admin-tools/sstabledump.html
@mykaul hi Yaniv, please take a look at the master version https://opensource.docs.scylladb.com/master/operating-scylla/admin-tools/sstabledump.html . we are deprecating it.