Author: gdusbabek
Date: Tue Jul 27 14:50:10 2010
New Revision: 979734

URL: http://svn.apache.org/viewvc?rev=979734&view=rev
Log:
push migrations when SS.loadSchemaFromYaml is called. patch by gdusbabek, 
reviewed by jbellis. CASSANDRA-1321

Modified:
    
cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java
    cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java?rev=979734&r1=979733&r2=979734&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java
 Tue Jul 27 14:50:10 2010
@@ -60,8 +60,10 @@ public class DefinitionsUpdateResponseVe
                         protected void runMayThrow() throws Exception
                         {
                             // check to make sure the current version is 
before this one.
-                            if 
(DatabaseDescriptor.getDefsVersion().timestamp() >= version.timestamp())
-                                logger.debug("Not applying " + 
version.toString());
+                            if 
(DatabaseDescriptor.getDefsVersion().timestamp() == version.timestamp())
+                                logger.debug("Not appling (equal) " + 
version.toString());
+                            else if 
(DatabaseDescriptor.getDefsVersion().timestamp() > version.timestamp())
+                                logger.debug("Not applying (before)" + 
version.toString());
                             else
                             {
                                 logger.debug("Applying {} from {}", 
m.getClass().getSimpleName(), message.getFrom());

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=979734&r1=979733&r2=979734&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
Tue Jul 27 14:50:10 2010
@@ -31,7 +31,6 @@ import javax.management.ObjectName;
 
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
-import org.apache.cassandra.config.Config;
 import org.apache.cassandra.config.RawColumnDefinition;
 import org.apache.cassandra.config.RawColumnFamily;
 import org.apache.cassandra.config.RawKeyspace;
@@ -77,10 +76,7 @@ import org.apache.log4j.Level;
 import org.yaml.snakeyaml.Dumper;
 import org.yaml.snakeyaml.DumperOptions;
 import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.introspector.Property;
-import org.yaml.snakeyaml.nodes.NodeTuple;
 import org.yaml.snakeyaml.nodes.Tag;
-import org.yaml.snakeyaml.representer.Representer;
 
 /*
  * This abstraction contains the token/identifier of this node
@@ -1667,8 +1663,13 @@ public class StorageService implements I
         // blow up if there is a schema saved.
         if (DatabaseDescriptor.getDefsVersion().timestamp() > 0 || 
Migration.getLastMigrationId() != null)
             throw new ConfigurationException("Cannot load from XML on top of 
pre-existing schemas.");
+        
+        Migration migration = null;
         for (KSMetaData table : DatabaseDescriptor.readTablesFromYaml())
-            new AddKeyspace(table).apply();
+        {
+            migration = new AddKeyspace(table); 
+            migration.apply();
+        }
         
         assert DatabaseDescriptor.getDefsVersion().timestamp() > 0;
         DefsTable.dumpToStorage(DatabaseDescriptor.getDefsVersion());
@@ -1689,6 +1690,11 @@ public class StorageService implements I
             }
         }
         
+        // we don't want to announce after every Migration.apply(). keep track 
of the last one and then announce the
+        // current version.
+        if (migration != null)
+            migration.announce();
+        
     }
 
     public String exportSchema() throws IOException


Reply via email to