2016-09-05 20:28:00 +00:00
|
|
|
`git annex get` always gets files from the remote with the lowest cost.
|
|
|
|
|
|
|
|
When two remotes have the same cost, it breaks the tie somehow,
|
|
|
|
and consistently prefers one of them over the other.
|
|
|
|
|
|
|
|
It would be nice if it instead round-robined amoung remotes with
|
|
|
|
the same cost that have the file. In particular, with -J2, and 2 remotes
|
|
|
|
A and B having each file, one thread could download from A and the other
|
|
|
|
from B. That might be much faster than the current behavior of two threads
|
|
|
|
downloading everything from A.
|
|
|
|
|
|
|
|
Maybe a way to implement it is to keep a list of recently used remotes,
|
|
|
|
and when starting a new get from a set of remotes that have the same cost,
|
|
|
|
prefer the remote that is futher down the recently used list (or not on it
|
|
|
|
at all). (Or, since git-annex has a remote list already, it could rotate
|
|
|
|
the remotes of the same cost whenever starting a download from one.)
|
|
|
|
|
|
|
|
While this would be a nice improvement to -J2 from network remotes,
|
|
|
|
it might not really be desirable when not run in parallel. In particular,
|
|
|
|
if A and B are on different spinning disks, then an access pattern of
|
|
|
|
A,B,A,B might keep the disks idle enough that they spin down in-between
|
|
|
|
access.
|
2016-09-06 16:42:50 +00:00
|
|
|
|
|
|
|
> done for `git annex get -JN` where two remotes have the same cost.
|
|
|
|
>
|
|
|
|
> Also for `git annex sync --content -JN` when downloading and two remotes
|
|
|
|
> have the same cost.
|
|
|
|
>
|
|
|
|
> Can't think of any other places that apply, except perhaps the assistant,
|
|
|
|
> but it does its own much different queuing of transfers. [[done]]
|
|
|
|
> --[[Joey]]
|