You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ca...@apache.org on 2016/12/13 18:36:43 UTC
[04/10] cassandra git commit: Mark MVs as built after successful
bootstrap
Mark MVs as built after successful bootstrap
Patch by Benjamin Roth; reviewed by Carl Yeksigian for CASSANDRA-12984
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e9b7a0f2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e9b7a0f2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e9b7a0f2
Branch: refs/heads/trunk
Commit: e9b7a0f2546579244ffc167c56122b0a47d4b4b0
Parents: b8ed255
Author: brstgt <br...@googlemail.com>
Authored: Fri Dec 2 09:41:20 2016 +0100
Committer: Carl Yeksigian <ca...@apache.org>
Committed: Tue Dec 13 12:27:08 2016 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/service/StorageService.java | 24 ++++++++++++++++++--
2 files changed, 23 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e9b7a0f2/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 38660a0..5621c93 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.11
+ * Mark MVs as built after successful bootstrap (CASSANDRA-12984)
* Estimated TS drop-time histogram updated with Cell.NO_DELETION_TIME (CASSANDRA-13040)
* Nodetool compactionstats fails with NullPointerException (CASSANDRA-13021)
* Thread local pools never cleaned up (CASSANDRA-13033)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e9b7a0f2/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 71cbc35..35b2423 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -57,6 +57,7 @@ import org.apache.cassandra.concurrent.StageManager;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.config.ViewDefinition;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.commitlog.CommitLog;
import org.apache.cassandra.db.compaction.CompactionManager;
@@ -1211,7 +1212,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
@Override
public void onSuccess(StreamState streamState)
{
- isBootstrapMode = false;
+ bootstrapFinished();
logger.info("Bootstrap completed! for the tokens {}", tokens);
}
@@ -1233,6 +1234,25 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
}
}
+ /**
+ * All MVs have been created during bootstrap, so mark them as built
+ */
+ private void markViewsAsBuilt() {
+ for (String keyspace : Schema.instance.getUserKeyspaces())
+ {
+ for (ViewDefinition view: Schema.instance.getKSMetaData(keyspace).views)
+ SystemKeyspace.finishViewBuildStatus(view.ksName, view.viewName);
+ }
+ }
+
+ /**
+ * Called when bootstrap did finish successfully
+ */
+ private void bootstrapFinished() {
+ markViewsAsBuilt();
+ isBootstrapMode = false;
+ }
+
public boolean resumeBootstrap()
{
if (isBootstrapMode && SystemKeyspace.bootstrapInProgress())
@@ -1250,7 +1270,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
@Override
public void onSuccess(StreamState streamState)
{
- isBootstrapMode = false;
+ bootstrapFinished();
// start participating in the ring.
// pretend we are in survey mode so we can use joinRing() here
isSurveyMode = true;