From 74c004a5e04299143199e2450718a2d142facb04 Mon Sep 17 00:00:00 2001 From: Alan Wang Date: Tue, 24 Mar 2026 16:55:39 -0700 Subject: [PATCH 1/2] method for CommandStores used by nodetool cleanup --- .../src/main/java/accord/local/CommandStores.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/accord-core/src/main/java/accord/local/CommandStores.java b/accord-core/src/main/java/accord/local/CommandStores.java index 9a6e2d29af..d69078b9ad 100644 --- a/accord-core/src/main/java/accord/local/CommandStores.java +++ b/accord-core/src/main/java/accord/local/CommandStores.java @@ -1121,4 +1121,13 @@ protected Snapshot current() { return current; } + + public Ranges commandStoresOwnedRanges() + { + Ranges currentRanges = Ranges.EMPTY; + for (ShardHolder shard : current.shards) + currentRanges = currentRanges.union(AbstractRanges.UnionMode.MERGE_ADJACENT, shard.ranges.all()); + + return currentRanges; + } } From ca673853df058b45a39dd004f282375d79d94f56 Mon Sep 17 00:00:00 2001 From: Alan Wang Date: Wed, 1 Apr 2026 00:59:10 -0700 Subject: [PATCH 2/2] changed method to return command store ranges modulo retired ranges --- .../src/main/java/accord/local/CommandStores.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/accord-core/src/main/java/accord/local/CommandStores.java b/accord-core/src/main/java/accord/local/CommandStores.java index d69078b9ad..e7de9f4539 100644 --- a/accord-core/src/main/java/accord/local/CommandStores.java +++ b/accord-core/src/main/java/accord/local/CommandStores.java @@ -1122,12 +1122,14 @@ protected Snapshot current() return current; } - public Ranges commandStoresOwnedRanges() + public AsyncResult> getInUseRanges() { - Ranges currentRanges = Ranges.EMPTY; - for (ShardHolder shard : current.shards) - currentRanges = currentRanges.union(AbstractRanges.UnionMode.MERGE_ADJACENT, shard.ranges.all()); + List> results = new ArrayList<>(); + Snapshot snapshot = current; + for (ShardHolder shard : snapshot.shards) + results.add(shard.store.submit((PreLoadContext.Empty) () -> "Get not retired ranges", + safeCommandStore -> shard.ranges().notRetired(safeCommandStore))); - return currentRanges; + return AsyncResults.allOf(results); } }