since scylla 5.4, the sstables are named with a uuid-based identifier instead of integer-based one. so the java tools inherited from cassandra 3.x branch do not support it, and throw exception, like
root@df13a4d04afa:/var/lib/scylla/data/foo/bar-eb90daf0952d11ee87e220c83109c794# sstablemetadata 'me-3gbp_1glu_4e6g020ns4px173el0-big-Data.db'
Exception in thread "main" java.lang.NumberFormatException: For input string: "3gbp_1glu_4e6g020ns4px173el0"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:280)
at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:228)
at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:217)
at org.apache.cassandra.tools.SSTableMetadataViewer.main(SSTableMetadataViewer.java:150)
root@df13a4d04afa:/var/lib/scylla/data/foo/bar-eb90daf0952d11ee87e220c83109c794# sstabledump 'me-3gbp_1glu_4e6g020ns4px173el0-big-Data.db'
Exception in thread "main" java.lang.NumberFormatException: For input string: "3gbp_1glu_4e6g020ns4px173el0"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:280)
at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:228)
at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:217)
at org.apache.cassandra.tools.SSTableExport.run(SSTableExport.java:188)
at com.scylladb.tools.SSTableExport.main(SSTableExport.java:44)
we should patch java tools print a message when they see a UUID generation, telling the user to use the native tools for sstables with UUID generation.
since scylla 5.4, the sstables are named with a uuid-based identifier instead of integer-based one. so the java tools inherited from cassandra 3.x branch do not support it, and throw exception, like
we should patch java tools print a message when they see a UUID generation, telling the user to use the native tools for sstables with UUID generation.