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 2016/12/14 00:45:42 UTC
[03/19] cassandra git commit: Temporarily fix bug that creates commit
log when running offline tools
Temporarily fix bug that creates commit log when running offline tools
patch by yukim; reviewed by thobbs for CASSANDRA-8616
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/66f1aaf8
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/66f1aaf8
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/66f1aaf8
Branch: refs/heads/trunk
Commit: 66f1aaf88d3cde5c52b13d71d3326da5eda16fb1
Parents: fb29400
Author: Yuki Morishita <yu...@apache.org>
Authored: Thu Feb 11 19:06:27 2016 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Dec 13 15:51:37 2016 -0800
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/config/DatabaseDescriptor.java | 12 +++++++
.../apache/cassandra/db/ColumnFamilyStore.java | 10 ++++--
.../cassandra/db/compaction/CompactionTask.java | 22 +++++++-----
.../apache/cassandra/db/lifecycle/Tracker.java | 36 ++++++++++++--------
.../io/sstable/format/SSTableReader.java | 8 +++--
.../cassandra/service/CassandraDaemon.java | 1 +
.../service/EmbeddedCassandraService.java | 2 ++
.../io/sstable/CQLSSTableWriterLongTest.java | 2 ++
.../unit/org/apache/cassandra/SchemaLoader.java | 1 +
.../config/DatabaseDescriptorTest.java | 6 ++++
.../apache/cassandra/db/CounterCellTest.java | 3 ++
.../org/apache/cassandra/db/NativeCellTest.java | 3 ++
.../apache/cassandra/db/SystemKeyspaceTest.java | 2 ++
.../db/context/CounterContextTest.java | 8 +++++
.../db/lifecycle/LifecycleTransactionTest.java | 5 ++-
.../cassandra/db/lifecycle/TrackerTest.java | 7 ++--
.../cassandra/dht/StreamStateStoreTest.java | 7 ++++
.../cassandra/gms/FailureDetectorTest.java | 2 ++
.../org/apache/cassandra/gms/GossiperTest.java | 5 +++
.../io/sstable/CQLSSTableWriterTest.java | 2 ++
.../cassandra/locator/CloudstackSnitchTest.java | 2 ++
.../apache/cassandra/locator/EC2SnitchTest.java | 2 ++
.../locator/GoogleCloudSnitchTest.java | 2 ++
.../service/StorageServiceServerTest.java | 1 +
25 files changed, 118 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f02350d..8cff097 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.2.9
+ * Temporarily fix bug that creates commit log when running offline tools (CASSANDRA-8616)
* Reduce granuality of OpOrder.Group during index build (CASSANDRA-12796)
* Test bind parameters and unset parameters in InsertUpdateIfConditionTest (CASSANDRA-12980)
* Do not specify local address on outgoing connection when listen_on_broadcast_address is set (CASSANDRA-12673)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index a3fb79b..35debd0 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -102,6 +102,18 @@ public class DatabaseDescriptor
private static Comparator<InetAddress> localComparator;
private static boolean hasLoggedConfig;
+ private static boolean daemonInitialized;
+
+ public static boolean isDaemonInitialized()
+ {
+ return daemonInitialized;
+ }
+
+ public static void setDaemonInitialized()
+ {
+ daemonInitialized = true;
+ }
+
public static void forceStaticInitialization() {}
static
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/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 c6b69dc..4bc46d0 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -388,9 +388,13 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
logger.info("Initializing {}.{}", keyspace.getName(), name);
- // scan for sstables corresponding to this cf and load them
- data = new Tracker(this, loadSSTables);
+ // Create Memtable only on online
+ Memtable initialMemtable = null;
+ if (DatabaseDescriptor.isDaemonInitialized())
+ initialMemtable = new Memtable(new AtomicReference<>(CommitLog.instance.getContext()), this);
+ data = new Tracker(initialMemtable, loadSSTables);
+ // scan for sstables corresponding to this cf and load them
if (data.loadsstables)
{
Directories.SSTableLister sstableFiles = directories.sstableLister().skipTemporary(true);
@@ -2754,7 +2758,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
{
public Void call()
{
- cfs.data.reset();
+ cfs.data.reset(new Memtable(new AtomicReference<>(ReplayPosition.NONE), cfs));
cfs.getCompactionStrategy().shutdown();
cfs.getCompactionStrategy().startup();
return null;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/db/compaction/CompactionTask.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java
index 575c326..20d3dc0 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java
@@ -127,7 +127,7 @@ public class CompactionTask extends AbstractCompactionTask
}
});
- UUID taskId = SystemKeyspace.startCompaction(cfs, transaction.originals());
+ UUID taskId = offline ? null : SystemKeyspace.startCompaction(cfs, transaction.originals());
// new sstables from flush can be added during a compaction, but only the compaction can remove them,
// so in our single-threaded compaction world this is a valid way of determining if we're compacting
@@ -218,16 +218,20 @@ public class CompactionTask extends AbstractCompactionTask
for (SSTableReader reader : newSStables)
newSSTableNames.append(reader.descriptor.baseFilename()).append(",");
- double mbps = dTime > 0 ? (double) endsize / (1024 * 1024) / ((double) dTime / 1000) : 0;
- long totalSourceRows = 0;
- String mergeSummary = updateCompactionHistory(cfs.keyspace.getName(), cfs.getColumnFamilyName(), ci, startsize, endsize);
- logger.debug(String.format("Compacted (%s) %d sstables to [%s] to level=%d. %,d bytes to %,d (~%d%% of original) in %,dms = %fMB/s. %,d total partitions merged to %,d. Partition merge counts were {%s}",
- taskIdLoggerMsg, transaction.originals().size(), newSSTableNames.toString(), getLevel(), startsize, endsize, (int) (ratio * 100), dTime, mbps, totalSourceRows, totalKeysWritten, mergeSummary));
- logger.trace(String.format("CF Total Bytes Compacted: %,d", CompactionTask.addToTotalBytesCompacted(endsize)));
- logger.trace("Actual #keys: {}, Estimated #keys:{}, Err%: {}", totalKeysWritten, estimatedKeys, ((double)(totalKeysWritten - estimatedKeys)/totalKeysWritten));
-
if (offline)
+ {
Refs.release(Refs.selfRefs(newSStables));
+ }
+ else
+ {
+ double mbps = dTime > 0 ? (double) endsize / (1024 * 1024) / ((double) dTime / 1000) : 0;
+ long totalSourceRows = 0;
+ String mergeSummary = updateCompactionHistory(cfs.keyspace.getName(), cfs.getColumnFamilyName(), ci, startsize, endsize);
+ logger.debug(String.format("Compacted (%s) %d sstables to [%s] to level=%d. %,d bytes to %,d (~%d%% of original) in %,dms = %fMB/s. %,d total partitions merged to %,d. Partition merge counts were {%s}",
+ taskIdLoggerMsg, transaction.originals().size(), newSSTableNames.toString(), getLevel(), startsize, endsize, (int) (ratio * 100), dTime, mbps, totalSourceRows, totalKeysWritten, mergeSummary));
+ logger.trace(String.format("CF Total Bytes Compacted: %,d", CompactionTask.addToTotalBytesCompacted(endsize)));
+ logger.trace("Actual #keys: {}, Estimated #keys:{}, Err%: {}", totalKeysWritten, estimatedKeys, ((double) (totalKeysWritten - estimatedKeys) / totalKeysWritten));
+ }
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/db/lifecycle/Tracker.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/lifecycle/Tracker.java b/src/java/org/apache/cassandra/db/lifecycle/Tracker.java
index 5d5701f..e77ef78 100644
--- a/src/java/org/apache/cassandra/db/lifecycle/Tracker.java
+++ b/src/java/org/apache/cassandra/db/lifecycle/Tracker.java
@@ -31,7 +31,6 @@ import com.google.common.collect.*;
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.Directories;
import org.apache.cassandra.db.Memtable;
-import org.apache.cassandra.db.commitlog.CommitLog;
import org.apache.cassandra.db.commitlog.ReplayPosition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,6 +51,7 @@ import static com.google.common.base.Predicates.not;
import static com.google.common.collect.ImmutableSet.copyOf;
import static com.google.common.collect.Iterables.filter;
import static java.util.Collections.singleton;
+import static java.util.Collections.singletonList;
import static org.apache.cassandra.db.lifecycle.Helpers.*;
import static org.apache.cassandra.db.lifecycle.View.permitCompacting;
import static org.apache.cassandra.db.lifecycle.View.updateCompacting;
@@ -61,21 +61,29 @@ import static org.apache.cassandra.utils.Throwables.merge;
import static org.apache.cassandra.utils.concurrent.Refs.release;
import static org.apache.cassandra.utils.concurrent.Refs.selfRefs;
+/**
+ * Tracker tracks live {@link View} of data store for a table.
+ */
public class Tracker
{
private static final Logger logger = LoggerFactory.getLogger(Tracker.class);
- public final Collection<INotificationConsumer> subscribers = new CopyOnWriteArrayList<>();
+ private final Collection<INotificationConsumer> subscribers = new CopyOnWriteArrayList<>();
+
public final ColumnFamilyStore cfstore;
final AtomicReference<View> view;
public final boolean loadsstables;
- public Tracker(ColumnFamilyStore cfstore, boolean loadsstables)
+ /**
+ * @param memtable Initial Memtable. Can be null.
+ * @param loadsstables true to indicate to load SSTables (TODO: remove as this is only accessed from 2i)
+ */
+ public Tracker(Memtable memtable, boolean loadsstables)
{
- this.cfstore = cfstore;
+ this.cfstore = memtable != null ? memtable.cfs : null;
this.view = new AtomicReference<>();
this.loadsstables = loadsstables;
- this.reset();
+ this.reset(memtable);
}
public LifecycleTransaction tryModify(SSTableReader sstable, OperationType operationType)
@@ -196,16 +204,14 @@ public class Tracker
/** (Re)initializes the tracker, purging all references. */
@VisibleForTesting
- public void reset()
+ public void reset(Memtable memtable)
{
- view.set(new View(
- !isDummy() ? ImmutableList.of(new Memtable(new AtomicReference<>(CommitLog.instance.getContext()), cfstore))
- : ImmutableList.<Memtable>of(),
- ImmutableList.<Memtable>of(),
- Collections.<SSTableReader, SSTableReader>emptyMap(),
- Collections.<SSTableReader>emptySet(),
- Collections.<SSTableReader>emptySet(),
- SSTableIntervalTree.empty()));
+ view.set(new View(memtable != null ? singletonList(memtable) : Collections.<Memtable>emptyList(),
+ Collections.<Memtable>emptyList(),
+ Collections.<SSTableReader, SSTableReader>emptyMap(),
+ Collections.<SSTableReader>emptySet(),
+ Collections.<SSTableReader>emptySet(),
+ SSTableIntervalTree.empty()));
}
public Throwable dropSSTablesIfInvalid(Throwable accumulate)
@@ -473,7 +479,7 @@ public class Tracker
public boolean isDummy()
{
- return cfstore == null;
+ return cfstore == null || !DatabaseDescriptor.isDaemonInitialized();
}
public void subscribe(INotificationConsumer consumer)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
index fddf058..ba060d4 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
@@ -2246,7 +2246,7 @@ public abstract class SSTableReader extends SSTable implements SelfRefCounted<SS
// Don't track read rates for tables in the system keyspace and don't bother trying to load or persist
// the read meter when in client mode.
- if (SystemKeyspace.NAME.equals(desc.ksname))
+ if (SystemKeyspace.NAME.equals(desc.ksname) || !DatabaseDescriptor.isDaemonInitialized())
{
readMeter = null;
readMeterSyncFuture = null;
@@ -2272,9 +2272,11 @@ public abstract class SSTableReader extends SSTable implements SelfRefCounted<SS
{
lookup.remove(desc);
if (readMeterSyncFuture != null)
+ {
readMeterSyncFuture.cancel(true);
- if (isCompacted.get())
- SystemKeyspace.clearSSTableReadMeter(desc.ksname, desc.cfname, desc.generation);
+ if (isCompacted.get())
+ SystemKeyspace.clearSSTableReadMeter(desc.ksname, desc.cfname, desc.generation);
+ }
// don't ideally want to dropPageCache for the file until all instances have been released
CLibrary.trySkipCache(desc.filenameFor(Component.DATA), 0, 0);
CLibrary.trySkipCache(desc.filenameFor(Component.PRIMARY_INDEX), 0, 0);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index cf5f3c2..35e990f 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -505,6 +505,7 @@ public class CassandraDaemon
try
{
DatabaseDescriptor.forceStaticInitialization();
+ DatabaseDescriptor.setDaemonInitialized();
}
catch (ExceptionInInitializerError e)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java b/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java
index 659d851..6c154cd 100644
--- a/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java
+++ b/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java
@@ -19,6 +19,7 @@ package org.apache.cassandra.service;
import java.io.IOException;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.service.CassandraDaemon;
/**
@@ -49,6 +50,7 @@ public class EmbeddedCassandraService
public void start() throws IOException
{
cassandraDaemon = new CassandraDaemon();
+ DatabaseDescriptor.setDaemonInitialized();
cassandraDaemon.init(null);
cassandraDaemon.start();
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java b/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java
index fcec40d..ee719d1 100644
--- a/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java
+++ b/test/long/org/apache/cassandra/io/sstable/CQLSSTableWriterLongTest.java
@@ -30,6 +30,7 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.config.Config;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.config.Schema;
import org.apache.cassandra.db.Keyspace;
import org.apache.cassandra.service.StorageService;
@@ -39,6 +40,7 @@ public class CQLSSTableWriterLongTest
@BeforeClass
public static void setup() throws Exception
{
+ DatabaseDescriptor.setDaemonInitialized();
SchemaLoader.cleanupAndLeaveDirs();
Keyspace.setInitialized();
StorageService.instance.initServer();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/SchemaLoader.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/SchemaLoader.java b/test/unit/org/apache/cassandra/SchemaLoader.java
index a7cf7b4..2048f74 100644
--- a/test/unit/org/apache/cassandra/SchemaLoader.java
+++ b/test/unit/org/apache/cassandra/SchemaLoader.java
@@ -90,6 +90,7 @@ public class SchemaLoader
}
});
+ DatabaseDescriptor.setDaemonInitialized();
Keyspace.setInitialized();
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java b/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java
index 5f231c3..7409535 100644
--- a/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java
+++ b/test/unit/org/apache/cassandra/config/DatabaseDescriptorTest.java
@@ -47,6 +47,12 @@ import static org.junit.Assert.assertNull;
@RunWith(OrderedJUnit4ClassRunner.class)
public class DatabaseDescriptorTest
{
+ @BeforeClass
+ public static void setupDatabaseDescriptor()
+ {
+ DatabaseDescriptor.setDaemonInitialized();
+ }
+
@Test
public void testCFMetaDataSerialization() throws ConfigurationException, InvalidRequestException
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/CounterCellTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/CounterCellTest.java b/test/unit/org/apache/cassandra/db/CounterCellTest.java
index 8d75b9a..5d4b8a8 100644
--- a/test/unit/org/apache/cassandra/db/CounterCellTest.java
+++ b/test/unit/org/apache/cassandra/db/CounterCellTest.java
@@ -30,6 +30,7 @@ import org.junit.Assert;
import org.junit.Test;
import org.apache.cassandra.Util;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.composites.CellNameType;
import org.apache.cassandra.db.composites.SimpleDenseCellNameType;
import org.apache.cassandra.db.context.CounterContext;
@@ -57,6 +58,8 @@ public class CounterCellTest
countLength = 8; // size of long
stepLength = idLength + clockLength + countLength;
+ // TODO: CounterId accesses SystemKespace to get local host ID, so need to mark as daemon initialized
+ DatabaseDescriptor.setDaemonInitialized();
}
@Test
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/NativeCellTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/NativeCellTest.java b/test/unit/org/apache/cassandra/db/NativeCellTest.java
index 70b7b87..4145a91 100644
--- a/test/unit/org/apache/cassandra/db/NativeCellTest.java
+++ b/test/unit/org/apache/cassandra/db/NativeCellTest.java
@@ -32,6 +32,7 @@ import org.junit.Test;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.ColumnDefinition;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.cql3.ColumnIdentifier;
import org.apache.cassandra.db.composites.CellName;
import org.apache.cassandra.db.composites.CellNameType;
@@ -128,6 +129,8 @@ public class NativeCellTest
{
throw new AssertionError();
}
+ // TODO: CounterId accesses SystemKespace to get local host ID, so need to mark as daemon initialized
+ DatabaseDescriptor.setDaemonInitialized();
}
@Test
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java b/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java
index b8aa161..c3047b8 100644
--- a/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java
+++ b/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java
@@ -42,6 +42,8 @@ public class SystemKeyspaceTest
@BeforeClass
public static void prepSnapshotTracker()
{
+ DatabaseDescriptor.setDaemonInitialized();
+
if (FBUtilities.isWindows())
WindowsFailedSnapshotTracker.deleteOldSnapshots();
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/context/CounterContextTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/context/CounterContextTest.java b/test/unit/org/apache/cassandra/db/context/CounterContextTest.java
index a72d30d..4f587c6 100644
--- a/test/unit/org/apache/cassandra/db/context/CounterContextTest.java
+++ b/test/unit/org/apache/cassandra/db/context/CounterContextTest.java
@@ -22,9 +22,11 @@ package org.apache.cassandra.db.context;
import java.nio.ByteBuffer;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.apache.cassandra.Util;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.ClockAndCount;
import org.apache.cassandra.db.context.CounterContext.Relationship;
import org.apache.cassandra.utils.ByteBufferUtil;
@@ -48,6 +50,12 @@ public class CounterContextTest
private static final int countLength = 8;
private static final int stepLength = idLength + clockLength + countLength;
+ @BeforeClass
+ public static void setupDD()
+ {
+ DatabaseDescriptor.setDaemonInitialized();
+ }
+
@Test
public void testAllocate()
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java b/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java
index f13d1b7..737392e 100644
--- a/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java
+++ b/test/unit/org/apache/cassandra/db/lifecycle/LifecycleTransactionTest.java
@@ -20,6 +20,7 @@ package org.apache.cassandra.db.lifecycle;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
import org.junit.After;
import org.junit.Before;
@@ -30,6 +31,8 @@ import junit.framework.Assert;
import org.apache.cassandra.MockSchema;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.ColumnFamilyStore;
+import org.apache.cassandra.db.Memtable;
+import org.apache.cassandra.db.commitlog.ReplayPosition;
import org.apache.cassandra.db.compaction.OperationType;
import org.apache.cassandra.db.lifecycle.LifecycleTransaction.ReaderState;
import org.apache.cassandra.db.lifecycle.LifecycleTransaction.ReaderState.Action;
@@ -270,7 +273,7 @@ public class LifecycleTransactionTest extends AbstractTransactionalTest
private static Tracker tracker(ColumnFamilyStore cfs, List<SSTableReader> readers)
{
- Tracker tracker = new Tracker(cfs, false);
+ Tracker tracker = new Tracker(new Memtable(new AtomicReference<>(ReplayPosition.NONE), cfs), false);
tracker.addInitialSSTables(readers);
return tracker;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java b/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java
index adeb778..04b4e4a 100644
--- a/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java
+++ b/test/unit/org/apache/cassandra/db/lifecycle/TrackerTest.java
@@ -75,6 +75,7 @@ public class TrackerTest
@BeforeClass
public static void setUp()
{
+ DatabaseDescriptor.setDaemonInitialized();
MockSchema.cleanup();
}
@@ -82,7 +83,7 @@ public class TrackerTest
public void testTryModify()
{
ColumnFamilyStore cfs = MockSchema.newCFS();
- Tracker tracker = new Tracker(cfs, false);
+ Tracker tracker = new Tracker(null, false);
List<SSTableReader> readers = ImmutableList.of(MockSchema.sstable(0, true, cfs), MockSchema.sstable(1, cfs), MockSchema.sstable(2, cfs));
tracker.addInitialSSTables(copyOf(readers));
Assert.assertNull(tracker.tryModify(ImmutableList.of(MockSchema.sstable(0, cfs)), OperationType.COMPACTION));
@@ -146,7 +147,7 @@ public class TrackerTest
public void testAddInitialSSTables()
{
ColumnFamilyStore cfs = MockSchema.newCFS();
- Tracker tracker = new Tracker(cfs, false);
+ Tracker tracker = cfs.getTracker();
List<SSTableReader> readers = ImmutableList.of(MockSchema.sstable(0, 17, cfs),
MockSchema.sstable(1, 121, cfs),
MockSchema.sstable(2, 9, cfs));
@@ -163,7 +164,7 @@ public class TrackerTest
boolean backups = DatabaseDescriptor.isIncrementalBackupsEnabled();
DatabaseDescriptor.setIncrementalBackupsEnabled(false);
ColumnFamilyStore cfs = MockSchema.newCFS();
- Tracker tracker = new Tracker(cfs, false);
+ Tracker tracker = cfs.getTracker();
MockListener listener = new MockListener(false);
tracker.subscribe(listener);
List<SSTableReader> readers = ImmutableList.of(MockSchema.sstable(0, 17, cfs),
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java b/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java
index 86781d9..bdb654a 100644
--- a/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java
+++ b/test/unit/org/apache/cassandra/dht/StreamStateStoreTest.java
@@ -20,8 +20,10 @@ package org.apache.cassandra.dht;
import java.net.InetAddress;
import java.util.Collections;
+import org.junit.BeforeClass;
import org.junit.Test;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.streaming.DefaultConnectionFactory;
import org.apache.cassandra.streaming.StreamEvent;
import org.apache.cassandra.streaming.StreamSession;
@@ -32,6 +34,11 @@ import static org.junit.Assert.assertTrue;
public class StreamStateStoreTest
{
+ @BeforeClass
+ public static void initDD()
+ {
+ DatabaseDescriptor.setDaemonInitialized();
+ }
@Test
public void testUpdateAndQueryAvailableRanges()
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java b/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java
index 9325922..af099b0 100644
--- a/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java
+++ b/test/unit/org/apache/cassandra/gms/FailureDetectorTest.java
@@ -45,6 +45,8 @@ public class FailureDetectorTest
{
// slow unit tests can cause problems with FailureDetector's GC pause handling
System.setProperty("cassandra.max_local_pause_in_ms", "20000");
+
+ DatabaseDescriptor.setDaemonInitialized();
}
@Test
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/gms/GossiperTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/gms/GossiperTest.java b/test/unit/org/apache/cassandra/gms/GossiperTest.java
index ad07165..eb01305 100644
--- a/test/unit/org/apache/cassandra/gms/GossiperTest.java
+++ b/test/unit/org/apache/cassandra/gms/GossiperTest.java
@@ -33,6 +33,7 @@ import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.dht.IPartitioner;
import org.apache.cassandra.dht.RandomPartitioner;
import org.apache.cassandra.dht.Token;
@@ -44,6 +45,10 @@ import static org.junit.Assert.assertEquals;
public class GossiperTest
{
+ static
+ {
+ DatabaseDescriptor.setDaemonInitialized();
+ }
static final IPartitioner partitioner = new RandomPartitioner();
StorageService ss = StorageService.instance;
TokenMetadata tmd = StorageService.instance.getTokenMetadata();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java b/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java
index 8a14428..5e2fffe 100644
--- a/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java
@@ -34,6 +34,7 @@ import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.Config;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.config.Schema;
import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.cql3.UntypedResultSet;
@@ -52,6 +53,7 @@ public class CQLSSTableWriterTest
@BeforeClass
public static void setup() throws Exception
{
+ DatabaseDescriptor.setDaemonInitialized();
SchemaLoader.cleanupAndLeaveDirs();
Keyspace.setInitialized();
StorageService.instance.initServer();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java b/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java
index 90e63e0..bc5be46 100644
--- a/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java
+++ b/test/unit/org/apache/cassandra/locator/CloudstackSnitchTest.java
@@ -27,6 +27,7 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.gms.ApplicationState;
import org.apache.cassandra.gms.Gossiper;
@@ -43,6 +44,7 @@ public class CloudstackSnitchTest
@BeforeClass
public static void setup() throws Exception
{
+ DatabaseDescriptor.setDaemonInitialized();
SchemaLoader.mkdirs();
SchemaLoader.cleanup();
Keyspace.setInitialized();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java b/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java
index 56bbb77..32383d9 100644
--- a/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java
+++ b/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java
@@ -33,6 +33,7 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.Keyspace;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.gms.ApplicationState;
@@ -51,6 +52,7 @@ public class EC2SnitchTest
@BeforeClass
public static void setup() throws Exception
{
+ DatabaseDescriptor.setDaemonInitialized();
SchemaLoader.mkdirs();
SchemaLoader.cleanup();
Keyspace.setInitialized();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java b/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java
index 1521454..f2450f4 100644
--- a/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java
+++ b/test/unit/org/apache/cassandra/locator/GoogleCloudSnitchTest.java
@@ -31,6 +31,7 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.Keyspace;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.gms.ApplicationState;
@@ -47,6 +48,7 @@ public class GoogleCloudSnitchTest
@BeforeClass
public static void setup() throws Exception
{
+ DatabaseDescriptor.setDaemonInitialized();
SchemaLoader.mkdirs();
SchemaLoader.cleanup();
Keyspace.setInitialized();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/66f1aaf8/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
index 4481501..a693a23 100644
--- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
+++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
@@ -63,6 +63,7 @@ public class StorageServiceServerTest
@BeforeClass
public static void setUp() throws ConfigurationException
{
+ DatabaseDescriptor.setDaemonInitialized();
IEndpointSnitch snitch = new PropertyFileSnitch();
DatabaseDescriptor.setEndpointSnitch(snitch);
Keyspace.setInitialized();