Guava Bloom Filter не поддерживает большие вставки? - PullRequest
8 голосов
/ 02 февраля 2012

Я использовал BloomFilter в guava v.11.0.1, и кажется, что я получаю исключение, когда моя вставка велика. Я пробовал 10 миллионов с 0,001 fpp, и это не удалось.

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, не так ли?

Ответы [ 2 ]

9 голосов
/ 02 февраля 2012

Извините за это, я виновник:)

Надеюсь, мы скоро сможем запустить следующую версию.Не время упоминать это, но есть и обратная сторона этой аварии: это означает, что мы определенно можем уничтожить текущую последовательную форму BF и связанный с ней вспомогательный код (который был самой аварией), который я пытаюсь исправить в течение месяца - кстати, исправление этой проблемы также решает эту проблему.

Редактировать: больше информации здесь (и в иске Луи)

5 голосов
/ 02 февраля 2012

Вероятно, это следует указывать в качестве проблемы в Guava, а не в StackOverflow.(Между прочим, я подтверждаю это; и я в основном выяснил, что происходит.)

ОБНОВЛЕНИЕ: Я подал выпуск и запустил патч.

...