You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2014/03/21 19:18:35 UTC

[1/6] git commit: Allow deleting snapshots from dropped keyspaces patch by Lyuben Todorov; reviewed by Nick Bailey for CASSANDRA-6281

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 c843b6b85 -> 6b6139cc8
  refs/heads/cassandra-2.1 7c4a88949 -> 25af168c0
  refs/heads/trunk 02aad29e8 -> a161f088c


Allow deleting snapshots from dropped keyspaces
patch by Lyuben Todorov; reviewed by Nick Bailey for CASSANDRA-6281


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6b6139cc
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6b6139cc
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6b6139cc

Branch: refs/heads/cassandra-2.0
Commit: 6b6139cc8bf903f76dfc422d1f45a800a84b9000
Parents: c843b6b
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Mar 21 13:17:33 2014 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Fri Mar 21 13:17:33 2014 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 src/java/org/apache/cassandra/db/Keyspace.java  |  4 ++--
 .../cassandra/service/SnapshotVerbHandler.java  |  4 +++-
 .../cassandra/service/StorageService.java       | 23 ++++++++++----------
 4 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index c5f2666..c89ae51 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.7
+ * Allow deleting snapshots from dropped keyspaces (CASSANDRA-6821)
  * Add uuid() function (CASSANDRA-6473)
  * Omit tombstones from schema digests (CASSANDRA-6862)
  * Include correct consistencyLevel in LWT timeout (CASSANDRA-6884)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/src/java/org/apache/cassandra/db/Keyspace.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Keyspace.java b/src/java/org/apache/cassandra/db/Keyspace.java
index f5369f9..714956a 100644
--- a/src/java/org/apache/cassandra/db/Keyspace.java
+++ b/src/java/org/apache/cassandra/db/Keyspace.java
@@ -237,9 +237,9 @@ public class Keyspace
      * @param snapshotName the user supplied snapshot name. It empty or null,
      *                     all the snapshots will be cleaned
      */
-    public void clearSnapshot(String snapshotName)
+    public static void clearSnapshot(String snapshotName, String keyspace)
     {
-        List<File> snapshotDirs = Directories.getKSChildDirectories(getName());
+        List<File> snapshotDirs = Directories.getKSChildDirectories(keyspace);
         Directories.clearSnapshot(snapshotName, snapshotDirs);
     }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java b/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
