Rather than crashing when there's a problem with the requested bloomfilter capacity/accuracy, fall back to a reasonable default bloom filter size.
This commit is contained in:
parent
eb26f00c04
commit
7482166180
3 changed files with 10 additions and 3 deletions
|
@ -189,7 +189,12 @@ bloomBitsHashes :: Annex (Int, Int)
|
|||
bloomBitsHashes = do
|
||||
capacity <- bloomCapacity
|
||||
accuracy <- bloomAccuracy
|
||||
return $ suggestSizing capacity (1/ fromIntegral accuracy)
|
||||
case safeSuggestSizing capacity (1 / fromIntegral accuracy) of
|
||||
Left e -> do
|
||||
warning $ "bloomfilter " ++ e ++ "; falling back to sane value"
|
||||
-- precaulculated value for 500000 (1/1000)
|
||||
return (8388608,10)
|
||||
Right v -> return v
|
||||
|
||||
{- Creates a bloom filter, and runs an action, such as withKeysReferenced,
|
||||
- to populate it.
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
module Utility.Bloom (
|
||||
Bloom,
|
||||
suggestSizing,
|
||||
safeSuggestSizing,
|
||||
Hashable,
|
||||
cheapHashes,
|
||||
notElemB,
|
||||
|
@ -25,7 +25,7 @@ import qualified Data.BloomFilter as Bloom
|
|||
#else
|
||||
import qualified Data.BloomFilter as Bloom
|
||||
#endif
|
||||
import Data.BloomFilter.Easy (suggestSizing, Bloom)
|
||||
import Data.BloomFilter.Easy (safeSuggestSizing, Bloom)
|
||||
import Data.BloomFilter.Hash (Hashable, cheapHashes)
|
||||
import Control.Monad.ST.Safe (ST)
|
||||
|
||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -20,6 +20,8 @@ git-annex (5.20140832) UNRELEASED; urgency=medium
|
|||
the repository, rather than just the file's base name. Note that if you're
|
||||
relying on such things to keep files separate with WORM, you should really
|
||||
be using a better backend.
|
||||
* Rather than crashing when there's a problem with the requested bloomfilter
|
||||
capacity/accuracy, fall back to a reasonable default bloom filter size.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Thu, 04 Sep 2014 16:17:22 -0400
|
||||
|
||||
|
|
Loading…
Reference in a new issue