You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yu...@apache.org on 2015/01/15 18:03:00 UTC

[1/3] cassandra git commit: Shutdown CommitLog executor

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 d406bab50 -> a6e953c8c
  refs/heads/trunk 076b5bdd1 -> 0c0891ac6


Shutdown CommitLog executor

This also reverts previous patch for CASSANDRA-8281
patch by Benjamin Lerer; reviewed by yukim for CASSANDRA-8281


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

Branch: refs/heads/cassandra-2.1
Commit: a6e953c8c71caa1724d15dc31069aa073a9fe9ee
Parents: d406bab
Author: Benjamin Lerer <b_...@hotmail.com>
Authored: Thu Jan 15 10:22:19 2015 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Thu Jan 15 10:22:19 2015 -0600

----------------------------------------------------------------------
 .../apache/cassandra/io/sstable/CQLSSTableWriter.java  | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a6e953c8/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
index a42c480..85e54ab 100644
--- a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
@@ -34,6 +34,7 @@ import org.apache.cassandra.cql3.statements.*;
 import org.apache.cassandra.cql3.*;
 import org.apache.cassandra.config.*;
 import org.apache.cassandra.db.*;
+import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.db.composites.Composite;
 import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.dht.IPartitioner;
@@ -78,8 +79,8 @@ public class CQLSSTableWriter implements Closeable
 {
     static
     {
-        // The CQLSSTableWriter must always be used in client mode.
-        Config.setClientMode(true);
+        // The Keyspace need to be initialized before we can call Keyspace.open
+        Keyspace.setInitialized();
     }
 
     private final AbstractSSTableSimpleWriter writer;
@@ -269,6 +270,14 @@ public class CQLSSTableWriter implements Closeable
     public void close() throws IOException
     {
         writer.close();
+        try
+        {
+            CommitLog.instance.shutdownBlocking();
+        }
+        catch (InterruptedException e)
+        {
+            Thread.currentThread().interrupt();
+        }
     }
 
     /**


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

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

Conflicts:
	src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java


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

Branch: refs/heads/trunk
Commit: 0c0891ac65b395610752b98abd21343d1b2902a8
Parents: 076b5bd a6e953c
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Jan 15 11:01:00 2015 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Thu Jan 15 11:01:00 2015 -0600

----------------------------------------------------------------------
 .../io/sstable/AbstractSSTableSimpleWriter.java | 16 +++++----
 .../cassandra/io/sstable/CQLSSTableWriter.java  | 34 ++++++++++++++------
 .../io/sstable/SSTableSimpleUnsortedWriter.java | 22 +++++++------
 .../cassandra/db/ColumnFamilyStoreTest.java     |  2 +-
 4 files changed, 49 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0c0891ac/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java
index 2854308,67d160d..988923e
--- a/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java
@@@ -56,20 -53,21 +56,25 @@@ public abstract class AbstractSSTableSi
          DatabaseDescriptor.setPartitioner(partitioner);
      }
  
 +    protected void setSSTableFormatType(SSTableFormat.Type type)
 +    {
 +        this.formatType = type;
 +    }
 +
      protected SSTableWriter getWriter()
      {
-         return SSTableWriter.create(Descriptor.fromFilename(makeFilename(directory, metadata.ksName, metadata.cfName, formatType)), 0, ActiveRepairService.UNREPAIRED_SSTABLE);
 -        return new SSTableWriter(
 -            makeFilename(directory, metadata.ksName, metadata.cfName),
 -            0, // We don't care about the bloom filter
 -            ActiveRepairService.UNREPAIRED_SSTABLE,
 -            metadata,
 -            DatabaseDescriptor.getPartitioner(),
 -            new MetadataCollector(metadata.comparator));
++        return SSTableWriter.create(createDescriptor(directory, metadata.ksName, metadata.cfName, formatType), 0, ActiveRepairService.UNREPAIRED_SSTABLE);
      }
  
--    // find available generation and pick up filename from that
-     protected static String makeFilename(File directory, final String keyspace, final String columnFamily, final SSTableFormat.Type fmt)
 -    protected static String makeFilename(File directory, final String keyspace, final String columnFamily)
++    protected static Descriptor createDescriptor(File directory, final String keyspace, final String columnFamily, final SSTableFormat.Type fmt)
      {
--        final Set<Descriptor> existing = new HashSet<Descriptor>();
++        int maxGen = getNextGeneration(directory, columnFamily);
++        return new Descriptor(directory, keyspace, columnFamily, maxGen + 1, Descriptor.Type.TEMP, fmt);
++    }
++
++    private static int getNextGeneration(File directory, final String columnFamily)
++    {
++        final Set<Descriptor> existing = new HashSet<>();
          directory.list(new FilenameFilter()
          {
              public boolean accept(File dir, String name)
@@@ -93,8 -91,8 +98,7 @@@
                  maxGen = generation.getAndIncrement();
              }
          }
--
-         return new Descriptor(directory, keyspace, columnFamily, maxGen + 1, Descriptor.Type.TEMP, fmt).filenameFor(Component.DATA);
 -        return new Descriptor(directory, keyspace, columnFamily, maxGen + 1, Descriptor.Type.TEMP).filenameFor(Component.DATA);
++        return maxGen;
      }
  
      /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0c0891ac/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
index ec590f3,85e54ab..a019d41
--- a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
@@@ -21,19 -21,20 +21,22 @@@ import java.io.Closeable
  import java.io.File;
  import java.io.IOException;
  import java.nio.ByteBuffer;
--import java.util.Arrays;
--import java.util.ArrayList;
--import java.util.Collections;
--import java.util.List;
--import java.util.Map;
++import java.util.*;
  
  import com.google.common.collect.ImmutableMap;
--import com.google.common.collect.Iterables;
  
--import org.apache.cassandra.cql3.statements.*;
++import org.apache.cassandra.config.CFMetaData;
++import org.apache.cassandra.config.KSMetaData;
++import org.apache.cassandra.config.Schema;
  import org.apache.cassandra.cql3.*;
--import org.apache.cassandra.config.*;
--import org.apache.cassandra.db.*;
++import org.apache.cassandra.cql3.statements.CreateTableStatement;
++import org.apache.cassandra.cql3.statements.ParsedStatement;
++import org.apache.cassandra.cql3.statements.UpdateStatement;
++import org.apache.cassandra.db.ArrayBackedSortedColumns;
++import org.apache.cassandra.db.Cell;
++import org.apache.cassandra.db.ColumnFamily;
++import org.apache.cassandra.db.Keyspace;
+ import org.apache.cassandra.db.commitlog.CommitLog;
  import org.apache.cassandra.db.composites.Composite;
  import org.apache.cassandra.db.marshal.AbstractType;
  import org.apache.cassandra.dht.IPartitioner;
@@@ -77,6 -77,12 +80,11 @@@ import org.apache.cassandra.utils.Pair
   */
  public class CQLSSTableWriter implements Closeable
  {
+     static
+     {
 -        // The Keyspace need to be initialized before we can call Keyspace.open
+         Keyspace.setInitialized();
+     }
+ 
      private final AbstractSSTableSimpleWriter writer;
      private final UpdateStatement insert;
      private final List<ColumnSpecification> boundNames;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0c0891ac/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
index 2dcbe3d,3cfdc7b..4c2e409
--- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
@@@ -205,9 -202,9 +205,10 @@@ public class SSTableSimpleUnsortedWrite
          public void run()
          {
              SSTableWriter writer = null;
--            try
++
++            while (true)
              {
--                while (true)
++                try
                  {
                      Buffer b = writeQueue.take();
                      if (b == SENTINEL)
@@@ -218,14 -215,14 +219,17 @@@
                          writer.append(entry.getKey(), entry.getValue());
                      writer.close();
                  }
++                catch (Throwable e)
++                {
++                    JVMStabilityInspector.inspectThrowable(e);
++                    if (writer != null)
++                        writer.abort();
++                    // Keep only the first exception
++                    if (exception == null)
++                      exception = e;
++                }
              }
--            catch (Throwable e)
--            {
--                JVMStabilityInspector.inspectThrowable(e);
--                if (writer != null)
--                    writer.abort();
--                exception = e;
--            }
++
          }
      }
  }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0c0891ac/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
