From 4d44f2f737c6c10d3a9be3cfb48ea89ca6cf6e43 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 5 Sep 2016 16:28:00 -0400 Subject: todo --- doc/todo/get_round_robin.mdwn | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 doc/todo/get_round_robin.mdwn 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. -- cgit v1.2.3