You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by db...@apache.org on 2013/08/20 23:58:48 UTC
[1/4] git commit: add a -no-snapshot option to scrub to be able to
run in tight disk space scenarios patch by ltodorov reviewed by dbrosius for
cassandra-5891
Updated Branches:
refs/heads/trunk 7a46c97f8 -> 8d2fdf399
add a -no-snapshot option to scrub to be able to run in tight disk space scenarios
patch by ltodorov reviewed by dbrosius for cassandra-5891
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dbb55ebd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dbb55ebd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dbb55ebd
Branch: refs/heads/trunk
Commit: dbb55ebd685ca36dc962e07d1a33b3354a1ce433
Parents: 1df9823
Author: Dave Brosius <db...@apache.org>
Authored: Tue Aug 20 17:38:52 2013 -0400
Committer: Dave Brosius <db...@apache.org>
Committed: Tue Aug 20 17:38:52 2013 -0400
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 6 ++++--
src/java/org/apache/cassandra/service/StorageService.java | 4 ++--
src/java/org/apache/cassandra/service/StorageServiceMBean.java | 2 +-
src/java/org/apache/cassandra/tools/NodeCmd.java | 5 ++++-
src/java/org/apache/cassandra/tools/NodeProbe.java | 4 ++--
6 files changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbb55ebd/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7ecf602..7d36c95 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -22,6 +22,7 @@
(CASSANDRA-5856)
* Don't announce schema version until we've loaded the changes locally
(CASSANDRA-5904)
+ * Add -no-snapshot option to scrub (CASSANDRA-5891)
Merged from 1.1:
* Correctly validate sparse composite cells in scrub (CASSANDRA-5855)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbb55ebd/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 0000deb..22b1dd5 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -967,9 +967,11 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
CompactionManager.instance.performCleanup(ColumnFamilyStore.this, renewer);
}
- public void scrub() throws ExecutionException, InterruptedException
+ public void scrub(boolean disableSnapshot) throws ExecutionException, InterruptedException
{
- snapshotWithoutFlush("pre-scrub-" + System.currentTimeMillis());
+ // skip snapshot creation during scrub, SEE JIRA 5891
+ if(!disableSnapshot)
+ snapshotWithoutFlush("pre-scrub-" + System.currentTimeMillis());
CompactionManager.instance.performScrub(ColumnFamilyStore.this);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbb55ebd/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 588777b..9339132 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2149,10 +2149,10 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
}
}
- public void scrub(String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
+ public void scrub(boolean disableSnapshot, String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
{
for (ColumnFamilyStore cfStore : getValidColumnFamilies(false, false, tableName, columnFamilies))
- cfStore.scrub();
+ cfStore.scrub(disableSnapshot);
}
public void upgradeSSTables(String tableName, boolean excludeCurrentVersion, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbb55ebd/src/java/org/apache/cassandra/service/StorageServiceMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
index b831d7d..15f2113 100644
--- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java
+++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
@@ -236,7 +236,7 @@ public interface StorageServiceMBean extends NotificationEmitter
*
* Scrubbed CFs will be snapshotted first.
*/
- public void scrub(String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException;
+ public void scrub(boolean disableSnapshot, String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException;
/**
* Rewrite all sstables to the latest version.
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbb55ebd/src/java/org/apache/cassandra/tools/NodeCmd.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java
index f6d4310..4e9f461 100644
--- a/src/java/org/apache/cassandra/tools/NodeCmd.java
+++ b/src/java/org/apache/cassandra/tools/NodeCmd.java
@@ -70,6 +70,7 @@ public class NodeCmd
private static final Pair<String, String> START_TOKEN_OPT = Pair.create("st", "start-token");
private static final Pair<String, String> END_TOKEN_OPT = Pair.create("et", "end-token");
private static final Pair<String, String> UPGRADE_ALL_SSTABLE_OPT = Pair.create("a", "include-all-sstables");
+ private static final Pair<String, String> NO_SNAPSHOT = Pair.create("ns", "no-snapshot");
private static final String DEFAULT_HOST = "127.0.0.1";
private static final int DEFAULT_PORT = 7199;
@@ -93,6 +94,7 @@ public class NodeCmd
options.addOption(START_TOKEN_OPT, true, "token at which repair range starts");
options.addOption(END_TOKEN_OPT, true, "token at which repair range ends");
options.addOption(UPGRADE_ALL_SSTABLE_OPT, false, "includes sstables that are already on the most recent version during upgradesstables");
+ options.addOption(NO_SNAPSHOT, false, "disables snapshot creation for scrub");
}
public NodeCmd(NodeProbe probe)
@@ -1497,7 +1499,8 @@ public class NodeCmd
catch (ExecutionException ee) { err(ee, "Error occurred during cleanup"); }
break;
case SCRUB :
- try { probe.scrub(keyspace, columnFamilies); }
+ boolean disableSnapshot = cmd.hasOption(NO_SNAPSHOT.left);
+ try { probe.scrub(disableSnapshot, keyspace, columnFamilies); }
catch (ExecutionException ee) { err(ee, "Error occurred while scrubbing keyspace " + keyspace); }
break;
case UPGRADESSTABLES :
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbb55ebd/src/java/org/apache/cassandra/tools/NodeProbe.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java
index dbcb66e..a9b0bb5 100644
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@ -187,9 +187,9 @@ public class NodeProbe
ssProxy.forceTableCleanup(tableName, columnFamilies);
}
- public void scrub(String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
+ public void scrub(boolean disableSnapshot, String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
{
- ssProxy.scrub(tableName, columnFamilies);
+ ssProxy.scrub(disableSnapshot, tableName, columnFamilies);
}
public void upgradeSSTables(String tableName, boolean excludeCurrentVersion, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
[3/4] git commit: Merge branch 'cassandra-2.0.0' into cassandra-2.0
Posted by db...@apache.org.
Merge branch 'cassandra-2.0.0' into cassandra-2.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e0238974
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e0238974
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e0238974
Branch: refs/heads/trunk
Commit: e02389747cf265e589c7487ad832f20163ac3ece
Parents: fb9b3d5 33fda2d
Author: Dave Brosius <db...@apache.org>
Authored: Tue Aug 20 17:53:43 2013 -0400
Committer: Dave Brosius <db...@apache.org>
Committed: Tue Aug 20 17:53:43 2013 -0400
----------------------------------------------------------------------
CHANGES.txt | 3 +++
src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 6 ++++--
src/java/org/apache/cassandra/service/StorageService.java | 4 ++--
src/java/org/apache/cassandra/service/StorageServiceMBean.java | 4 ++--
src/java/org/apache/cassandra/tools/NodeCmd.java | 5 ++++-
src/java/org/apache/cassandra/tools/NodeProbe.java | 4 ++--
6 files changed, 17 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0238974/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0238974/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
[4/4] git commit: Merge branch 'cassandra-2.0' into trunk
Posted by db...@apache.org.
Merge branch 'cassandra-2.0' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8d2fdf39
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8d2fdf39
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8d2fdf39
Branch: refs/heads/trunk
Commit: 8d2fdf3993f77f7a7dac87a7ef1374b97b375d94
Parents: 7a46c97 e023897
Author: Dave Brosius <db...@apache.org>
Authored: Tue Aug 20 17:56:02 2013 -0400
Committer: Dave Brosius <db...@apache.org>
Committed: Tue Aug 20 17:56:02 2013 -0400
----------------------------------------------------------------------
CHANGES.txt | 3 +++
src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 6 ++++--
src/java/org/apache/cassandra/service/StorageService.java | 4 ++--
src/java/org/apache/cassandra/service/StorageServiceMBean.java | 4 ++--
src/java/org/apache/cassandra/tools/NodeCmd.java | 5 ++++-
src/java/org/apache/cassandra/tools/NodeProbe.java | 4 ++--
6 files changed, 17 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8d2fdf39/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8d2fdf39/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8d2fdf39/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8d2fdf39/src/java/org/apache/cassandra/service/StorageServiceMBean.java
----------------------------------------------------------------------
[2/4] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0.0
Posted by db...@apache.org.
Merge branch 'cassandra-1.2' into cassandra-2.0.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/33fda2db
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/33fda2db
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/33fda2db
Branch: refs/heads/trunk
Commit: 33fda2db610202d7ed8e75afe6a0ac8e30003834
Parents: 3a7d9f8 dbb55eb
Author: Dave Brosius <db...@apache.org>
Authored: Tue Aug 20 17:52:43 2013 -0400
Committer: Dave Brosius <db...@apache.org>
Committed: Tue Aug 20 17:52:43 2013 -0400
----------------------------------------------------------------------
CHANGES.txt | 3 +++
src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 6 ++++--
src/java/org/apache/cassandra/service/StorageService.java | 4 ++--
src/java/org/apache/cassandra/service/StorageServiceMBean.java | 4 ++--
src/java/org/apache/cassandra/tools/NodeCmd.java | 5 ++++-
src/java/org/apache/cassandra/tools/NodeProbe.java | 4 ++--
6 files changed, 17 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/33fda2db/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/33fda2db/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/33fda2db/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index a23db0c,9339132..3ef9d4b
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -2076,15 -2149,15 +2076,15 @@@ public class StorageService extends Not
}
}
- public void scrub(String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
- public void scrub(boolean disableSnapshot, String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
++ public void scrub(boolean disableSnapshot, String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
{
- for (ColumnFamilyStore cfStore : getValidColumnFamilies(false, false, tableName, columnFamilies))
+ for (ColumnFamilyStore cfStore : getValidColumnFamilies(false, false, keyspaceName, columnFamilies))
- cfStore.scrub();
+ cfStore.scrub(disableSnapshot);
}
- public void upgradeSSTables(String tableName, boolean excludeCurrentVersion, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
+ public void upgradeSSTables(String keyspaceName, boolean excludeCurrentVersion, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
{
- for (ColumnFamilyStore cfStore : getValidColumnFamilies(true, true, tableName, columnFamilies))
+ for (ColumnFamilyStore cfStore : getValidColumnFamilies(true, true, keyspaceName, columnFamilies))
cfStore.sstablesRewrite(excludeCurrentVersion);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/33fda2db/src/java/org/apache/cassandra/service/StorageServiceMBean.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageServiceMBean.java
index a84bcf4,15f2113..0eb2f49
--- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java
+++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
@@@ -229,9 -234,9 +229,9 @@@ public interface StorageServiceMBean ex
* Scrub (deserialize + reserialize at the latest version, skipping bad rows if any) the given keyspace.
* If columnFamilies array is empty, all CFs are scrubbed.
*
-- * Scrubbed CFs will be snapshotted first.
++ * Scrubbed CFs will be snapshotted first, if disableSnapshot is false
*/
- public void scrub(String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException;
- public void scrub(boolean disableSnapshot, String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException;
++ public void scrub(boolean disableSnapshot, String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException;
/**
* Rewrite all sstables to the latest version.
http://git-wip-us.apache.org/repos/asf/cassandra/blob/33fda2db/src/java/org/apache/cassandra/tools/NodeCmd.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/33fda2db/src/java/org/apache/cassandra/tools/NodeProbe.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/tools/NodeProbe.java
index 0da2944,a9b0bb5..c633406
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@@ -183,39 -182,39 +183,39 @@@ public class NodeProb
jmxc.close();
}
- public void forceTableCleanup(String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
+ public void forceKeyspaceCleanup(String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
{
- ssProxy.forceTableCleanup(tableName, columnFamilies);
+ ssProxy.forceKeyspaceCleanup(keyspaceName, columnFamilies);
}
- public void scrub(String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
- public void scrub(boolean disableSnapshot, String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
++ public void scrub(boolean disableSnapshot, String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
{
- ssProxy.scrub(keyspaceName, columnFamilies);
- ssProxy.scrub(disableSnapshot, tableName, columnFamilies);
++ ssProxy.scrub(disableSnapshot, keyspaceName, columnFamilies);
}
- public void upgradeSSTables(String tableName, boolean excludeCurrentVersion, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
+ public void upgradeSSTables(String keyspaceName, boolean excludeCurrentVersion, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
{
- ssProxy.upgradeSSTables(tableName, excludeCurrentVersion, columnFamilies);
+ ssProxy.upgradeSSTables(keyspaceName, excludeCurrentVersion, columnFamilies);
}
- public void forceTableCompaction(String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
+ public void forceKeyspaceCompaction(String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
{
- ssProxy.forceTableCompaction(tableName, columnFamilies);
+ ssProxy.forceKeyspaceCompaction(keyspaceName, columnFamilies);
}
- public void forceTableFlush(String tableName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
+ public void forceKeyspaceFlush(String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException
{
- ssProxy.forceTableFlush(tableName, columnFamilies);
+ ssProxy.forceKeyspaceFlush(keyspaceName, columnFamilies);
}
- public void forceTableRepair(String tableName, boolean isSequential, boolean isLocal, String... columnFamilies) throws IOException
+ public void forceKeyspaceRepair(String keyspaceName, boolean isSequential, boolean isLocal, String... columnFamilies) throws IOException
{
- ssProxy.forceTableRepair(tableName, isSequential, isLocal, columnFamilies);
+ ssProxy.forceKeyspaceRepair(keyspaceName, isSequential, isLocal, columnFamilies);
}
- public void forceRepairAsync(final PrintStream out, final String tableName, boolean isSequential, boolean isLocal, boolean primaryRange, String... columnFamilies) throws IOException
+ public void forceRepairAsync(final PrintStream out, final String keyspaceName, boolean isSequential, boolean isLocal, boolean primaryRange, String... columnFamilies) throws IOException
{
- RepairRunner runner = new RepairRunner(out, tableName, columnFamilies);
+ RepairRunner runner = new RepairRunner(out, keyspaceName, columnFamilies);
try
{
ssProxy.addNotificationListener(runner, null, null);