Author: jbellis
Date: Fri Apr 29 15:35:18 2011
New Revision: 1097843

URL: http://svn.apache.org/viewvc?rev=1097843&view=rev
Log:
refuse to apply migrations with older timestamps than the current schema
patch by Tyler Hobbs; reviewed by jbellis and gdusbabek for CASSANDRA-2536

Modified:
    cassandra/branches/cassandra-0.7/CHANGES.txt
    
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1097843&r1=1097842&r2=1097843&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Fri Apr 29 15:35:18 2011
@@ -4,6 +4,8 @@
  * fix incorrect use of NBHM.size in ReadCallback that could cause
    reads to time out even when responses were received (CASSAMDRA-2552)
  * trigger read repair correctly for LOCAL_QUORUM reads (CASSANDRA-2556)
+ * refuse to apply migrations with older timestamps than the current 
+   schema (CASSANDRA-2536)
 
 
 0.7.5

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java?rev=1097843&r1=1097842&r2=1097843&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java
 Fri Apr 29 15:35:18 2011
@@ -98,6 +98,8 @@ public abstract class Migration
         // ensure migration is serial. don't apply unless the previous version 
matches.
         if (!DatabaseDescriptor.getDefsVersion().equals(lastVersion))
             throw new ConfigurationException("Previous version mismatch. 
cannot apply.");
+        if (newVersion.timestamp() <= lastVersion.timestamp())
+            throw new ConfigurationException("New version timestamp is not 
newer than the current version timestamp.");
         // write to schema
         assert rm != null;
         if (!clientMode)


Reply via email to