[ https://issues.apache.org/jira/browse/CASSANDRA-5903?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13745320#comment-13745320 ]
Vijay commented on CASSANDRA-5903: ---------------------------------- Not sure yet, still trying to figure it out (Since i am more curious)... A simple test shows it might run out after 17B to 18B keys in a single SSTable (thats a giant SST) :) {code} for (int i = 0; i < 30; i++) { long items = (i * 1000000000L); System.out.println("Items: " + items + " byteCount: " + (OpenBitSet.bits2words(items) * 8)); } {code} {noformat} Items: 0 byteCount: 0 Items: 1000000000 byteCount: 125000000 Items: 2000000000 byteCount: 250000000 Items: 3000000000 byteCount: 375000000 Items: 4000000000 byteCount: 500000000 Items: 5000000000 byteCount: 625000000 Items: 6000000000 byteCount: 750000000 Items: 7000000000 byteCount: 875000000 Items: 8000000000 byteCount: 1000000000 Items: 9000000000 byteCount: 1125000000 Items: 10000000000 byteCount: 1250000000 Items: 11000000000 byteCount: 1375000000 Items: 12000000000 byteCount: 1500000000 Items: 13000000000 byteCount: 1625000000 Items: 14000000000 byteCount: 1750000000 Items: 15000000000 byteCount: 1875000000 Items: 16000000000 byteCount: 2000000000 Items: 17000000000 byteCount: 2125000000 Items: 18000000000 byteCount: -2044967296 Items: 19000000000 byteCount: -1919967296 Items: 20000000000 byteCount: -1794967296 ... {noformat} > Integer overflow in OffHeapBitSet when bloomfilter > 2GB > -------------------------------------------------------- > > Key: CASSANDRA-5903 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5903 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Taylan Develioglu > Assignee: Vijay > Fix For: 1.2.9 > > > In org.apache.cassandra.utils.obs.OffHeapBitSet. > byteCount overflows and causes an IllegalArgument exception in > Memory.allocate when bloomfilter is > 2GB. > Suggest changing byteCount to long. > {code:title=OffHeapBitSet.java} > public OffHeapBitSet(long numBits) > { > // OpenBitSet.bits2words calculation is there for backward > compatibility. > int byteCount = OpenBitSet.bits2words(numBits) * 8; > bytes = RefCountedMemory.allocate(byteCount); > // flush/clear the existing memory. > clear(); > } > {code} -- 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