You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2014/09/26 09:11:01 UTC

[1/2] git commit: Support many sstables to be passed into sstablerepairedset

Repository: cassandra
Updated Branches:
  refs/heads/trunk 380273826 -> 0485a31c0


Support many sstables to be passed into sstablerepairedset

Patch by carlyeks; reviewed by marcuse for CASSANDRA-7995


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

Branch: refs/heads/trunk
Commit: 2a12e057464fff44d2d229fe2dc7bf5bcd6d7fc9
Parents: c65ef9a
Author: Carl Yeksigian <ca...@yeksigian.com>
Authored: Tue Sep 23 16:59:01 2014 -0400
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Fri Sep 26 09:08:16 2014 +0200

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../tools/SSTableRepairedAtSetter.java          | 67 ++++++++++----------
 2 files changed, 34 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2a12e057/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ce0e76a..0080b25 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.1
+ * Make sstablerepairedset take a list of files (CASSANDRA-7995)
  * (cqlsh) Tab completeion for indexes on map keys (CASSANDRA-7972)
  * (cqlsh) Fix UDT field selection in select clause (CASSANDRA-7891)
  * Fix resource leak in event of corrupt sstable

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2a12e057/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java b/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java
index 4dec32c..b37d3b4 100644
--- a/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java
+++ b/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java
@@ -17,25 +17,16 @@
  */
 package org.apache.cassandra.tools;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintStream;
+import java.io.*;
+import java.nio.charset.Charset;
 import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.nio.file.attribute.FileTime;
-import java.util.EnumSet;
-import java.util.Map;
-import java.util.Set;
+import java.util.Arrays;
+import java.util.List;
 
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.db.ColumnFamilyStore;
-import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.io.sstable.Component;
 import org.apache.cassandra.io.sstable.Descriptor;
-import org.apache.cassandra.io.sstable.metadata.CompactionMetadata;
-import org.apache.cassandra.io.sstable.metadata.MetadataComponent;
-import org.apache.cassandra.io.sstable.metadata.MetadataType;
-import org.apache.cassandra.io.sstable.metadata.StatsMetadata;
-import org.apache.cassandra.io.sstable.metadata.ValidationMetadata;
 import org.apache.cassandra.service.ActiveRepairService;
 
 /**
@@ -45,7 +36,7 @@ import org.apache.cassandra.service.ActiveRepairService;
  *
  * If you know you ran repair 2 weeks ago, you can do something like
  *
- * for x in $(find /var/lib/cassandra/data/.../ -iname "*Data.db*" -mtime +14); do sstablerepairset --is-repaired $x; done
+ * sstablerepairset --is-repaired -f <(find /var/lib/cassandra/data/.../ -iname "*Data.db*" -mtime +14)
  *
  */
 public class SSTableRepairedAtSetter
@@ -53,47 +44,55 @@ public class SSTableRepairedAtSetter
     /**
      * @param args a list of sstables whose metadata we are changing
      */
-    public static void main(String[] args) throws IOException
+    public static void main(final String[] args) throws IOException
     {
         PrintStream out = System.out;
         if (args.length == 0)
         {
             out.println("This command should be run with Cassandra stopped!");
-            out.println("Usage: sstablerepairedset [--is-repaired | --is-unrepaired] <sstable>");
+            out.println("Usage: sstablerepairedset [--is-repaired | --is-unrepaired] [-f <sstable-list> | <sstables>]");
             System.exit(1);
         }
 
-        for (String s : args)
-            System.out.println(s);
-
-        if (args.length != 3 || !args[0].equals("--really-set") || (!args[1].equals("--is-repaired") && !args[1].equals("--is-unrepaired")))
+        if (args.length < 3 || !args[0].equals("--really-set") || (!args[1].equals("--is-repaired") && !args[1].equals("--is-unrepaired")))
         {
             out.println("This command should be run with Cassandra stopped, otherwise you will get very strange behavior");
             out.println("Verify that Cassandra is not running and then execute the command like this:");
-            out.println("Usage: sstablelevelreset --really-set [--is-repaired | --is-unrepaired] <sstable>");
+            out.println("Usage: sstablelevelreset --really-set [--is-repaired | --is-unrepaired] [-f <sstable-list> | <sstables>]");
             System.exit(1);
         }
 
         boolean setIsRepaired = args[1].equals("--is-repaired");
 
-        String fname = args[2];
-        Descriptor descriptor = Descriptor.fromFilename(fname);
-        if (descriptor.version.hasRepairedAt)
+        List<String> fileNames;
+        if (args[2].equals("-f"))
+        {
+            fileNames = Files.readAllLines(Paths.get(args[3]), Charset.defaultCharset());
+        }
+        else
         {
-            if (setIsRepaired)
+            fileNames = Arrays.asList(args).subList(2, args.length);
+        }
+
+        for (String fname: fileNames)
+        {
+            Descriptor descriptor = Descriptor.fromFilename(fname);
+            if (descriptor.version.hasRepairedAt)
             {
-                FileTime f = Files.getLastModifiedTime(new File(descriptor.filenameFor(Component.DATA)).toPath());
-                descriptor.getMetadataSerializer().mutateRepairedAt(descriptor, f.toMillis());
+                if (setIsRepaired)
+                {
+                    FileTime f = Files.getLastModifiedTime(new File(descriptor.filenameFor(Component.DATA)).toPath());
+                    descriptor.getMetadataSerializer().mutateRepairedAt(descriptor, f.toMillis());
+                }
+                else
+                {
+                    descriptor.getMetadataSerializer().mutateRepairedAt(descriptor, ActiveRepairService.UNREPAIRED_SSTABLE);
+                }
             }
             else
             {
-                descriptor.getMetadataSerializer().mutateRepairedAt(descriptor, ActiveRepairService.UNREPAIRED_SSTABLE);
+                System.err.println("SSTable " + fname + " does not have repaired property, run upgradesstables");
             }
         }
-        else
-        {
-            out.println("SSTable "+fname+" does not have repaired property, run upgradesstables");
-        }
-
     }
 }


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

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

Conflicts:
	src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java


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

Branch: refs/heads/trunk
Commit: 0485a31c0f4352cc398d17e657b78f57b129ae4e
Parents: 3802738 2a12e05
Author: Marcus Eriksson <ma...@apache.org>
Authored: Fri Sep 26 09:09:34 2014 +0200
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Fri Sep 26 09:09:34 2014 +0200

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../tools/SSTableRepairedAtSetter.java          | 56 ++++++++++++--------
 2 files changed, 34 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0485a31c/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 30a87a5,0080b25..7bf1288
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,32 -1,5 +1,33 @@@
 +3.0
 + * Remove cassandra-cli (CASSANDRA-7920)
 + * Optimize java source-based UDF invocation (CASSANDRA-7924)
 + * Accept dollar quoted strings in CQL (CASSANDRA-7769)
 + * Make assassinate a first class command (CASSANDRA-7935)
 + * Support IN clause on any clustering column (CASSANDRA-4762)
 + * Improve compaction logging (CASSANDRA-7818)
 + * Remove YamlFileNetworkTopologySnitch (CASSANDRA-7917)
 + * Support Java source code for user-defined functions (CASSANDRA-7562)
 + * Require arg types to disambiguate UDF drops (CASSANDRA-7812)
 + * Do anticompaction in groups (CASSANDRA-6851)
 + * Verify that UDF class methods are static (CASSANDRA-7781)
 + * Support pure user-defined functions (CASSANDRA-7395, 7740)
 + * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416)
 + * Move sstable RandomAccessReader to nio2, which allows using the
 +   FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050)
 + * Remove CQL2 (CASSANDRA-5918)
 + * Add Thrift get_multi_slice call (CASSANDRA-6757)
 + * Optimize fetching multiple cells by name (CASSANDRA-6933)
 + * Allow compilation in java 8 (CASSANDRA-7028)
 + * Make incremental repair default (CASSANDRA-7250)
 + * Enable code coverage thru JaCoCo (CASSANDRA-7226)
 + * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369) 
 + * Shorten SSTable path (CASSANDRA-6962)
 + * Use unsafe mutations for most unit tests (CASSANDRA-6969)
 + * Fix race condition during calculation of pending ranges (CASSANDRA-7390)
 +
 +
  2.1.1
+  * Make sstablerepairedset take a list of files (CASSANDRA-7995)
   * (cqlsh) Tab completeion for indexes on map keys (CASSANDRA-7972)
   * (cqlsh) Fix UDT field selection in select clause (CASSANDRA-7891)
   * Fix resource leak in event of corrupt sstable