index 2d393cf..a997533 100644
--- a/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
+++ b/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
@@ -35,7 +35,9 @@ public class SnapshotVerbHandler implements IVerbHandler<SnapshotCommand>
     {
         SnapshotCommand command = message.payload;
         if (command.clear_snapshot)
-            Keyspace.open(command.keyspace).clearSnapshot(command.snapshot_name);
+        {
+            Keyspace.clearSnapshot(command.snapshot_name, command.keyspace);
+        }
         else
             Keyspace.open(command.keyspace).getColumnFamilyStore(command.column_family).snapshot(command.snapshot_name);
         logger.debug("Enqueuing response to snapshot request {} to {}", command.snapshot_name, message.from);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/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 b66873c..42a58b0 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2294,21 +2294,20 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         if(tag == null)
             tag = "";
 
-        Iterable<Keyspace> keyspaces;
-        if (keyspaceNames.length == 0)
-        {
-            keyspaces = Keyspace.all();
-        }
-        else
+        Set<String> keyspaces = new HashSet<>();
+        for (String dataDir : DatabaseDescriptor.getAllDataFileLocations())
         {
-            ArrayList<Keyspace> tempKeyspaces = new ArrayList<Keyspace>(keyspaceNames.length);
-            for(String keyspaceName : keyspaceNames)
-                tempKeyspaces.add(getValidKeyspace(keyspaceName));
-            keyspaces = tempKeyspaces;
+            for(String keyspaceDir : new File(dataDir).list())
+            {
+                // Only add a ks if it has been specified as a param, assuming params were actually provided.
+                if (keyspaceNames.length > 0 && !Arrays.asList(keyspaceNames).contains(keyspaceDir))
+                    continue;
+                keyspaces.add(keyspaceDir);
+            }
         }
 
-        for (Keyspace keyspace : keyspaces)
-            keyspace.clearSnapshot(tag);
+        for (String keyspace : keyspaces)
+            Keyspace.clearSnapshot(tag, keyspace);
 
         if (logger.isDebugEnabled())
             logger.debug("Cleared out snapshot directories");


[4/6] git commit: merge from 2.0

Posted by jb...@apache.org.
merge from 2.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/25af168c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/25af168c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/25af168c

Branch: refs/heads/trunk
Commit: 25af168c06b81c632ddd1521160f128d5bf4ae13
Parents: 7c4a889 6b6139c
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Mar 21 13:18:00 2014 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Fri Mar 21 13:18:00 2014 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 src/java/org/apache/cassandra/db/Keyspace.java  |  4 ++--
 .../cassandra/service/SnapshotVerbHandler.java  |  4 +++-
 .../cassandra/service/StorageService.java       | 23 ++++++++++----------
 4 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/25af168c/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 1fbf50c,c89ae51..21d4d5a
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,34 -1,5 +1,35 @@@
 -2.0.7
 +2.1.0-beta2
 + * Eliminate possibility of CL segment appearing twice in active list 
 +   (CASSANDRA-6557)
 + * Apply DONTNEED fadvise to commitlog segments (CASSANDRA-6759)
 + * Switch CRC component to Adler and include it for compressed sstables 
 +   (CASSANDRA-4165)
 + * Allow cassandra-stress to set compaction strategy options (CASSANDRA-6451)
 + * Add broadcast_rpc_address option to cassandra.yaml (CASSANDRA-5899)
 + * Auto reload GossipingPropertyFileSnitch config (CASSANDRA-5897)
 + * Fix overflow of memtable_total_space_in_mb (CASSANDRA-6573)
 + * Fix ABTC NPE and apply update function correctly (CASSANDRA-6692)
 + * Allow nodetool to use a file or prompt for password (CASSANDRA-6660)
 + * Fix AIOOBE when concurrently accessing ABSC (CASSANDRA-6742)
 + * Fix assertion error in ALTER TYPE RENAME (CASSANDRA-6705)
 + * Scrub should not always clear out repaired status (CASSANDRA-5351)
 + * Improve handling of range tombstone for wide partitions (CASSANDRA-6446)
 + * Fix ClassCastException for compact table with composites (CASSANDRA-6738)
 + * Fix potentially repairing with wrong nodes (CASSANDRA-6808)
 + * Change caching option syntax (CASSANDRA-6745)
 + * Fix stress to do proper counter reads (CASSANDRA-6835)
 + * Fix help message for stress counter_write (CASSANDRA-6824)
 + * Fix stress smart Thrift client to pick servers correctly (CASSANDRA-6848)
 + * Add logging levels (minimal, normal or verbose) to stress tool (CASSANDRA-6849)
 + * Fix race condition in Batch CLE (CASSANDRA-6860)
 + * Improve cleanup/scrub/upgradesstables failure handling (CASSANDRA-6774)
 + * ByteBuffer write() methods for serializing sstables (CASSANDRA-6781)
 + * Proper compare function for CollectionType (CASSANDRA-6783)
 + * Update native server to Netty 4 (CASSANDRA-6236)
 + * Fix off-by-one error in stress (CASSANDRA-6883)
 + * Make OpOrder AutoCloseable (CASSANDRA-6901)
 +Merged from 2.0:
+  * Allow deleting snapshots from dropped keyspaces (CASSANDRA-6821)
   * Add uuid() function (CASSANDRA-6473)
   * Omit tombstones from schema digests (CASSANDRA-6862)
   * Include correct consistencyLevel in LWT timeout (CASSANDRA-6884)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/25af168c/src/java/org/apache/cassandra/db/Keyspace.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/25af168c/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------


[2/6] git commit: Allow deleting snapshots from dropped keyspaces patch by Lyuben Todorov; reviewed by Nick Bailey for CASSANDRA-6281

Posted by jb...@apache.org.
Allow deleting snapshots from dropped keyspaces
patch by Lyuben Todorov; reviewed by Nick Bailey for CASSANDRA-6281


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6b6139cc
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6b6139cc
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6b6139cc

Branch: refs/heads/cassandra-2.1
Commit: 6b6139cc8bf903f76dfc422d1f45a800a84b9000
Parents: c843b6b
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Mar 21 13:17:33 2014 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Fri Mar 21 13:17:33 2014 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 src/java/org/apache/cassandra/db/Keyspace.java  |  4 ++--
 .../cassandra/service/SnapshotVerbHandler.java  |  4 +++-
 .../cassandra/service/StorageService.java       | 23 ++++++++++----------
 4 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index c5f2666..c89ae51 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.7
+ * Allow deleting snapshots from dropped keyspaces (CASSANDRA-6821)
  * Add uuid() function (CASSANDRA-6473)
  * Omit tombstones from schema digests (CASSANDRA-6862)
  * Include correct consistencyLevel in LWT timeout (CASSANDRA-6884)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/src/java/org/apache/cassandra/db/Keyspace.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Keyspace.java b/src/java/org/apache/cassandra/db/Keyspace.java
index f5369f9..714956a 100644
--- a/src/java/org/apache/cassandra/db/Keyspace.java
+++ b/src/java/org/apache/cassandra/db/Keyspace.java
@@ -237,9 +237,9 @@ public class Keyspace
      * @param snapshotName the user supplied snapshot name. It empty or null,
      *                     all the snapshots will be cleaned
      */
-    public void clearSnapshot(String snapshotName)
+    public static void clearSnapshot(String snapshotName, String keyspace)
     {
-        List<File> snapshotDirs = Directories.getKSChildDirectories(getName());
+        List<File> snapshotDirs = Directories.getKSChildDirectories(keyspace);
         Directories.clearSnapshot(snapshotName, snapshotDirs);
     }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java b/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
index 2d393cf..a997533 100644
--- a/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
+++ b/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
@@ -35,7 +35,9 @@ public class SnapshotVerbHandler implements IVerbHandler<SnapshotCommand>
     {
         SnapshotCommand command = message.payload;
         if (command.clear_snapshot)
-            Keyspace.open(command.keyspace).clearSnapshot(command.snapshot_name);
+        {
+            Keyspace.clearSnapshot(command.snapshot_name, command.keyspace);
+        }
         else
             Keyspace.open(command.keyspace).getColumnFamilyStore(command.column_family).snapshot(command.snapshot_name);
         logger.debug("Enqueuing response to snapshot request {} to {}", command.snapshot_name, message.from);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/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 b66873c..42a58b0 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2294,21 +2294,20 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         if(tag == null)
             tag = "";
 
-        Iterable<Keyspace> keyspaces;
-        if (keyspaceNames.length == 0)
-        {
-            keyspaces = Keyspace.all();
-        }
-        else
+        Set<String> keyspaces = new HashSet<>();
+        for (String dataDir : DatabaseDescriptor.getAllDataFileLocations())
         {
-            ArrayList<Keyspace> tempKeyspaces = new ArrayList<Keyspace>(keyspaceNames.length);
-            for(String keyspaceName : keyspaceNames)
-                tempKeyspaces.add(getValidKeyspace(keyspaceName));
-            keyspaces = tempKeyspaces;
+            for(String keyspaceDir : new File(dataDir).list())
+            {
+                // Only add a ks if it has been specified as a param, assuming params were actually provided.
+                if (keyspaceNames.length > 0 && !Arrays.asList(keyspaceNames).contains(keyspaceDir))
+                    continue;
+                keyspaces.add(keyspaceDir);
+            }
         }
 
-        for (Keyspace keyspace : keyspaces)
-            keyspace.clearSnapshot(tag);
+        for (String keyspace : keyspaces)
+            Keyspace.clearSnapshot(tag, keyspace);
 
         if (logger.isDebugEnabled())
             logger.debug("Cleared out snapshot directories");


[5/6] git commit: merge from 2.0

Posted by jb...@apache.org.
merge from 2.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/25af168c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/25af168c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/25af168c

Branch: refs/heads/cassandra-2.1
Commit: 25af168c06b81c632ddd1521160f128d5bf4ae13
Parents: 7c4a889 6b6139c
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Mar 21 13:18:00 2014 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Fri Mar 21 13:18:00 2014 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 src/java/org/apache/cassandra/db/Keyspace.java  |  4 ++--
 .../cassandra/service/SnapshotVerbHandler.java  |  4 +++-
 .../cassandra/service/StorageService.java       | 23 ++++++++++----------
 4 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/25af168c/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 1fbf50c,c89ae51..21d4d5a
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,34 -1,5 +1,35 @@@
 -2.0.7
 +2.1.0-beta2
 + * Eliminate possibility of CL segment appearing twice in active list 
 +   (CASSANDRA-6557)
 + * Apply DONTNEED fadvise to commitlog segments (CASSANDRA-6759)
 + * Switch CRC component to Adler and include it for compressed sstables 
 +   (CASSANDRA-4165)
 + * Allow cassandra-stress to set compaction strategy options (CASSANDRA-6451)
 + * Add broadcast_rpc_address option to cassandra.yaml (CASSANDRA-5899)
 + * Auto reload GossipingPropertyFileSnitch config (CASSANDRA-5897)
 + * Fix overflow of memtable_total_space_in_mb (CASSANDRA-6573)
 + * Fix ABTC NPE and apply update function correctly (CASSANDRA-6692)
 + * Allow nodetool to use a file or prompt for password (CASSANDRA-6660)
 + * Fix AIOOBE when concurrently accessing ABSC (CASSANDRA-6742)
 + * Fix assertion error in ALTER TYPE RENAME (CASSANDRA-6705)
 + * Scrub should not always clear out repaired status (CASSANDRA-5351)
 + * Improve handling of range tombstone for wide partitions (CASSANDRA-6446)
 + * Fix ClassCastException for compact table with composites (CASSANDRA-6738)
 + * Fix potentially repairing with wrong nodes (CASSANDRA-6808)
 + * Change caching option syntax (CASSANDRA-6745)
 + * Fix stress to do proper counter reads (CASSANDRA-6835)
 + * Fix help message for stress counter_write (CASSANDRA-6824)
 + * Fix stress smart Thrift client to pick servers correctly (CASSANDRA-6848)
 + * Add logging levels (minimal, normal or verbose) to stress tool (CASSANDRA-6849)
 + * Fix race condition in Batch CLE (CASSANDRA-6860)
 + * Improve cleanup/scrub/upgradesstables failure handling (CASSANDRA-6774)
 + * ByteBuffer write() methods for serializing sstables (CASSANDRA-6781)
 + * Proper compare function for CollectionType (CASSANDRA-6783)
 + * Update native server to Netty 4 (CASSANDRA-6236)
 + * Fix off-by-one error in stress (CASSANDRA-6883)
 + * Make OpOrder AutoCloseable (CASSANDRA-6901)
 +Merged from 2.0:
+  * Allow deleting snapshots from dropped keyspaces (CASSANDRA-6821)
   * Add uuid() function (CASSANDRA-6473)
   * Omit tombstones from schema digests (CASSANDRA-6862)
   * Include correct consistencyLevel in LWT timeout (CASSANDRA-6884)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/25af168c/src/java/org/apache/cassandra/db/Keyspace.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/25af168c/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------


[6/6] git commit: Merge branch 'cassandra-2.1' into trunk

Posted by jb...@apache.org.
Merge branch 'cassandra-2.1' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a161f088
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a161f088
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a161f088

Branch: refs/heads/trunk
Commit: a161f088cb9d2cabb635ee891e1c2082f9a45eb2
Parents: 02aad29 25af168
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Mar 21 13:18:29 2014 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Fri Mar 21 13:18:29 2014 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 src/java/org/apache/cassandra/db/Keyspace.java  |  4 ++--
 .../cassandra/service/SnapshotVerbHandler.java  |  4 +++-
 .../cassandra/service/StorageService.java       | 23 ++++++++++----------
 4 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a161f088/CHANGES.txt
----------------------------------------------------------------------


[3/6] git commit: Allow deleting snapshots from dropped keyspaces patch by Lyuben Todorov; reviewed by Nick Bailey for CASSANDRA-6281

Posted by jb...@apache.org.
Allow deleting snapshots from dropped keyspaces
patch by Lyuben Todorov; reviewed by Nick Bailey for CASSANDRA-6281


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6b6139cc
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6b6139cc
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6b6139cc

Branch: refs/heads/trunk
Commit: 6b6139cc8bf903f76dfc422d1f45a800a84b9000
Parents: c843b6b
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Mar 21 13:17:33 2014 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Fri Mar 21 13:17:33 2014 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 src/java/org/apache/cassandra/db/Keyspace.java  |  4 ++--
 .../cassandra/service/SnapshotVerbHandler.java  |  4 +++-
 .../cassandra/service/StorageService.java       | 23 ++++++++++----------
 4 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index c5f2666..c89ae51 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.7
+ * Allow deleting snapshots from dropped keyspaces (CASSANDRA-6821)
  * Add uuid() function (CASSANDRA-6473)
  * Omit tombstones from schema digests (CASSANDRA-6862)
  * Include correct consistencyLevel in LWT timeout (CASSANDRA-6884)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/src/java/org/apache/cassandra/db/Keyspace.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Keyspace.java b/src/java/org/apache/cassandra/db/Keyspace.java
index f5369f9..714956a 100644
--- a/src/java/org/apache/cassandra/db/Keyspace.java
+++ b/src/java/org/apache/cassandra/db/Keyspace.java
@@ -237,9 +237,9 @@ public class Keyspace
      * @param snapshotName the user supplied snapshot name. It empty or null,
      *                     all the snapshots will be cleaned
      */
-    public void clearSnapshot(String snapshotName)
+    public static void clearSnapshot(String snapshotName, String keyspace)
     {
-        List<File> snapshotDirs = Directories.getKSChildDirectories(getName());
+        List<File> snapshotDirs = Directories.getKSChildDirectories(keyspace);
         Directories.clearSnapshot(snapshotName, snapshotDirs);
     }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java b/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
index 2d393cf..a997533 100644
--- a/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
+++ b/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java
@@ -35,7 +35,9 @@ public class SnapshotVerbHandler implements IVerbHandler<SnapshotCommand>
     {
         SnapshotCommand command = message.payload;
         if (command.clear_snapshot)
-            Keyspace.open(command.keyspace).clearSnapshot(command.snapshot_name);
+        {
+            Keyspace.clearSnapshot(command.snapshot_name, command.keyspace);
+        }
         else
             Keyspace.open(command.keyspace).getColumnFamilyStore(command.column_family).snapshot(command.snapshot_name);
         logger.debug("Enqueuing response to snapshot request {} to {}", command.snapshot_name, message.from);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b6139cc/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 b66873c..42a58b0 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2294,21 +2294,20 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         if(tag == null)
             tag = "";
 
-        Iterable<Keyspace> keyspaces;
-        if (keyspaceNames.length == 0)
-        {
-            keyspaces = Keyspace.all();
-        }
-        else
+        Set<String> keyspaces = new HashSet<>();
+        for (String dataDir : DatabaseDescriptor.getAllDataFileLocations())
         {
-            ArrayList<Keyspace> tempKeyspaces = new ArrayList<Keyspace>(keyspaceNames.length);
-            for(String keyspaceName : keyspaceNames)
-                tempKeyspaces.add(getValidKeyspace(keyspaceName));
-            keyspaces = tempKeyspaces;
+            for(String keyspaceDir : new File(dataDir).list())
+            {
+                // Only add a ks if it has been specified as a param, assuming params were actually provided.
+                if (keyspaceNames.length > 0 && !Arrays.asList(keyspaceNames).contains(keyspaceDir))
+                    continue;
+                keyspaces.add(keyspaceDir);
+            }
         }
 
-        for (Keyspace keyspace : keyspaces)
-            keyspace.clearSnapshot(tag);
+        for (String keyspace : keyspaces)
+            Keyspace.clearSnapshot(tag, keyspace);
 
         if (logger.isDebugEnabled())
             logger.debug("Cleared out snapshot directories");