Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 b2b756013 -> 813eb2357
Cancel the transaction for sstables that we wont redistribute index summary for. Patch by marcuse; reviewed by benedict for CASSANDRA-10270 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/813eb235 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/813eb235 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/813eb235 Branch: refs/heads/cassandra-2.2 Commit: 813eb23576221179b3d66862302602dee10ae9ef Parents: b2b7560 Author: Marcus Eriksson <marc...@apache.org> Authored: Wed Sep 9 14:08:10 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Thu Sep 10 08:30:00 2015 +0200 ---------------------------------------------------------------------- CHANGES.txt | 2 ++ .../org/apache/cassandra/io/sstable/IndexSummaryManager.java | 4 ++++ 2 files changed, 6 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/813eb235/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index d49ab3d..e1365b5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 2.2.2 + * Cancel transaction for sstables we wont redistribute index summary + for (CASSANDRA-10270) * Handle missing RoleManager in config after upgrade to 2.2 (CASSANDRA-10209) * Retry snapshot deletion after compaction and gc on Windows (CASSANDRA-10222) * Fix failure to start with space in directory path on Windows (CASSANDRA-10239) http://git-wip-us.apache.org/repos/asf/cassandra/blob/813eb235/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java b/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java index 6f66fd3..b07b2f5 100644 --- a/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java +++ b/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java @@ -253,6 +253,7 @@ public class IndexSummaryManager implements IndexSummaryManagerMBean @VisibleForTesting public static List<SSTableReader> redistributeSummaries(List<SSTableReader> compacting, Map<UUID, LifecycleTransaction> transactions, long memoryPoolBytes) throws IOException { + logger.info("Redistributing index summaries"); List<SSTableReader> oldFormatSSTables = new ArrayList<>(); List<SSTableReader> redistribute = new ArrayList<>(); for (LifecycleTransaction txn : transactions.values()) @@ -402,6 +403,7 @@ public class IndexSummaryManager implements IndexSummaryManagerMBean logger.trace("SSTable {} is within thresholds of ideal sampling", sstable); remainingSpace -= sstable.getIndexSummaryOffHeapSize(); newSSTables.add(sstable); + transactions.get(sstable.metadata.cfId).cancel(sstable); } totalReadsPerSec -= readsPerSec; } @@ -411,6 +413,8 @@ public class IndexSummaryManager implements IndexSummaryManagerMBean Pair<List<SSTableReader>, List<ResampleEntry>> result = distributeRemainingSpace(toDownsample, remainingSpace); toDownsample = result.right; newSSTables.addAll(result.left); + for (SSTableReader sstable : result.left) + transactions.get(sstable.metadata.cfId).cancel(sstable); } // downsample first, then upsample