[1/2] cassandra git commit: Make sstablescrub check both the repaired and unrepaired leveled manifests
Repository: cassandra Updated Branches: refs/heads/trunk e6c5982fa - 417563a59 Make sstablescrub check both the repaired and unrepaired leveled manifests Patch by marcuse; reviewed by cyeksigian for CASSANDRA-8432 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6f98c6c4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6f98c6c4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6f98c6c4 Branch: refs/heads/trunk Commit: 6f98c6c4ed2e2b3d427cd10c2b2ada9c60b35acd Parents: d5e5f98 Author: Marcus Eriksson marc...@apache.org Authored: Mon Dec 8 11:45:59 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Wed Dec 17 12:31:40 2014 +0100 -- CHANGES.txt | 1 + .../cassandra/tools/StandaloneScrubber.java | 52 ++-- 2 files changed, 38 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6f98c6c4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 410d49a..9ec3585 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.3 + * Make sstablescrub check leveled manifest again (CASSANDRA-8432) * Check first/last keys in sstable when giving out positions (CASSANDRA-8458) * Disable mmap on Windows (CASSANDRA-6993) * Add missing ConsistencyLevels to cassandra-stress (CASSANDRA-8253) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6f98c6c4/src/java/org/apache/cassandra/tools/StandaloneScrubber.java -- diff --git a/src/java/org/apache/cassandra/tools/StandaloneScrubber.java b/src/java/org/apache/cassandra/tools/StandaloneScrubber.java index 42799a5..2a9763b 100644 --- a/src/java/org/apache/cassandra/tools/StandaloneScrubber.java +++ b/src/java/org/apache/cassandra/tools/StandaloneScrubber.java @@ -21,6 +21,10 @@ package org.apache.cassandra.tools; import java.io.File; import java.util.*; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import org.apache.commons.cli.*; import org.apache.cassandra.config.DatabaseDescriptor; @@ -28,9 +32,11 @@ import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.Directories; import org.apache.cassandra.db.Keyspace; +import org.apache.cassandra.db.compaction.AbstractCompactionStrategy; import org.apache.cassandra.db.compaction.LeveledCompactionStrategy; import org.apache.cassandra.db.compaction.LeveledManifest; import org.apache.cassandra.db.compaction.Scrubber; +import org.apache.cassandra.db.compaction.WrappingCompactionStrategy; import org.apache.cassandra.io.sstable.*; import org.apache.cassandra.utils.JVMStabilityInspector; import org.apache.cassandra.utils.OutputHandler; @@ -95,14 +101,6 @@ public class StandaloneScrubber } System.out.println(String.format(Pre-scrub sstables snapshotted into snapshot %s, snapshotName)); -LeveledManifest manifest = null; -// If leveled, load the manifest -if (cfs.getCompactionStrategy() instanceof LeveledCompactionStrategy) -{ -int maxSizeInMB = (int)((cfs.getCompactionStrategy().getMaxSSTableBytes()) / (1024L * 1024L)); -manifest = LeveledManifest.create(cfs, maxSizeInMB, sstables); -} - if (!options.manifestCheckOnly) { for (SSTableReader sstable : sstables) @@ -131,9 +129,8 @@ public class StandaloneScrubber } } -// Check (and repair) manifest -if (manifest != null) -checkManifest(manifest); +// Check (and repair) manifests +checkManifest(cfs.getCompactionStrategy(), cfs, sstables); SSTableDeletingTask.waitForDeletions(); System.exit(0); // We need that to stop non daemonized threads @@ -147,11 +144,36 @@ public class StandaloneScrubber } } -private static void checkManifest(LeveledManifest manifest) +private static void checkManifest(AbstractCompactionStrategy strategy, ColumnFamilyStore cfs, CollectionSSTableReader sstables) { -System.out.println(String.format(Checking leveled manifest)); -for (int i = 1; i = manifest.getLevelCount(); ++i) -manifest.repairOverlappingSSTables(i); +WrappingCompactionStrategy wrappingStrategy = (WrappingCompactionStrategy)strategy; +int maxSizeInMB = (int)((cfs.getCompactionStrategy().getMaxSSTableBytes()) / (1024L * 1024L)); +if
cassandra git commit: Make sstablescrub check both the repaired and unrepaired leveled manifests
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 d5e5f9800 - 6f98c6c4e Make sstablescrub check both the repaired and unrepaired leveled manifests Patch by marcuse; reviewed by cyeksigian for CASSANDRA-8432 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6f98c6c4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6f98c6c4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6f98c6c4 Branch: refs/heads/cassandra-2.1 Commit: 6f98c6c4ed2e2b3d427cd10c2b2ada9c60b35acd Parents: d5e5f98 Author: Marcus Eriksson marc...@apache.org Authored: Mon Dec 8 11:45:59 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Wed Dec 17 12:31:40 2014 +0100 -- CHANGES.txt | 1 + .../cassandra/tools/StandaloneScrubber.java | 52 ++-- 2 files changed, 38 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6f98c6c4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 410d49a..9ec3585 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.3 + * Make sstablescrub check leveled manifest again (CASSANDRA-8432) * Check first/last keys in sstable when giving out positions (CASSANDRA-8458) * Disable mmap on Windows (CASSANDRA-6993) * Add missing ConsistencyLevels to cassandra-stress (CASSANDRA-8253) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6f98c6c4/src/java/org/apache/cassandra/tools/StandaloneScrubber.java -- diff --git a/src/java/org/apache/cassandra/tools/StandaloneScrubber.java b/src/java/org/apache/cassandra/tools/StandaloneScrubber.java index 42799a5..2a9763b 100644 --- a/src/java/org/apache/cassandra/tools/StandaloneScrubber.java +++ b/src/java/org/apache/cassandra/tools/StandaloneScrubber.java @@ -21,6 +21,10 @@ package org.apache.cassandra.tools; import java.io.File; import java.util.*; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import org.apache.commons.cli.*; import org.apache.cassandra.config.DatabaseDescriptor; @@ -28,9 +32,11 @@ import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.Directories; import org.apache.cassandra.db.Keyspace; +import org.apache.cassandra.db.compaction.AbstractCompactionStrategy; import org.apache.cassandra.db.compaction.LeveledCompactionStrategy; import org.apache.cassandra.db.compaction.LeveledManifest; import org.apache.cassandra.db.compaction.Scrubber; +import org.apache.cassandra.db.compaction.WrappingCompactionStrategy; import org.apache.cassandra.io.sstable.*; import org.apache.cassandra.utils.JVMStabilityInspector; import org.apache.cassandra.utils.OutputHandler; @@ -95,14 +101,6 @@ public class StandaloneScrubber } System.out.println(String.format(Pre-scrub sstables snapshotted into snapshot %s, snapshotName)); -LeveledManifest manifest = null; -// If leveled, load the manifest -if (cfs.getCompactionStrategy() instanceof LeveledCompactionStrategy) -{ -int maxSizeInMB = (int)((cfs.getCompactionStrategy().getMaxSSTableBytes()) / (1024L * 1024L)); -manifest = LeveledManifest.create(cfs, maxSizeInMB, sstables); -} - if (!options.manifestCheckOnly) { for (SSTableReader sstable : sstables) @@ -131,9 +129,8 @@ public class StandaloneScrubber } } -// Check (and repair) manifest -if (manifest != null) -checkManifest(manifest); +// Check (and repair) manifests +checkManifest(cfs.getCompactionStrategy(), cfs, sstables); SSTableDeletingTask.waitForDeletions(); System.exit(0); // We need that to stop non daemonized threads @@ -147,11 +144,36 @@ public class StandaloneScrubber } } -private static void checkManifest(LeveledManifest manifest) +private static void checkManifest(AbstractCompactionStrategy strategy, ColumnFamilyStore cfs, CollectionSSTableReader sstables) { -System.out.println(String.format(Checking leveled manifest)); -for (int i = 1; i = manifest.getLevelCount(); ++i) -manifest.repairOverlappingSSTables(i); +WrappingCompactionStrategy wrappingStrategy = (WrappingCompactionStrategy)strategy; +int maxSizeInMB = (int)((cfs.getCompactionStrategy().getMaxSSTableBytes()) / (1024L * 1024L)); +