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 2013/01/07 16:40:32 UTC
[1/3] git commit: disallow bloom filter false positive chance of 0
patch by jbellis and brandonwilliams for CASSANDRA-5013
disallow bloom filter false positive chance of 0
patch by jbellis and brandonwilliams for CASSANDRA-5013
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dac6048c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dac6048c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dac6048c
Branch: refs/heads/cassandra-1.2
Commit: dac6048c50a8dff0b4522c669c2f7115876483eb
Parents: 3d787b7
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Jan 4 12:16:33 2013 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Mon Jan 7 09:36:41 2013 -0600
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/config/CFMetaData.java | 6 +++++-
.../apache/cassandra/io/sstable/SSTableWriter.java | 10 +---------
3 files changed, 7 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dac6048c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 95aad22..78643d5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
1.2.1
+ * disallow bloom filter false positive chance of 0 (CASSANDRA-5013)
* add threadpool size adjustment methods to JMXEnabledThreadPoolExecutor and
CompactionManagerMBean (CASSANDRA-5044)
* Improve handling a changing target throttle rate mid-compaction (CASSANDRA-5087)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dac6048c/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 3a2e2b6..5f6c1fe 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -536,7 +536,8 @@ public final class CFMetaData
public double getBloomFilterFpChance()
{
- return bloomFilterFpChance == null
+ // we disallow bFFPC==null starting in 1.2.1 but tolerated it before that
+ return (bloomFilterFpChance == null || bloomFilterFpChance == 0)
? compactionStrategyClass == LeveledCompactionStrategy.class ? 0.1 : 0.01
: bloomFilterFpChance;
}
@@ -1125,6 +1126,9 @@ public final class CFMetaData
validateCompactionThresholds();
+ if (bloomFilterFpChance != null && bloomFilterFpChance == 0)
+ throw new ConfigurationException("Zero false positives is impossible; bloom filter false positive chance bffpc must be 0 < bffpc <= 1");
+
return this;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dac6048c/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
index a3a8fe9..f578064 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
@@ -442,15 +442,7 @@ public class SSTableWriter extends SSTable
!DatabaseDescriptor.populateIOCacheOnFlush());
builder = SegmentedFile.getBuilder(DatabaseDescriptor.getIndexAccessMode());
summary = new IndexSummary(keyCount);
-
- double fpChance = metadata.getBloomFilterFpChance();
- if (fpChance == 0)
- {
- // paranoia -- we've had bugs in the thrift <-> avro <-> CfDef dance before, let's not let that break things
- logger.error("Bloom filter FP chance of zero isn't supposed to happen");
- fpChance = 0.01;
- }
- bf = FilterFactory.getFilter(keyCount, fpChance, true);
+ bf = FilterFactory.getFilter(keyCount, metadata.getBloomFilterFpChance(), true);
}
public void append(DecoratedKey key, RowIndexEntry indexEntry)