use P2P protocol for drop

Not yet used for everything else, but this is enough to
verify that it works, and do some benchmarking.

Some bugfixes included, which got it working. Also fallback to old
actions has been verified to work correctly.

Benchmarked dropping one thousand files from a ssh remote on localhost.
Using the old git-annex	40.867 seconds.
With the P2P protocol	9.905 seconds!

This commit was sponsored by Jochen Bartl on Patreon.
This commit is contained in:
Joey Hess 2018-03-08 16:21:16 -04:00
parent 16af259209
commit 6a59bc4845
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
5 changed files with 39 additions and 30 deletions

View file

@ -40,3 +40,7 @@ Implementation todos:
git-annex-shell recvkey has a speed optimisation, when it's told the file
being sent is locked, it can avoid an expensive verification.
* Maybe similar for transfers in the other direction?
* What happens when the assistant is running and some connections are open
and it moves between networks?
* If it's unable to ssh to a host to run p2pstdio, it will fall back to the
old method. What if the host is down, does this double the timeout?