【问题标题】:Guava Bloom Filter does not support large insertions?Guava Bloom Filter 不支持大插入?
【发布时间】:2012-02-24 17:10:27
【问题描述】:

我在 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)

我认为至少它应该支持这么多高 fpp 的插入,不是吗?

【问题讨论】:

    标签: guava bloom-filter


    【解决方案1】:

    这应该作为一个问题提交给 Guava,而不是 StackOverflow。 (顺便说一句,我确认了这一点;而且我基本上已经弄清楚发生了什么。)

    更新:我已经提交了issue 并启动了补丁。

    【讨论】:

      【解决方案2】:

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

      希望我们能够尽快推出下一个版本。不是时候提这个了,但这次事故有一个好处:这意味着我们绝对可以杀死当前的 BF 串行形式及其相关的支持代码(这本身就是一个事故),我正在尝试修复 @987654321 @ - 顺便说一句,该修复也解决了这个问题。

      编辑:更多信息here(在 Louis 提交的问题中)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-11
        • 1970-01-01
        • 2016-07-28
        • 1970-01-01
        相关资源
        最近更新 更多