You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/06/25 16:42:08 UTC

svn commit: r957993 - in /cassandra/branches/cassandra-0.6: src/java/org/apache/cassandra/service/AntiEntropyService.java test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java

Author: jbellis
Date: Fri Jun 25 14:42:08 2010
New Revision: 957993

URL: http://svn.apache.org/viewvc?rev=957993&view=rev
Log:
Remove natural repair throttling.  patch by Stu Hood; reviewed by jbellis for CASSANDRA-1190

Modified:
    cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/AntiEntropyService.java
    cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java

Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/AntiEntropyService.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/AntiEntropyService.java?rev=957993&r1=957992&r2=957993&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/AntiEntropyService.java (original)
+++ cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/AntiEntropyService.java Fri Jun 25 14:42:08 2010
@@ -88,18 +88,11 @@ public class AntiEntropyService
 
     // millisecond lifetime to store trees before they become stale
     public final static long TREE_STORE_TIMEOUT = 600000;
-    // max millisecond frequency that natural (automatic) repairs should run at
-    public final static long NATURAL_REPAIR_FREQUENCY = 3600000;
 
     // singleton enforcement
     public static final AntiEntropyService instance = new AntiEntropyService();
 
     /**
-     * Map of CFPair to timestamp of the beginning of the last natural repair.
-     */
-    private final ConcurrentMap<CFPair, Long> naturalRepairs;
-
-    /**
      * Map of column families to remote endpoints that need to rendezvous. The
      * first endpoint to arrive at the rendezvous will store its tree in the
      * appropriate slot of the TreePair object, and the second to arrive will
@@ -114,7 +107,6 @@ public class AntiEntropyService
      */
     protected AntiEntropyService()
     {
-        naturalRepairs = new ConcurrentHashMap<CFPair, Long>();
         trees = new HashMap<CFPair, ExpiringMap<InetAddress, TreePair>>();
     }
 
@@ -252,34 +244,6 @@ public class AntiEntropyService
     }
 
     /**
-     * Should only be used for testing.
-     */
-    void clearNaturalRepairs_TestsOnly()
-    {
-        naturalRepairs.clear();
-    }
-
-    /**
-     * @param cf The column family.
-     * @return True if enough time has elapsed since the beginning of the last natural repair.
-     */
-    private boolean shouldRunNaturally(CFPair cf)
-    {
-        Long curtime = System.currentTimeMillis();
-        Long pretime = naturalRepairs.putIfAbsent(cf, curtime);
-        if (pretime != null)
-        {
-            if (pretime < (curtime - NATURAL_REPAIR_FREQUENCY))
-                // replace pretime with curtime, unless someone beat us to it
-                return naturalRepairs.replace(cf, pretime, curtime);
-            // need to wait longer
-            logger.debug("Skipping natural repair: last occurred " + (curtime - pretime) + "ms ago.");
-            return false;
-        }
-        return true;
-    }
-
-    /**
      * Return a Validator object which can be used to collect hashes for a column family.
      * A Validator must be prepared() before use, and completed() afterward.
      *
@@ -300,7 +264,7 @@ public class AntiEntropyService
         if (DatabaseDescriptor.getReplicationFactor(table) < 2)
             return new NoopValidator();
         CFPair cfpair = new CFPair(table, cf);
-        if (initiator == null && !shouldRunNaturally(cfpair))
+        if (initiator == null)
             return new NoopValidator();
         return new Validator(cfpair);
     }

Modified: cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java?rev=957993&r1=957992&r2=957993&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java (original)
+++ cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java Fri Jun 25 14:42:08 2010
@@ -87,14 +87,8 @@ public class AntiEntropyServiceTest exte
     @Test
     public void testGetValidator() throws Throwable
     {
-        aes.clearNaturalRepairs_TestsOnly();
-
         // not major
         assert aes.getValidator(tablename, cfname, null, false) instanceof NoopValidator;
-        // adds entry to naturalRepairs
-        assert aes.getValidator(tablename, cfname, null, true) instanceof Validator;
-        // blocked by entry in naturalRepairs
-        assert aes.getValidator(tablename, cfname, null, true) instanceof NoopValidator;
         // triggered manually
         assert aes.getValidator(tablename, cfname, REMOTE, true) instanceof Validator;
     }