2012-02-02 2 views
7

저는 구아 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를 가진 많은 삽입을 지원해야한다고 생각합니까?

답변

9

, 나는 범인 :

는 희망 우리가 곧 다음 버전을 밀어 수있을 것입니다. 언급 할 시간은 아니지만이 사고에 대한 단점이 있습니다. 즉, BF의 현재 직렬 형식과 관련 지원 코드 (사고 자체)를 확실히 삭제할 수 있음을 의미합니다. 이는 수정하기 위해 노력하고 있습니다. for a month now - 덧붙여 말하면이 문제는이 문제를 해결합니다.

편집 : 자세한 내용은 here (와 루이스 '제출 문제)을 제기

5

이것은 아마도 StackOverflow가 아닌 ​​Guava에서 문제로 제기해야합니다. (나는 그것을 확인하고, 어떻게 진행되는지 대부분 알아 냈습니다.)

업데이트 : issue을 제출하고 패치를 시작했습니다. 이것에 대해 죄송

+0

죄송합니다 아, 감사합니다! –

관련 문제