Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 b8ed255fd -> e9b7a0f25 refs/heads/cassandra-3.11 30e154d3d -> 1cafc3ccd refs/heads/cassandra-3.X 707c36430 -> ddefb1d89 refs/heads/trunk d596a47cf -> cd5aacc83
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/cassandra-3.0 Commit: e9b7a0f2546579244ffc167c56122b0a47d4b4b0 Parents: b8ed255 Author: brstgt <brs...@googlemail.com> Authored: Fri Dec 2 09:41:20 2016 +0100 Committer: Carl Yeksigian <c...@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;