Author: jbellis
Date: Thu Sep 30 14:34:11 2010
New Revision: 1003079

URL: http://svn.apache.org/viewvc?rev=1003079&view=rev
Log:
fixes for SystemTable token change.  patch by jbellis

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

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java?rev=1003079&r1=1003078&r2=1003079&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java Thu Sep 
30 14:34:11 2010
@@ -36,6 +36,7 @@ import org.apache.cassandra.config.CFMet
 import org.apache.cassandra.config.ConfigurationException;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.clock.TimestampReconciler;
+import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.db.filter.QueryFilter;
 import org.apache.cassandra.db.filter.QueryPath;
 import org.apache.cassandra.db.marshal.BytesType;
@@ -122,6 +123,19 @@ public class SystemTable
         {
             throw new IOError(e);
         }
+
+        try
+        {
+            
Table.open(Table.SYSTEM_TABLE).getColumnFamilyStore(SystemTable.STATUS_CF).forceBlockingFlush();
+        }
+        catch (ExecutionException e)
+        {
+            throw new RuntimeException(e);
+        }
+        catch (InterruptedException e)
+        {
+            throw new AssertionError(e);
+        }
     }
 
     /**
@@ -186,7 +200,7 @@ public class SystemTable
         assert clusterCol != null;
         if 
(!DatabaseDescriptor.getPartitioner().getClass().getName().equals(new 
String(partitionerCol.value(), UTF_8)))
             throw new ConfigurationException("Detected partitioner mismatch! 
Did you change the partitioner?");
-        if (!DatabaseDescriptor.getClusterName().equals(new 
String(clusterCol.value())));
+        if (!DatabaseDescriptor.getClusterName().equals(new 
String(clusterCol.value())))
             throw new ConfigurationException("Saved cluster name " + new 
String(clusterCol.value()) + " != configured name " + 
DatabaseDescriptor.getClusterName());
     }
 
@@ -201,7 +215,7 @@ public class SystemTable
     public static int incrementAndGetGeneration() throws IOException
     {
         Table table = Table.open(Table.SYSTEM_TABLE);
-        QueryFilter filter = 
QueryFilter.getNamesFilter(decorate(LOCATION_KEY), new QueryPath(STATUS_CF), 
TOKEN);
+        QueryFilter filter = 
QueryFilter.getNamesFilter(decorate(LOCATION_KEY), new QueryPath(STATUS_CF), 
GENERATION);
         ColumnFamily cf = 
table.getColumnFamilyStore(STATUS_CF).getColumnFamily(filter);
 
         int generation;

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=1003079&r1=1003078&r2=1003079&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
Thu Sep 30 14:34:11 2010
@@ -420,10 +420,14 @@ public class StorageService implements I
                 else
                 {
                     token = 
partitioner_.getTokenFactory().fromString(initialToken);
-                    logger_.info("Saved Token not found. Using " + token + " 
from configuration");
+                    logger_.info("Saved token not found. Using " + token + " 
from configuration");
                 }
                 SystemTable.updateToken(token);
             }
+            else
+            {
+                logger_.info("Using saved token " + token);
+            }
             SystemTable.setBootstrapped(true);
             tokenMetadata_.updateNormalToken(token, 
FBUtilities.getLocalAddress());
             
Gossiper.instance.addLocalApplicationState(ApplicationState.STATUS, 
valueFactory.normal(token));


Reply via email to