git-annex/P2P
Joey Hess a2f4a8eddf
proxying GET now working
Memory use is small and constant; receiveBytes returns a lazy bytestring
and it does stream.

Comparing speed of a get of a 500 mb file over proxy from origin-origin,
vs from the same remote over a direct ssh:

joey@darkstar:~/tmp/bench/client>/usr/bin/time git-annex get bigfile --from origin-origin
get bigfile (from origin-origin...)
ok
(recording state in git...)
1.89user 0.67system 0:10.79elapsed 23%CPU (0avgtext+0avgdata 68716maxresident)k
0inputs+984320outputs (0major+10779minor)pagefaults 0swaps

joey@darkstar:~/tmp/bench/client>/usr/bin/time git-annex get bigfile --from direct-ssh
get bigfile (from direct-ssh...)
ok
1.79user 0.63system 0:10.49elapsed 23%CPU (0avgtext+0avgdata 65776maxresident)k
0inputs+1024312outputs (0major+9773minor)pagefaults 0swaps

So the proxy doesn't add much overhead even when run on the same machine as
the client and remote.

Still, piping receiveBytes into sendBytes like this does suggest that the proxy
could be made to use less CPU resouces by using `sendfile()`.
2024-06-11 15:09:43 -04:00
..
Address.hs Windows: Support long filenames in more (possibly all) of the code 2023-03-01 15:55:58 -04:00
Annex.hs disk free checking for unsized keys 2024-01-16 14:29:10 -04:00
Auth.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
IO.hs git-annex-shell: block relay requests 2024-06-10 14:16:27 -04:00
Protocol.hs factor out helper functions 2024-06-11 12:04:58 -04:00
Proxy.hs proxying GET now working 2024-06-11 15:09:43 -04:00