diff options
author | Joey Hess <joey@kitenet.net> | 2013-03-11 10:10:17 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-03-11 10:10:17 -0400 |
commit | de5c24518b878322cd883ab4d4cfb46d07dbdce3 (patch) | |
tree | 0ed7ee3ee5af4eb892189b01c27ccccd213c94c9 /doc | |
parent | 3e22336428eed74ac28f56339c8a64f3bcfe0232 (diff) |
an (important) thought
Diffstat (limited to 'doc')
-rw-r--r-- | doc/bugs/smarter_flood_filling.mdwn | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/doc/bugs/smarter_flood_filling.mdwn b/doc/bugs/smarter_flood_filling.mdwn new file mode 100644 index 000000000..cfff3698f --- /dev/null +++ b/doc/bugs/smarter_flood_filling.mdwn @@ -0,0 +1,27 @@ +The assistant performs a flood fill, sending every file to every remote +that will have it. This is naive, but it's a good way to ensure the file +gets to every corner of the repo network that it possibly can. + +However, this means that locally paired computers will still upload files +to a transfer repo, even when they're next to each other and that +is a massive waste of bandwidth. + +It occurred to me this morning that there is a simple change that can avoid +this. + +1. Ensure that locally paired computers have a lower cost than network + transfer remotes. +2. When queuing uploads, queue transfers to the lowest cost remotes first. +3. Just before starting a transfer, re-check if the transfer is still wanted. + +Now, unnecessary transfers to tranfer repos are avoided if it can send +the file locally instead. + +It doesn't solve it for all network topologies of course. If there +are three computers paired in a line "A --- B --- C", and all 3 share +a transfer repo, A will still send to both B and the transfer repo +even though B can reach C via a faster route. + +See also: [[assistant does not always use repo cost info when queueing downloads]] + +[[!tag /design/assistant]] |