cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stu Hood (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CASSANDRA-1555) Considerations for larger bloom filters
Date Mon, 06 Dec 2010 01:14:12 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-1555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12967060#action_12967060
] 

Stu Hood commented on CASSANDRA-1555:
-------------------------------------

* If BloomFilter is likely to be deprecated in favor of BigBloomFilter, naming them LegacyBloomFilter
and BloomFilter might reduce the surface area of future changes
* Probably a good opportunity to improve the serialization of BigBloomFilter: Java serialization
is very wasteful for space (each row would contain the string "org.apache.cassandra.utils.obs.OpenBitSet").
Instead, just serializing an OpenBitSet as a {{long[]}} and # of valid bits would be much
better
* (Big)BloomFilter
  * maxBucketsPerElement can be pushed up into Filter
  * getFilter could probably be pushed up to filter, or at least removed from BloomFilter
  * emptyBuckets is unused
* Orphaned method BigBloomFilter.serializeBitSet
* Indentation is off in SSTableReader and BigBloomFilter

I'm working on a separate issue to refresh LegacySSTableTest to check the column-level bloom
filters as well: see CASSANDRA-1822

> Considerations for larger bloom filters
> ---------------------------------------
>
>                 Key: CASSANDRA-1555
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1555
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Stu Hood
>            Assignee: Ryan King
>             Fix For: 0.8
>
>         Attachments: cassandra-1555.tgz, CASSANDRA-1555v2.patch
>
>
> To (optimally) support SSTables larger than 143 million keys, we need to support bloom
filters larger than 2^31 bits, which java.util.BitSet can't handle directly.
> A few options:
> * Switch to a BitSet class which supports 2^31 * 64 bits (Lucene's OpenBitSet)
> * Partition the java.util.BitSet behind our current BloomFilter
> ** Straightforward bit partitioning: bit N is in bitset N // 2^31
> ** Separate equally sized complete bloom filters for member ranges, which can be used
independently or OR'd together under memory pressure.
> All of these options require new approaches to serialization.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message