番石榴布隆过滤器不支持大插入?

kri*_*ala 8 bloom-filter guava

我在guava v.11.0.1中使用BloomFilter,当插入很大时,我似乎得到了一个异常.我用0.001 fpp尝试了1000万,但失败了.

java.lang.IllegalArgumentException: Number of bits must be positive
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
    at com.google.common.hash.BloomFilterStrategies.checkPositiveAndMakeMultipleOf64(BloomFilterStrategies.java:72)
    at com.google.common.hash.BloomFilterStrategies.access$000(BloomFilterStrategies.java:18)
    at com.google.common.hash.BloomFilterStrategies$From128ToN.withBits(BloomFilterStrategies.java:37)
    at com.google.common.hash.BloomFilter.create(BloomFilter.java:192)
    at com.ipg.collection.BloomFilterWritable.impl(BloomFilterWritable.java:43)
    at com.ipg.collection.BloomFilterWritable.put(BloomFilterWritable.java:62)
    at com.ipg.prophet.twitter.twitflow.archive.UnzipTweetsProcessAndUpload$ProcessorConsumer.process(UnzipTweetsProcessAndUpload.java:107)
    at com.ipg.prophet.twitter.twitflow.archive.UnzipTweetsProcessAndUpload$ProcessorConsumer.run(UnzipTweetsProcessAndUpload.java:84)
    at java.lang.Thread.run(Thread.java:662)
Run Code Online (Sandbox Code Playgroud)

我认为至少应该支持那么多具有如此高fpp的插入,不应该吗?

Dim*_*eou 9

对不起,我是罪魁祸首:)

希望我们能尽快推出下一个版本.不是时候提到这个,但是这次事故还有一个好处:这意味着我们绝对可以杀死当前的BF系列形式及其相关的支持代码(这本身就是一个意外),我正在努力解决这个问题.现在一个月 - 顺便说一句,修复它也解决了这个问题.

编辑:此处提供更多信息(以及路易斯提交的问题)


Lou*_*man 5

这可能应该在Guava上提交,而不是在StackOverflow上.(顺便提一下,我确认了一下;我大部分时间都在弄清楚发生了什么.)

更新:我已经提交了一个问题并开始修补.