diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-09-05 16:28:00 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-09-05 16:28:00 -0400 |
commit | 4d44f2f737c6c10d3a9be3cfb48ea89ca6cf6e43 (patch) | |
tree | 0eba16476b8cebe56a5c9b79c3c7f9ce0844b93d | |
parent | 8dac6c1a760e93f62c9de493217e416a4d1df9e2 (diff) |
todo
-rw-r--r-- | doc/todo/get_round_robin.mdwn | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/todo/get_round_robin.mdwn b/doc/todo/get_round_robin.mdwn new file mode 100644 index 000000000..9fad9da9d --- /dev/null +++ b/doc/todo/get_round_robin.mdwn @@ -0,0 +1,22 @@ +`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. |