Author: jbellis
Date: Wed Jan 19 19:11:44 2011
New Revision: 1060908

URL: http://svn.apache.org/viewvc?rev=1060908&view=rev
Log:
make StorageProxy.random a threadlocal
patch by jbellis

Modified:
    
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1060908&r1=1060907&r2=1060908&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
 Wed Jan 19 19:11:44 2011
@@ -61,7 +61,15 @@ public class StorageProxy implements Sto
 
     private static ScheduledExecutorService repairExecutor = new 
ScheduledThreadPoolExecutor(1); // TODO JMX-enable this
 
-    private static final Random random = new Random();
+    private static final ThreadLocal<Random> random = new ThreadLocal<Random>()
+    {
+        @Override
+        protected Random initialValue()
+        {
+            return new Random();
+        }
+    };
+
     // mbean stuff
     private static final LatencyTracker readStats = new LatencyTracker();
     private static final LatencyTracker rangeStats = new LatencyTracker();
@@ -648,7 +656,7 @@ public class StorageProxy implements Sto
     private static boolean randomlyReadRepair(ReadCommand command)
     {
         CFMetaData cfmd = 
DatabaseDescriptor.getTableMetaData(command.table).get(command.getColumnFamilyName());
-        return cfmd.getReadRepairChance() > random.nextDouble();
+        return cfmd.getReadRepairChance() > random.get().nextDouble();
     }
 
     public long getReadOperations()


Reply via email to