You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "J.B. Langston (JIRA)" <ji...@apache.org> on 2013/08/19 16:58:48 UTC

[jira] [Updated] (CASSANDRA-5900) Setting bloom filter fp chance to 1.0 causes ClassCastExceptions

     [ https://issues.apache.org/jira/browse/CASSANDRA-5900?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

J.B. Langston updated CASSANDRA-5900:
-------------------------------------

    Description: 
In 1.2, we introduced the ability to turn bloom filters off completely by setting fp chance to 1.0.  It looks like there is a bug with this though. When it's set to one the following errors occur because AlwaysPresentFilter is not present in the switch statement here at https://github.com/apache/cassandra/blob/cassandra-1.2/src/java/org/apache/cassandra/utils/FilterFactory.java#L91, and we default to Murmur3BloomFilter for an unknown type.

Exception in thread "main" java.lang.ClassCastException: org.apache.cassandra.utils.AlwaysPresentFilter cannot be cast to org.apache.cassandra.utils.Murmur3BloomFilter
at org.apache.cassandra.utils.FilterFactory.serializedSize(FilterFactory.java:91)
at org.apache.cassandra.io.sstable.SSTableReader.getBloomFilterSerializedSize(SSTableReader.java:531)
at org.apache.cassandra.metrics.ColumnFamilyMetrics$15.value(ColumnFamilyMetrics.java:273)
at org.apache.cassandra.metrics.ColumnFamilyMetrics$15.value(ColumnFamilyMetrics.java:268)
at org.apache.cassandra.db.ColumnFamilyStore.getBloomFilterDiskSpaceUsed(ColumnFamilyStore.java:1825)



  was:
In 1.2, we introduced the ability to turn SSTables off completely by setting fp chance to 1.0.  It looks like there is a bug with this though. When it's set to one the following errors occur because AlwaysPresentFilter is not present in the switch statement here at https://github.com/apache/cassandra/blob/cassandra-1.2/src/java/org/apache/cassandra/utils/FilterFactory.java#L91, and we default to Murmur3BloomFilter for an unknown type.

Exception in thread "main" java.lang.ClassCastException: org.apache.cassandra.utils.AlwaysPresentFilter cannot be cast to org.apache.cassandra.utils.Murmur3BloomFilter
at org.apache.cassandra.utils.FilterFactory.serializedSize(FilterFactory.java:91)
at org.apache.cassandra.io.sstable.SSTableReader.getBloomFilterSerializedSize(SSTableReader.java:531)
at org.apache.cassandra.metrics.ColumnFamilyMetrics$15.value(ColumnFamilyMetrics.java:273)
at org.apache.cassandra.metrics.ColumnFamilyMetrics$15.value(ColumnFamilyMetrics.java:268)
at org.apache.cassandra.db.ColumnFamilyStore.getBloomFilterDiskSpaceUsed(ColumnFamilyStore.java:1825)



    
> Setting bloom filter fp chance to 1.0 causes ClassCastExceptions
> ----------------------------------------------------------------
>
>                 Key: CASSANDRA-5900
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5900
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: J.B. Langston
>
> In 1.2, we introduced the ability to turn bloom filters off completely by setting fp chance to 1.0.  It looks like there is a bug with this though. When it's set to one the following errors occur because AlwaysPresentFilter is not present in the switch statement here at https://github.com/apache/cassandra/blob/cassandra-1.2/src/java/org/apache/cassandra/utils/FilterFactory.java#L91, and we default to Murmur3BloomFilter for an unknown type.
> Exception in thread "main" java.lang.ClassCastException: org.apache.cassandra.utils.AlwaysPresentFilter cannot be cast to org.apache.cassandra.utils.Murmur3BloomFilter
> at org.apache.cassandra.utils.FilterFactory.serializedSize(FilterFactory.java:91)
> at org.apache.cassandra.io.sstable.SSTableReader.getBloomFilterSerializedSize(SSTableReader.java:531)
> at org.apache.cassandra.metrics.ColumnFamilyMetrics$15.value(ColumnFamilyMetrics.java:273)
> at org.apache.cassandra.metrics.ColumnFamilyMetrics$15.value(ColumnFamilyMetrics.java:268)
> at org.apache.cassandra.db.ColumnFamilyStore.getBloomFilterDiskSpaceUsed(ColumnFamilyStore.java:1825)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira