Skip to content
Commit 7890d280 authored by Ross Lagerwall's avatar Ross Lagerwall
Browse files

sftp: Implement push support

Implement sftp push support with a sliding window to improve the speed
of sftp uploads.

The implementation is based on the one from the OpenSSH sftp client.  It
uses up to 64 outstanding write requests where each request is 32KiB in
size which gives a maximum theoretical bandwidth of 2MiB per RTT.

This patch results in substantial performance improvments, especially
for high-latency links.

Some benchmark figures:
Old behavior:
Copying from local server = 6.1MB/s
Copying from local server with 250ms of RTT latency = 0.249MB/s
Copying many small files with 250ms of RTT latency = 0.93 files per
second

New behavior:
Copying from local server = 12.2MB/s
Copying from local server with 250ms of RTT latency = 6.2MB/s
Copying many small files with 250ms of RTT latency = 1.24 files per
second

OpenSSH sftp client:
Copying from local server = 12.8MB/s
Copying from local server with 250ms of RTT latency = 6.7MB/s
Copying many small files with 250ms of RTT latency = 1.33 files per
second

https://bugzilla.gnome.org/show_bug.cgi?id=523015
parent 9d90065b
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment