use same hash directories for chunked key as are used for its parent

This avoids a proliferation of hash directories when using new-style
chunking, and should improve performance since chunks are accessed
in sequence and so should have a common locality.

Of course, when a chunked key is encrypted, its hash directories have no
relation to the parent key.

This commit was sponsored by Christian Kellermann.
This commit is contained in:
Joey Hess 2014-07-25 16:09:23 -04:00
parent 1755c5de40
commit 8f93982df6
3 changed files with 20 additions and 2 deletions

View file

@ -13,6 +13,8 @@ module Types.Key (
stubKey,
key2file,
file2key,
isChunkKey,
nonChunkKey,
prop_idempotent_key_encode,
prop_idempotent_key_decode
@ -47,6 +49,16 @@ stubKey = Key
, keyChunkNum = Nothing
}
isChunkKey :: Key -> Bool
isChunkKey k = isJust (keyChunkSize k) && isJust (keyChunkNum k)
-- Gets the parent of a chunk key.
nonChunkKey :: Key -> Key
nonChunkKey k = k
{ keyChunkSize = Nothing
, keyChunkNum = Nothing
}
fieldSep :: Char
fieldSep = '-'