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();
+ }
}
/**