You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2014/09/15 16:04:14 UTC
[1/5] git commit: Use ThreadLocalRandom and remove
FBUtilities.threadLocalRandom
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1 094aa8ef2 -> 1d7691e25
refs/heads/trunk e225176b3 -> 35af28e55
Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom
patch by benedict; reviewed by tjake for CASSANDRA-7934
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/028880e7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/028880e7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/028880e7
Branch: refs/heads/cassandra-2.1
Commit: 028880e74ceef57b33b858fbd78d8aa9ac3b9680
Parents: 094aa8e
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Mon Sep 15 14:56:39 2014 +0100
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Mon Sep 15 15:02:06 2014 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/java/org/apache/cassandra/config/CFMetaData.java | 3 ++-
src/java/org/apache/cassandra/db/BatchlogManager.java | 2 +-
.../org/apache/cassandra/dht/Murmur3Partitioner.java | 3 ++-
.../io/compress/CompressedRandomAccessReader.java | 3 ++-
src/java/org/apache/cassandra/service/QueryState.java | 3 ++-
.../org/apache/cassandra/service/StorageProxy.java | 8 ++++----
.../streaming/compress/CompressedInputStream.java | 3 ++-
src/java/org/apache/cassandra/utils/FBUtilities.java | 14 --------------
9 files changed, 16 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 608e4b1..ffa2b71 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.1.1
+ * Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom (CASSANDRA-7934)
* Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)
* cassandra-stress supports whitelist mode for node config
* GCInspector more closely tracks GC; cassandra-stress and nodetool report it
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index a5d328a..1d6e3a4 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -35,6 +35,7 @@ import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.UUID;
+import java.util.concurrent.ThreadLocalRandom;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Objects;
@@ -703,7 +704,7 @@ public final class CFMetaData
public ReadRepairDecision newReadRepairDecision()
{
- double chance = FBUtilities.threadLocalRandom().nextDouble();
+ double chance = ThreadLocalRandom.current().nextDouble();
if (getReadRepairChance() > chance)
return ReadRepairDecision.GLOBAL;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/db/BatchlogManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/BatchlogManager.java b/src/java/org/apache/cassandra/db/BatchlogManager.java
index d49c620..7f8d355 100644
--- a/src/java/org/apache/cassandra/db/BatchlogManager.java
+++ b/src/java/org/apache/cassandra/db/BatchlogManager.java
@@ -527,7 +527,7 @@ public class BatchlogManager implements BatchlogManagerMBean
@VisibleForTesting
protected int getRandomInt(int bound)
{
- return FBUtilities.threadLocalRandom().nextInt(bound);
+ return ThreadLocalRandom.current().nextInt(bound);
}
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java b/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java
index 5a3c4bb..2bb0423 100644
--- a/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java
+++ b/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ThreadLocalRandom;
import org.apache.cassandra.db.BufferDecoratedKey;
import org.apache.cassandra.db.DecoratedKey;
@@ -105,7 +106,7 @@ public class Murmur3Partitioner extends AbstractPartitioner<LongToken>
public LongToken getRandomToken()
{
- return new LongToken(normalize(FBUtilities.threadLocalRandom().nextLong()));
+ return new LongToken(normalize(ThreadLocalRandom.current().nextLong()));
}
private long normalize(long v)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java b/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
index 64495b8..4521c19 100644
--- a/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
@@ -19,6 +19,7 @@ package org.apache.cassandra.io.compress;
import java.io.*;
import java.nio.ByteBuffer;
+import java.util.concurrent.ThreadLocalRandom;
import java.util.zip.Adler32;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
@@ -122,7 +123,7 @@ public class CompressedRandomAccessReader extends RandomAccessReader
throw new CorruptBlockException(getPath(), chunk, e);
}
- if (metadata.parameters.getCrcCheckChance() > FBUtilities.threadLocalRandom().nextDouble())
+ if (metadata.parameters.getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
{
if (metadata.hasPostCompressionAdlerChecksums)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/service/QueryState.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/QueryState.java b/src/java/org/apache/cassandra/service/QueryState.java
index 12fc392..0179a3e 100644
--- a/src/java/org/apache/cassandra/service/QueryState.java
+++ b/src/java/org/apache/cassandra/service/QueryState.java
@@ -18,6 +18,7 @@
package org.apache.cassandra.service;
import java.util.UUID;
+import java.util.concurrent.ThreadLocalRandom;
import org.apache.cassandra.tracing.Tracing;
import org.apache.cassandra.utils.FBUtilities;
@@ -68,7 +69,7 @@ public class QueryState
}
double tracingProbability = StorageService.instance.getTracingProbability();
- return tracingProbability != 0 && FBUtilities.threadLocalRandom().nextDouble() < tracingProbability;
+ return tracingProbability != 0 && ThreadLocalRandom.current().nextDouble() < tracingProbability;
}
public void prepareTracingSession(UUID sessionId)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 615335b..d9602bb 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -257,7 +257,7 @@ public class StorageProxy implements StorageProxyMBean
}
Tracing.trace("Paxos proposal not accepted (pre-empted by a higher ballot)");
- Uninterruptibles.sleepUninterruptibly(FBUtilities.threadLocalRandom().nextInt(100), TimeUnit.MILLISECONDS);
+ Uninterruptibles.sleepUninterruptibly(ThreadLocalRandom.current().nextInt(100), TimeUnit.MILLISECONDS);
// continue to retry
}
@@ -323,7 +323,7 @@ public class StorageProxy implements StorageProxyMBean
{
Tracing.trace("Some replicas have already promised a higher ballot than ours; aborting");
// sleep a random amount to give the other proposer a chance to finish
- Uninterruptibles.sleepUninterruptibly(FBUtilities.threadLocalRandom().nextInt(100), TimeUnit.MILLISECONDS);
+ Uninterruptibles.sleepUninterruptibly(ThreadLocalRandom.current().nextInt(100), TimeUnit.MILLISECONDS);
continue;
}
@@ -344,7 +344,7 @@ public class StorageProxy implements StorageProxyMBean
{
Tracing.trace("Some replicas have already promised a higher ballot than ours; aborting");
// sleep a random amount to give the other proposer a chance to finish
- Uninterruptibles.sleepUninterruptibly(FBUtilities.threadLocalRandom().nextInt(100), TimeUnit.MILLISECONDS);
+ Uninterruptibles.sleepUninterruptibly(ThreadLocalRandom.current().nextInt(100), TimeUnit.MILLISECONDS);
}
continue;
}
@@ -1049,7 +1049,7 @@ public class StorageProxy implements StorageProxyMBean
}
else
{
- return localEndpoints.get(FBUtilities.threadLocalRandom().nextInt(localEndpoints.size()));
+ return localEndpoints.get(ThreadLocalRandom.current().nextInt(localEndpoints.size()));
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
index ef019c2..449546f 100644
--- a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
+++ b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
@@ -23,6 +23,7 @@ import java.io.InputStream;
import java.util.Iterator;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ThreadLocalRandom;
import java.util.zip.Adler32;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
@@ -114,7 +115,7 @@ public class CompressedInputStream extends InputStream
totalCompressedBytesRead += compressed.length;
// validate crc randomly
- if (info.parameters.getCrcCheckChance() > FBUtilities.threadLocalRandom().nextDouble())
+ if (info.parameters.getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
{
if (hasPostCompressionAdlerChecksums)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/utils/FBUtilities.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/FBUtilities.java b/src/java/org/apache/cassandra/utils/FBUtilities.java
index 38e5834..7e9adab 100644
--- a/src/java/org/apache/cassandra/utils/FBUtilities.java
+++ b/src/java/org/apache/cassandra/utils/FBUtilities.java
@@ -100,15 +100,6 @@ public class FBUtilities
}
};
- private static final ThreadLocal<Random> localRandom = new ThreadLocal<Random>()
- {
- @Override
- protected Random initialValue()
- {
- return new Random();
- }
- };
-
public static final int MAX_UNSIGNED_SHORT = 0xFFFF;
public static MessageDigest threadLocalMD5Digest()
@@ -128,11 +119,6 @@ public class FBUtilities
}
}
- public static Random threadLocalRandom()
- {
- return localRandom.get();
- }
-
/**
* Please use getBroadcastAddress instead. You need this only when you have to listen/connect.
*/
[4/5] git commit: ninja-fix CHANGES.txt
Posted by be...@apache.org.
ninja-fix CHANGES.txt
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1d7691e2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1d7691e2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1d7691e2
Branch: refs/heads/cassandra-2.1
Commit: 1d7691e251e3d170916f138b0980d6a9003cf7db
Parents: 028880e
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Mon Sep 15 14:57:46 2014 +0100
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Mon Sep 15 15:02:32 2014 +0100
----------------------------------------------------------------------
CHANGES.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d7691e2/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ffa2b71..4c0dbf9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,8 +1,8 @@
2.1.1
* Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom (CASSANDRA-7934)
* Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)
- * cassandra-stress supports whitelist mode for node config
- * GCInspector more closely tracks GC; cassandra-stress and nodetool report it
+ * cassandra-stress supports whitelist mode for node config (CASSANDRA-7658)
+ * GCInspector more closely tracks GC; cassandra-stress and nodetool report it (CASSANDRA-7916)
* nodetool won't output bogus ownership info without a keyspace (CASSANDRA-7173)
* Add human readable option to nodetool commands (CASSANDRA-5433)
* Don't try to set repairedAt on old sstables (CASSANDRA-7913)
[5/5] git commit: Merge branch 'cassandra-2.1' into trunk
Posted by be...@apache.org.
Merge branch 'cassandra-2.1' into trunk
Conflicts:
src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
src/java/org/apache/cassandra/service/QueryState.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/35af28e5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/35af28e5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/35af28e5
Branch: refs/heads/trunk
Commit: 35af28e550cd80be7df36283fe283454977a2a37
Parents: e225176 1d7691e
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Mon Sep 15 15:03:29 2014 +0100
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Mon Sep 15 15:03:29 2014 +0100
----------------------------------------------------------------------
CHANGES.txt | 5 +++--
src/java/org/apache/cassandra/config/CFMetaData.java | 3 ++-
src/java/org/apache/cassandra/db/BatchlogManager.java | 2 +-
.../org/apache/cassandra/dht/Murmur3Partitioner.java | 3 ++-
.../io/compress/CompressedRandomAccessReader.java | 3 ++-
src/java/org/apache/cassandra/service/QueryState.java | 3 ++-
.../org/apache/cassandra/service/StorageProxy.java | 8 ++++----
.../streaming/compress/CompressedInputStream.java | 3 ++-
src/java/org/apache/cassandra/utils/FBUtilities.java | 14 --------------
9 files changed, 18 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/35af28e5/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index bf3567f,4c0dbf9..b6e9165
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,29 -1,8 +1,30 @@@
+3.0
+ * Remove YamlFileNetworkTopologySnitch (CASSANDRA-7917)
+ * Support Java source code for user-defined functions (CASSANDRA-7562)
+ * Require arg types to disambiguate UDF drops (CASSANDRA-7812)
+ * Do anticompaction in groups (CASSANDRA-6851)
+ * Verify that UDF class methods are static (CASSANDRA-7781)
+ * Support pure user-defined functions (CASSANDRA-7395, 7740)
+ * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416)
+ * Move sstable RandomAccessReader to nio2, which allows using the
+ FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050)
+ * Remove CQL2 (CASSANDRA-5918)
+ * Add Thrift get_multi_slice call (CASSANDRA-6757)
+ * Optimize fetching multiple cells by name (CASSANDRA-6933)
+ * Allow compilation in java 8 (CASSANDRA-7028)
+ * Make incremental repair default (CASSANDRA-7250)
+ * Enable code coverage thru JaCoCo (CASSANDRA-7226)
+ * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369)
+ * Shorten SSTable path (CASSANDRA-6962)
+ * Use unsafe mutations for most unit tests (CASSANDRA-6969)
+ * Fix race condition during calculation of pending ranges (CASSANDRA-7390)
+
+
2.1.1
+ * Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom (CASSANDRA-7934)
* Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)
- * cassandra-stress supports whitelist mode for node config
- * GCInspector more closely tracks GC; cassandra-stress and nodetool report it
+ * cassandra-stress supports whitelist mode for node config (CASSANDRA-7658)
+ * GCInspector more closely tracks GC; cassandra-stress and nodetool report it (CASSANDRA-7916)
* nodetool won't output bogus ownership info without a keyspace (CASSANDRA-7173)
* Add human readable option to nodetool commands (CASSANDRA-5433)
* Don't try to set repairedAt on old sstables (CASSANDRA-7913)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/35af28e5/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/35af28e5/src/java/org/apache/cassandra/db/BatchlogManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/35af28e5/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
index d71964c,4521c19..dca5ade
--- a/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
@@@ -90,69 -85,65 +91,69 @@@ public class CompressedRandomAccessRead
{
try
{
- decompressChunk(metadata.chunkFor(current));
- }
- catch (CorruptBlockException e)
- {
- throw new CorruptSSTableException(e, getPath());
- }
- catch (IOException e)
- {
- throw new FSReadError(e, getPath());
- }
- }
+ long position = current();
+ assert position < metadata.dataLength;
- private void decompressChunk(CompressionMetadata.Chunk chunk) throws IOException
- {
- if (channel.position() != chunk.offset)
- channel.position(chunk.offset);
+ CompressionMetadata.Chunk chunk = metadata.chunkFor(position);
- if (compressed.capacity() < chunk.length)
- compressed = ByteBuffer.wrap(new byte[chunk.length]);
- else
- compressed.clear();
- compressed.limit(chunk.length);
-
- if (channel.read(compressed) != chunk.length)
- throw new CorruptBlockException(getPath(), chunk);
+ if (channel.position() != chunk.offset)
+ channel.position(chunk.offset);
- // technically flip() is unnecessary since all the remaining work uses the raw array, but if that changes
- // in the future this will save a lot of hair-pulling
- compressed.flip();
- try
- {
- validBufferBytes = metadata.compressor().uncompress(compressed.array(), 0, chunk.length, buffer, 0);
- }
- catch (IOException e)
- {
- throw new CorruptBlockException(getPath(), chunk, e);
- }
+ if (compressed.capacity() < chunk.length)
+ compressed = ByteBuffer.wrap(new byte[chunk.length]);
+ else
+ compressed.clear();
+ compressed.limit(chunk.length);
- if (metadata.parameters.getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
- {
+ if (channel.read(compressed) != chunk.length)
+ throw new CorruptBlockException(getPath(), chunk);
- if (metadata.hasPostCompressionAdlerChecksums)
+ // technically flip() is unnecessary since all the remaining work uses the raw array, but if that changes
+ // in the future this will save a lot of hair-pulling
+ compressed.flip();
+ buffer.clear();
+ int decompressedBytes;
+ try
{
- checksum.update(compressed.array(), 0, chunk.length);
+ decompressedBytes = metadata.compressor().uncompress(compressed.array(), 0, chunk.length, buffer.array(), 0);
+ buffer.limit(decompressedBytes);
}
- else
+ catch (IOException e)
{
- checksum.update(buffer, 0, validBufferBytes);
+ throw new CorruptBlockException(getPath(), chunk);
}
- if (metadata.parameters.getCrcCheckChance() > FBUtilities.threadLocalRandom().nextDouble())
- if (checksum(chunk) != (int) checksum.getValue())
- throw new CorruptBlockException(getPath(), chunk);
++ if (metadata.parameters.getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
+ {
- // reset checksum object back to the original (blank) state
- checksum.reset();
- }
+ if (metadata.hasPostCompressionAdlerChecksums)
+ {
+ checksum.update(compressed.array(), 0, chunk.length);
+ }
+ else
+ {
+ checksum.update(buffer.array(), 0, decompressedBytes);
+ }
- // buffer offset is always aligned
- bufferOffset = current & ~(buffer.length - 1);
+ if (checksum(chunk) != (int) checksum.getValue())
+ throw new CorruptBlockException(getPath(), chunk);
+
+ // reset checksum object back to the original (blank) state
+ checksum.reset();
+ }
+
+ // buffer offset is always aligned
+ bufferOffset = position & ~(buffer.capacity() - 1);
+ buffer.position((int) (position - bufferOffset));
+ }
+ catch (CorruptBlockException e)
+ {
+ throw new CorruptSSTableException(e, getPath());
+ }
+ catch (IOException e)
+ {
+ throw new FSReadError(e, getPath());
+ }
}
private int checksum(CompressionMetadata.Chunk chunk) throws IOException
http://git-wip-us.apache.org/repos/asf/cassandra/blob/35af28e5/src/java/org/apache/cassandra/service/QueryState.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/QueryState.java
index 4f3b0d5,0179a3e..9cedfad
--- a/src/java/org/apache/cassandra/service/QueryState.java
+++ b/src/java/org/apache/cassandra/service/QueryState.java
@@@ -67,8 -68,8 +68,8 @@@ public class QueryStat
return true;
}
- double tracingProbability = StorageService.instance.getTracingProbability();
- return tracingProbability != 0 && ThreadLocalRandom.current().nextDouble() < tracingProbability;
+ double traceProbability = StorageService.instance.getTraceProbability();
- return traceProbability != 0 && FBUtilities.threadLocalRandom().nextDouble() < traceProbability;
++ return traceProbability != 0 && ThreadLocalRandom.current().nextDouble() < traceProbability;
}
public void prepareTracingSession(UUID sessionId)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/35af28e5/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/35af28e5/src/java/org/apache/cassandra/utils/FBUtilities.java
----------------------------------------------------------------------
[3/5] git commit: ninja-fix CHANGES.txt
Posted by be...@apache.org.
ninja-fix CHANGES.txt
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1d7691e2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1d7691e2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1d7691e2
Branch: refs/heads/trunk
Commit: 1d7691e251e3d170916f138b0980d6a9003cf7db
Parents: 028880e
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Mon Sep 15 14:57:46 2014 +0100
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Mon Sep 15 15:02:32 2014 +0100
----------------------------------------------------------------------
CHANGES.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/1d7691e2/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ffa2b71..4c0dbf9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,8 +1,8 @@
2.1.1
* Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom (CASSANDRA-7934)
* Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)
- * cassandra-stress supports whitelist mode for node config
- * GCInspector more closely tracks GC; cassandra-stress and nodetool report it
+ * cassandra-stress supports whitelist mode for node config (CASSANDRA-7658)
+ * GCInspector more closely tracks GC; cassandra-stress and nodetool report it (CASSANDRA-7916)
* nodetool won't output bogus ownership info without a keyspace (CASSANDRA-7173)
* Add human readable option to nodetool commands (CASSANDRA-5433)
* Don't try to set repairedAt on old sstables (CASSANDRA-7913)
[2/5] git commit: Use ThreadLocalRandom and remove
FBUtilities.threadLocalRandom
Posted by be...@apache.org.
Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom
patch by benedict; reviewed by tjake for CASSANDRA-7934
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/028880e7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/028880e7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/028880e7
Branch: refs/heads/trunk
Commit: 028880e74ceef57b33b858fbd78d8aa9ac3b9680
Parents: 094aa8e
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Mon Sep 15 14:56:39 2014 +0100
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Mon Sep 15 15:02:06 2014 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/java/org/apache/cassandra/config/CFMetaData.java | 3 ++-
src/java/org/apache/cassandra/db/BatchlogManager.java | 2 +-
.../org/apache/cassandra/dht/Murmur3Partitioner.java | 3 ++-
.../io/compress/CompressedRandomAccessReader.java | 3 ++-
src/java/org/apache/cassandra/service/QueryState.java | 3 ++-
.../org/apache/cassandra/service/StorageProxy.java | 8 ++++----
.../streaming/compress/CompressedInputStream.java | 3 ++-
src/java/org/apache/cassandra/utils/FBUtilities.java | 14 --------------
9 files changed, 16 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 608e4b1..ffa2b71 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.1.1
+ * Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom (CASSANDRA-7934)
* Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)
* cassandra-stress supports whitelist mode for node config
* GCInspector more closely tracks GC; cassandra-stress and nodetool report it
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index a5d328a..1d6e3a4 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -35,6 +35,7 @@ import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.UUID;
+import java.util.concurrent.ThreadLocalRandom;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Objects;
@@ -703,7 +704,7 @@ public final class CFMetaData
public ReadRepairDecision newReadRepairDecision()
{
- double chance = FBUtilities.threadLocalRandom().nextDouble();
+ double chance = ThreadLocalRandom.current().nextDouble();
if (getReadRepairChance() > chance)
return ReadRepairDecision.GLOBAL;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/db/BatchlogManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/BatchlogManager.java b/src/java/org/apache/cassandra/db/BatchlogManager.java
index d49c620..7f8d355 100644
--- a/src/java/org/apache/cassandra/db/BatchlogManager.java
+++ b/src/java/org/apache/cassandra/db/BatchlogManager.java
@@ -527,7 +527,7 @@ public class BatchlogManager implements BatchlogManagerMBean
@VisibleForTesting
protected int getRandomInt(int bound)
{
- return FBUtilities.threadLocalRandom().nextInt(bound);
+ return ThreadLocalRandom.current().nextInt(bound);
}
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java b/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java
index 5a3c4bb..2bb0423 100644
--- a/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java
+++ b/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ThreadLocalRandom;
import org.apache.cassandra.db.BufferDecoratedKey;
import org.apache.cassandra.db.DecoratedKey;
@@ -105,7 +106,7 @@ public class Murmur3Partitioner extends AbstractPartitioner<LongToken>
public LongToken getRandomToken()
{
- return new LongToken(normalize(FBUtilities.threadLocalRandom().nextLong()));
+ return new LongToken(normalize(ThreadLocalRandom.current().nextLong()));
}
private long normalize(long v)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java b/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
index 64495b8..4521c19 100644
--- a/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
@@ -19,6 +19,7 @@ package org.apache.cassandra.io.compress;
import java.io.*;
import java.nio.ByteBuffer;
+import java.util.concurrent.ThreadLocalRandom;
import java.util.zip.Adler32;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
@@ -122,7 +123,7 @@ public class CompressedRandomAccessReader extends RandomAccessReader
throw new CorruptBlockException(getPath(), chunk, e);
}
- if (metadata.parameters.getCrcCheckChance() > FBUtilities.threadLocalRandom().nextDouble())
+ if (metadata.parameters.getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
{
if (metadata.hasPostCompressionAdlerChecksums)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/service/QueryState.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/QueryState.java b/src/java/org/apache/cassandra/service/QueryState.java
index 12fc392..0179a3e 100644
--- a/src/java/org/apache/cassandra/service/QueryState.java
+++ b/src/java/org/apache/cassandra/service/QueryState.java
@@ -18,6 +18,7 @@
package org.apache.cassandra.service;
import java.util.UUID;
+import java.util.concurrent.ThreadLocalRandom;
import org.apache.cassandra.tracing.Tracing;
import org.apache.cassandra.utils.FBUtilities;
@@ -68,7 +69,7 @@ public class QueryState
}
double tracingProbability = StorageService.instance.getTracingProbability();
- return tracingProbability != 0 && FBUtilities.threadLocalRandom().nextDouble() < tracingProbability;
+ return tracingProbability != 0 && ThreadLocalRandom.current().nextDouble() < tracingProbability;
}
public void prepareTracingSession(UUID sessionId)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 615335b..d9602bb 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -257,7 +257,7 @@ public class StorageProxy implements StorageProxyMBean
}
Tracing.trace("Paxos proposal not accepted (pre-empted by a higher ballot)");
- Uninterruptibles.sleepUninterruptibly(FBUtilities.threadLocalRandom().nextInt(100), TimeUnit.MILLISECONDS);
+ Uninterruptibles.sleepUninterruptibly(ThreadLocalRandom.current().nextInt(100), TimeUnit.MILLISECONDS);
// continue to retry
}
@@ -323,7 +323,7 @@ public class StorageProxy implements StorageProxyMBean
{
Tracing.trace("Some replicas have already promised a higher ballot than ours; aborting");
// sleep a random amount to give the other proposer a chance to finish
- Uninterruptibles.sleepUninterruptibly(FBUtilities.threadLocalRandom().nextInt(100), TimeUnit.MILLISECONDS);
+ Uninterruptibles.sleepUninterruptibly(ThreadLocalRandom.current().nextInt(100), TimeUnit.MILLISECONDS);
continue;
}
@@ -344,7 +344,7 @@ public class StorageProxy implements StorageProxyMBean
{
Tracing.trace("Some replicas have already promised a higher ballot than ours; aborting");
// sleep a random amount to give the other proposer a chance to finish
- Uninterruptibles.sleepUninterruptibly(FBUtilities.threadLocalRandom().nextInt(100), TimeUnit.MILLISECONDS);
+ Uninterruptibles.sleepUninterruptibly(ThreadLocalRandom.current().nextInt(100), TimeUnit.MILLISECONDS);
}
continue;
}
@@ -1049,7 +1049,7 @@ public class StorageProxy implements StorageProxyMBean
}
else
{
- return localEndpoints.get(FBUtilities.threadLocalRandom().nextInt(localEndpoints.size()));
+ return localEndpoints.get(ThreadLocalRandom.current().nextInt(localEndpoints.size()));
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
index ef019c2..449546f 100644
--- a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
+++ b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
@@ -23,6 +23,7 @@ import java.io.InputStream;
import java.util.Iterator;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ThreadLocalRandom;
import java.util.zip.Adler32;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
@@ -114,7 +115,7 @@ public class CompressedInputStream extends InputStream
totalCompressedBytesRead += compressed.length;
// validate crc randomly
- if (info.parameters.getCrcCheckChance() > FBUtilities.threadLocalRandom().nextDouble())
+ if (info.parameters.getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
{
if (hasPostCompressionAdlerChecksums)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/028880e7/src/java/org/apache/cassandra/utils/FBUtilities.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/FBUtilities.java b/src/java/org/apache/cassandra/utils/FBUtilities.java
index 38e5834..7e9adab 100644
--- a/src/java/org/apache/cassandra/utils/FBUtilities.java
+++ b/src/java/org/apache/cassandra/utils/FBUtilities.java
@@ -100,15 +100,6 @@ public class FBUtilities
}
};
- private static final ThreadLocal<Random> localRandom = new ThreadLocal<Random>()
- {
- @Override
- protected Random initialValue()
- {
- return new Random();
- }
- };
-
public static final int MAX_UNSIGNED_SHORT = 0xFFFF;
public static MessageDigest threadLocalMD5Digest()
@@ -128,11 +119,6 @@ public class FBUtilities
}
}
- public static Random threadLocalRandom()
- {
- return localRandom.get();
- }
-
/**
* Please use getBroadcastAddress instead. You need this only when you have to listen/connect.
*/