Author: gdusbabek
Date: Fri Nov 19 15:29:01 2010
New Revision: 1036899

URL: http://svn.apache.org/viewvc?rev=1036899&view=rev
Log:
remove locks from UpdateColumnFamily. patch by jbellis, reviewed by gdusbabek. 
CASSANDRA-1715

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
    cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
    
cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateColumnFamily.java

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1036899&r1=1036898&r2=1036899&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Fri 
Nov 19 15:29:01 2010
@@ -131,11 +131,11 @@ public class ColumnFamilyStore implement
     public final CFMetaData metadata;
 
     /* These are locally held copies to be changed from the config during 
runtime */
-    private DefaultInteger minCompactionThreshold;
-    private DefaultInteger maxCompactionThreshold;
-    private DefaultInteger memtime;
-    private DefaultInteger memsize;
-    private DefaultDouble memops;
+    private volatile DefaultInteger minCompactionThreshold;
+    private volatile DefaultInteger maxCompactionThreshold;
+    private volatile DefaultInteger memtime;
+    private volatile DefaultInteger memsize;
+    private volatile DefaultDouble memops;
 
     private final Runnable rowCacheSaverTask = new WrappedRunnable()
     {
@@ -155,8 +155,6 @@ public class ColumnFamilyStore implement
     
     public void reload()
     {
-        assert Table.flusherLock.writeLock().isHeldByCurrentThread();
-        
         // metadata object has been mutated directly. make all the members 
jibe with new settings.
         
         // only update these runtime-modifiable settings if they have not been 
modified.

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLog.java?rev=1036899&r1=1036898&r2=1036899&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLog.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLog.java 
Fri Nov 19 15:29:01 2010
@@ -464,7 +464,7 @@ public class CommitLog
             }
 
             header.turnOff(id);
-            if (header.isSafeToDelete())
+            if (header.isSafeToDelete() && iter.hasNext())
             {
                 logger.info("Discarding obsolete commit log:" + segment);
                 segment.close();

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateColumnFamily.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateColumnFamily.java?rev=1036899&r1=1036898&r2=1036899&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateColumnFamily.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/migration/UpdateColumnFamily.java
 Fri Nov 19 15:29:01 2010
@@ -70,24 +70,14 @@ public class UpdateColumnFamily extends 
 
     void applyModels() throws IOException
     {
-        acquireLocks();
-        try
-        {
-            logger.debug("Updating " + metadata + " to " + metadata);
-            
-            DatabaseDescriptor.setTableDefinition(null, newVersion);
-            
-            if (!clientMode)
-            {
-                Table table = Table.open(metadata.tableName);
-                
-                ColumnFamilyStore oldCfs = 
table.getColumnFamilyStore(metadata.cfName);
-                oldCfs.reload();
-            }
-        }
-        finally
+        logger.debug("Updating " + metadata + " to " + metadata);
+        DatabaseDescriptor.setTableDefinition(null, newVersion);
+
+        if (!clientMode)
         {
-            releaseLocks();
+            Table table = Table.open(metadata.tableName);
+            ColumnFamilyStore oldCfs = 
table.getColumnFamilyStore(metadata.cfName);
+            oldCfs.reload();
         }
     }
 


Reply via email to