You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jj...@apache.org on 2017/12/07 05:58:50 UTC
[2/6] cassandra git commit: Avoid pointless calls to
ThreadLocalRandom during CRC probability calculations
Avoid pointless calls to ThreadLocalRandom during CRC probability calculations
Patch by Jeff Jirsa; Reviewed by Jason Brown for CASSANDRA-14094
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b885e9c0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b885e9c0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b885e9c0
Branch: refs/heads/cassandra-3.11
Commit: b885e9c0547709152b5a118af30508bf287d3844
Parents: 090f418
Author: Jeff Jirsa <jj...@apple.com>
Authored: Mon Dec 4 16:32:30 2017 -0800
Committer: Jeff Jirsa <jj...@apple.com>
Committed: Wed Dec 6 21:55:47 2017 -0800
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/io/compress/CompressedRandomAccessReader.java | 6 ++++--
.../cassandra/streaming/compress/CompressedInputStream.java | 3 ++-
3 files changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b885e9c0/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 9638886..b275397 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.16
+ * Optimize CRC check chance probability calculations (CASSANDRA-14094)
* Fix cleanup on keyspace with no replicas (CASSANDRA-13526)
* Fix updating base table rows with TTL not removing materialized view entries (CASSANDRA-14071)
* Reduce garbage created by DynamicSnitch (CASSANDRA-14091)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b885e9c0/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 0624e89..9658316 100644
--- a/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
@@ -129,7 +129,8 @@ public class CompressedRandomAccessReader extends RandomAccessReader
buffer.flip();
}
- if (getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
+ if (getCrcCheckChance() >= 1d ||
+ getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
{
compressed.rewind();
metadata.checksumType.update( checksum, (compressed));
@@ -191,7 +192,8 @@ public class CompressedRandomAccessReader extends RandomAccessReader
buffer.flip();
}
- if (getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
+ if (getCrcCheckChance() >= 1d ||
+ getCrcCheckChance() > ThreadLocalRandom.current().nextDouble())
{
compressedChunk.position(chunkOffset).limit(chunkOffset + chunk.length);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b885e9c0/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 6577980..e3d698e 100644
--- a/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
+++ b/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java
@@ -136,7 +136,8 @@ public class CompressedInputStream extends InputStream
totalCompressedBytesRead += compressed.length;
// validate crc randomly
- if (this.crcCheckChanceSupplier.get() > ThreadLocalRandom.current().nextDouble())
+ if (this.crcCheckChanceSupplier.get() >= 1d ||
+ this.crcCheckChanceSupplier.get() > ThreadLocalRandom.current().nextDouble())
{
checksum.update(compressed, 0, compressed.length - checksumBytes.length);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org