mirror of https://github.com/apache/cassandra
Fix the ordering of sstables when running sstableupgrade tool
patch by Claude Warren; reviewed by Jacek Lewandowski and Stefan Miklosovic for CASSANDRA-18143
This commit is contained in:
parent
02048cffea
commit
8df69c8016
|
|
@ -1,4 +1,5 @@
|
|||
3.0.29
|
||||
* Fix the ordering of sstables when running sstableupgrade tool (CASSANDRA-18143)
|
||||
* Fix default file system error handler for disk_failure_policy die (CASSANDRA-18294)
|
||||
* Introduce check for names of test classes (CASSANDRA-17964)
|
||||
* Suppress CVE-2022-41915 (CASSANDRA-18147)
|
||||
|
|
|
|||
|
|
@ -671,6 +671,18 @@ public class Directories
|
|||
return ImmutableMap.copyOf(components);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a sorted version of the {@code list} method.
|
||||
* Descriptors are sorted by generation.
|
||||
* @return a List of descriptors to their components.
|
||||
*/
|
||||
public List<Map.Entry<Descriptor, Set<Component>>> sortedList()
|
||||
{
|
||||
List<Map.Entry<Descriptor, Set<Component>>> sortedEntries = new ArrayList<>(list().entrySet());
|
||||
sortedEntries.sort(Comparator.comparingInt(e -> e.getKey().generation));
|
||||
return sortedEntries;
|
||||
}
|
||||
|
||||
public List<File> listFiles()
|
||||
{
|
||||
filter();
|
||||
|
|
|
|||
|
|
@ -72,8 +72,8 @@ public class StandaloneUpgrader
|
|||
|
||||
Collection<SSTableReader> readers = new ArrayList<>();
|
||||
|
||||
// Upgrade sstables
|
||||
for (Map.Entry<Descriptor, Set<Component>> entry : lister.list().entrySet())
|
||||
// Upgrade sstables in id order
|
||||
for (Map.Entry<Descriptor, Set<Component>> entry : lister.sortedList())
|
||||
{
|
||||
Set<Component> components = entry.getValue();
|
||||
if (!components.contains(Component.DATA) || !components.contains(Component.PRIMARY_INDEX))
|
||||
|
|
|
|||
Loading…
Reference in New Issue