git-annex/Types
Joey Hess 579d9b60c1
improve concurrency of move/copy --from --to
Use separate stages for download and upload. In the common case where
it downloads the file from one remote and then uploads to the other,
those are by far the most expensive operations, and there's a decent
chance the two remotes bottleneck on different resources.

Suppose it's being run with -J2 and a bunch of 10 mb files. Two threads
will be started both downloading from the src remote. They will probably
finish at the same time. Then two threads will be started uploading to
the dst remote. They will probably take the same time as well. Before
this change, it would alternate back and forth, bottlenecking on src and dst.
With this change, as soon as the two threads start uploading to dst, two
more threads are able to start, downloading from src. So bandwidth to
both remotes is saturated more often.

Other commands that use transferStages only send in one direction at a
time. So the worker threads for the other direction will sit idle, and
there will be no change in their behavior.

Sponsored-by: Dartmouth College's DANDI project
2023-01-24 13:59:39 -04:00
..
ActionItem.hs
AdjustedBranch.hs
Availability.hs
Backend.hs
Benchmark.hs
BranchState.hs handle transitions with read-only unmerged git-annex branches 2021-12-28 13:23:32 -04:00
CatFileHandles.hs
CleanupActions.hs
Command.hs add --dry-run: New option 2022-08-03 11:16:04 -04:00
Concurrency.hs have setConcurrency stop any running git coprocesses 2021-11-19 12:00:39 -04:00
Creds.hs
Crypto.hs
DeferredParse.hs remove --backend from global options 2022-06-29 13:33:25 -04:00
DesktopNotify.hs
Difference.hs
Direction.hs improve concurrency of move/copy --from --to 2023-01-24 13:59:39 -04:00
Distribution.hs
Export.hs Fix a build failure with ghc 9.2.2 2022-05-02 14:21:48 -04:00
FileMatcher.hs
GitConfig.hs Fix annex.adviceNoSshCaching having no effect 2022-09-30 14:03:06 -04:00
Group.hs
Import.hs
IndexFiles.hs
Key.hs Typo fix unncessary -> unnecessary. 2022-08-20 09:40:19 -04:00
KeySource.hs
Link.hs
LockCache.hs
Messages.hs
MetaData.hs factor out Utility.Aeson.textKey 2022-03-02 18:24:06 -04:00
Mime.hs
NumCopies.hs prevent numcopies or mincopies being configured to 0 2022-03-28 15:20:34 -04:00
ProposedAccepted.hs
RefSpec.hs
Remote.hs all keys are still present on versioned remote after import of a tree 2022-10-11 13:05:40 -04:00
RemoteConfig.hs
RemoteState.hs
RepoVersion.hs
ScheduledActivity.hs
StallDetection.hs
StandardGroups.hs
StoreRetrieve.hs
Test.hs test: Add --test-debug option 2022-11-28 15:12:53 -04:00
Transfer.hs improve concurrency of move/copy --from --to 2023-01-24 13:59:39 -04:00
Transferrer.hs
TransferrerPool.hs
Transitions.hs handle transitions with read-only unmerged git-annex branches 2021-12-28 13:23:32 -04:00
TrustLevel.hs
Upgrade.hs split upgrade into v9 and v10 2022-01-19 13:09:33 -04:00
UrlContents.hs
UUID.hs
VectorClock.hs
View.hs
WorkerPool.hs improve concurrency of move/copy --from --to 2023-01-24 13:59:39 -04:00