index ad8646b,2732be5..479bb16
--- a/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
+++ b/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
@@@ -1778,12 -1737,12 +1778,12 @@@ public class ColumnFamilyStoreTes
              {
                  MetadataCollector collector = new MetadataCollector(cfmeta.comparator);
                  collector.addAncestor(sstable1.descriptor.generation); // add ancestor from previously written sstable
-                 return SSTableWriter.create(Descriptor.fromFilename(makeFilename(directory, metadata.ksName, metadata.cfName, DatabaseDescriptor.getSSTableFormat())),
 -                return new SSTableWriter(makeFilename(directory, metadata.ksName, metadata.cfName),
 -                                         0,
 -                                         ActiveRepairService.UNREPAIRED_SSTABLE,
 -                                         metadata,
 -                                         StorageService.getPartitioner(),
 -                                         collector);
++                return SSTableWriter.create(createDescriptor(directory, metadata.ksName, metadata.cfName, DatabaseDescriptor.getSSTableFormat()),
 +                        0L,
 +                        ActiveRepairService.UNREPAIRED_SSTABLE,
 +                        metadata,
 +                        DatabaseDescriptor.getPartitioner(),
 +                        collector);
              }
          };
          writer.newRow(key);


[2/3] cassandra git commit: Shutdown CommitLog executor

Posted by yu...@apache.org.
Shutdown CommitLog executor

This also reverts previous patch for CASSANDRA-8281
patch by Benjamin Lerer; reviewed by yukim for CASSANDRA-8281


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

Branch: refs/heads/trunk
Commit: a6e953c8c71caa1724d15dc31069aa073a9fe9ee
Parents: d406bab
Author: Benjamin Lerer <b_...@hotmail.com>
Authored: Thu Jan 15 10:22:19 2015 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Thu Jan 15 10:22:19 2015 -0600

----------------------------------------------------------------------
 .../apache/cassandra/io/sstable/CQLSSTableWriter.java  | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a6e953c8/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
index a42c480..85e54ab 100644
--- a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
@@ -34,6 +34,7 @@ import org.apache.cassandra.cql3.statements.*;
 import org.apache.cassandra.cql3.*;
 import org.apache.cassandra.config.*;
 import org.apache.cassandra.db.*;
+import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.db.composites.Composite;
 import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.dht.IPartitioner;
@@ -78,8 +79,8 @@ public class CQLSSTableWriter implements Closeable
 {
     static
     {
-        // The CQLSSTableWriter must always be used in client mode.
-        Config.setClientMode(true);
+        // The Keyspace need to be initialized before we can call Keyspace.open
+        Keyspace.setInitialized();
     }
 
     private final AbstractSSTableSimpleWriter writer;
@@ -269,6 +270,14 @@ public class CQLSSTableWriter implements Closeable
     public void close() throws IOException
     {
         writer.close();
+        try
+        {
+            CommitLog.instance.shutdownBlocking();
+        }
+        catch (InterruptedException e)
+        {
+            Thread.currentThread().interrupt();
+        }
     }
 
     /**