2012-02-02 18 views
7

私はguava v.11.0.1でBloomFilterを使用していましたが、挿入が大きいときに例外が発生しているようです。私は1000万で0.001 fppで試してみましたが、失敗しました。Guava Bloom Filterは大きな挿入をサポートしていませんか?

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で多くの挿入をサポートすべきだと思います。

答えて

9

これについては申し訳ありませんが、私が犯人だ:)

うまくいけば、我々はすぐに次のバージョンをプッシュすることができます。これを言及する時間ではなく、この事故の可能性がある:それは私がBFの現在のシリアル形式と関連するサポートコード(事故そのものだった)を間違いなく殺すことができることを意味する。私は修正しようとしている。for a month now - それに付随してこの問題も修正されています。

編集:より多くの情報here(とルイの提出された問題)を提出するため

5

これはおそらく、StackOverflowではなく、Guavaの問題として提出する必要があります。 (私はそれを確認していますが、私はほとんど何が起こっているか把握しています)

更新:私はissueを提出してパッチを出しました。

+0

申し訳ありませんああ、ありがとう! –

関連する問題