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()