git-annex/Types
Joey Hess 9483b10469
cache one more log file for metadata
My worry was that a preferred content expression that matches on metadata
would have removed the location log from cache, causing an expensive
re-read when a Seek action later checked the location log.

Especially when the --all optimisation in the previous commit
pre-cached the location log.

This also means that the --all optimisation could cache the metadata log
too, if it wanted too, but not currently done.

The cache is a list, with the most recently accessed file first. That
optimises it for the common case of reading the same file twice, eg a
get, examine, followed by set reads it twice. And sync --content reads the
location log 3 times in a row commonly.

But, as a list, it should not be made to be too long. I thought about
expanding it to 5 items, but that seemed unlikely to be a win commonly
enough to outweigh the extra time spent checking the cache.

Clearly there could be some further benchmarking and tuning here.
2020-07-07 14:18:55 -04:00
..
ActionItem.hs wip RawFilePath 2x git-annex find speedup 2019-11-26 16:01:58 -04:00
AdjustedBranch.hs adjust --lock: This enters an adjusted branch where files are locked. 2019-09-27 14:23:25 -04:00
Availability.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Backend.hs change retrieveExport and getKey to throw exception 2020-05-15 13:45:53 -04:00
Benchmark.hs benchmark: Add --databases to benchmark sqlite databases 2019-10-29 16:59:27 -04:00
BranchState.hs cache one more log file for metadata 2020-07-07 14:18:55 -04:00
CatFileHandles.hs cat-file resource pool 2020-04-20 15:19:31 -04:00
CleanupActions.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Command.hs make WorkerStage an open type 2019-06-19 13:05:03 -04:00
Concurrency.hs cat-file resource pool 2020-04-20 15:19:31 -04:00
Creds.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Crypto.hs external: SETCREDS include creds in externalConfigChanges 2020-06-16 17:24:24 -04:00
DeferredParse.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
DesktopNotify.hs remove many old version ifdefs 2019-07-05 15:09:37 -04:00
Difference.hs annex.addunlocked expressions 2019-12-20 15:56:25 -04:00
Distribution.hs annex.addunlocked expressions 2019-12-20 15:56:25 -04:00
Export.hs wip RawFilePath 2019-11-25 16:18:19 -04:00
FileMatcher.hs convert TopFilePath to use RawFilePath 2019-12-09 15:07:21 -04:00
GitConfig.hs annex.skipunknown with transition plan 2020-05-28 15:55:17 -04:00
Group.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Import.hs wip RawFilePath 2019-11-25 16:18:19 -04:00
IndexFiles.hs cache annex index filename for 1.5% speedup to queries 2020-04-10 13:37:04 -04:00
Key.hs wip RawFilePath 2x git-annex find speedup 2019-11-26 16:01:58 -04:00
KeySource.hs convert KeySource to RawFilePath 2020-02-21 10:04:44 -04:00
LockCache.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Messages.hs get rid of implicitMessages state 2019-06-12 14:01:41 -04:00
MetaData.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Mime.hs Added mimeencoding= term to annex.largefiles expressions. 2019-04-30 12:17:22 -04:00
NumCopies.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
ProposedAccepted.hs separate RemoteConfig parsing basically working 2020-01-14 12:35:08 -04:00
RefSpec.hs ByteString Ref continued 2020-04-07 11:54:27 -04:00
Remote.hs simplify interface by removing size 2020-07-03 14:22:22 -04:00
RemoteConfig.hs GETCONFIG name fix 2020-03-09 12:38:04 -04:00
RemoteState.hs improve comment 2020-01-06 12:53:09 -04:00
RepoVersion.hs
ScheduledActivity.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
StandardGroups.hs a few forgotten remote config fields 2020-01-15 11:22:36 -04:00
StoreRetrieve.hs make removeKey throw exceptions 2020-05-14 14:11:05 -04:00
Test.hs remove many old version ifdefs 2019-07-05 15:09:37 -04:00
Transfer.hs wip RawFilePath 2x git-annex find speedup 2019-11-26 16:01:58 -04:00
TrustLevel.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
UrlContents.hs remove SafeFilePath 2020-05-11 14:04:56 -04:00
UUID.hs support boolean git configs that are represented by the name of the setting with no value 2020-04-13 13:35:22 -04:00
View.hs test: Fix some test cases that assumed git's default branch name 2020-06-23 16:40:51 -04:00
WorkerPool.hs improve transfer stages for some commands 2020-05-26 11:55:50 -04:00