diff options
author | Joey Hess <joey@kitenet.net> | 2012-03-12 16:18:14 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-03-12 16:18:35 -0400 |
commit | 25809ce2e0861a54ec63a414037b95fe29acc6df (patch) | |
tree | 0aae10e37dc9c430ce4c182b686772f9504fb332 /Command/Status.hs | |
parent | faf3a94fa7dfaaf7f95477895c645ff793dcf2f4 (diff) |
finish bloom filters
Add tuning, docs, etc.
Not sure if status is the right place to remote size.. perhaps unused
should report the size and also warn if it sees more keys than the bloom
filter allows?
Diffstat (limited to 'Command/Status.hs')
-rw-r--r-- | Command/Status.hs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/Command/Status.hs b/Command/Status.hs index 0b1741dc0..eadb4f163 100644 --- a/Command/Status.hs +++ b/Command/Status.hs @@ -76,6 +76,7 @@ slow_stats = , local_annex_size , known_annex_keys , known_annex_size + , bloom_info , backend_usage ] @@ -127,7 +128,7 @@ remote_list level desc = stat n $ nojson $ lift $ do return $ if null s then "0" else show (length rs) ++ "\n" ++ beginning s where n = desc ++ " repositories" - + local_annex_size :: Stat local_annex_size = stat "local annex size" $ json id $ showSizeKeys <$> cachedPresentData @@ -136,6 +137,22 @@ local_annex_keys :: Stat local_annex_keys = stat "local annex keys" $ json show $ countKeys <$> cachedPresentData +bloom_info :: Stat +bloom_info = stat "bloom filter size" $ json id $ do + localkeys <- countKeys <$> cachedPresentData + capacity <- fromIntegral <$> lift Command.Unused.bloomCapacity + let note = aside $ + if localkeys >= capacity + then "appears too small for this repository; adjust annex.bloomcapacity" + else "has room for " ++ show (capacity - localkeys) ++ " more local annex keys" + + -- Two bloom filters are used at the same time, so double the size + -- of one. + size <- roughSize memoryUnits True . (* 2) . fromIntegral . fst <$> + lift Command.Unused.bloomBitsHashes + + return $ size ++ note + known_annex_size :: Stat known_annex_size = stat "known annex size" $ json id $ showSizeKeys <$> cachedReferencedData |