summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-09-05 16:28:00 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-09-05 16:28:00 -0400
commit4d44f2f737c6c10d3a9be3cfb48ea89ca6cf6e43 (patch)
tree0eba16476b8cebe56a5c9b79c3c7f9ce0844b93d
parent8dac6c1a760e93f62c9de493217e416a4d1df9e2 (diff)
todo
-rw-r--r--doc/todo/get_round_robin.mdwn22
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.