Hello community, here is the log from the commit of package kio-extras5 for openSUSE:Factory checked in at 2018-10-01 08:11:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kio-extras5 (Old) and /work/SRC/openSUSE:Factory/.kio-extras5.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kio-extras5" Mon Oct 1 08:11:19 2018 rev:61 rq:636552 version:18.08.1 Changes: -------- --- /work/SRC/openSUSE:Factory/kio-extras5/kio-extras5.changes 2018-09-13 23:57:19.878139885 +0200 +++ /work/SRC/openSUSE:Factory/.kio-extras5.new/kio-extras5.changes 2018-10-01 08:11:21.110194548 +0200 @@ -1,0 +2,6 @@ +Wed Sep 19 05:43:04 UTC 2018 - Luca Beltrame <[email protected]> + +- Add upstream patch 0001-sftp-bump-pending-request-count-from-1-to-128.patch + * Increase sftp file reading speed up to 20 times + +------------------------------------------------------------------- New: ---- 0001-sftp-bump-pending-request-count-from-1-to-128.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kio-extras5.spec ++++++ --- /var/tmp/diff_new_pack.EDJHhJ/_old 2018-10-01 08:11:21.638194266 +0200 +++ /var/tmp/diff_new_pack.EDJHhJ/_new 2018-10-01 08:11:21.642194264 +0200 @@ -31,6 +31,8 @@ Source: kio-extras-%{version}.tar.xz Source99: %{name}-rpmlintrc Patch0: fix-mtp-paste-with-KF5-5.25.diff +# PATCH-FEATURE-UPSTREAM +Patch1: 0001-sftp-bump-pending-request-count-from-1-to-128.patch BuildRequires: OpenEXR-devel BuildRequires: flac-devel BuildRequires: gperf @@ -101,7 +103,7 @@ %prep %setup -q -n kio-extras-%{version} -%patch0 -p1 +%autopatch -p1 sed -i '/^add_subdirectory( doc )/d' CMakeLists.txt %build ++++++ 0001-sftp-bump-pending-request-count-from-1-to-128.patch ++++++ >From 40d962d80b6f2e9d04428c5d1944834de1208fac Mon Sep 17 00:00:00 2001 From: Harald Sitter <[email protected]> Date: Wed, 12 Sep 2018 16:58:04 +0200 Subject: [PATCH] [sftp] bump pending request count from 1 to 128 Summary: with the previous value we basically did sync reading which means that network and cyrptographic overhead head a huge impact on throughput. meanwhile the perfect way to use asyncness is to schedule a whole bunch of requests before starting to read. previously this was documented as auto-adjusting, which it never was, there's also little to be gained from adjusting this value on the fly. more requests in most scenarios will simply mean a larger RAM footprint as more data potentially sits in libssh waiting to be read. with 128 requests that'd be ~8mb (assuming the file transferred is that large) this improves read performance with libssh 0.8 by up to 20 times for large files. read performance with libssh 0.6 is 2 to 3 times better. the faster the connection the higher the gain of course. 128 gives somewhat competitive performance results compared to openssh's ssh implementations while not having too large a footprint. in raw numbers: a local link read was averaging around 10mb/s on both libssh versions. with 128 requests this goes up to 200. competitive is between 200 and 300 it seems (obviously all specific to my system) CHANGELOG: sftp file reading is now up to 20 times faster Reviewers: broulik Reviewed By: broulik Differential Revision: https://phabricator.kde.org/D15452 --- sftp/kio_sftp.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sftp/kio_sftp.h b/sftp/kio_sftp.h index cc6b9e09..e5639970 100644 --- a/sftp/kio_sftp.h +++ b/sftp/kio_sftp.h @@ -141,10 +141,11 @@ private: // Private variables * @param file the sftp_file object which should be transferred. * @param sb the attributes of that sftp_file object. * @param maxPendingRequests the maximum number of parallel requests to start with. - * The number will be adjusted automatically depending - * on the connection speed. + * The more are pending the higher the potential memory + * foot print, however if the connection allows it + * we'll get better throughput. */ - GetRequest(sftp_file file, sftp_attributes sb, ushort maxPendingRequests = 1); + GetRequest(sftp_file file, sftp_attributes sb, ushort maxPendingRequests = 128); /** * Removes all pending requests and closes the SFTP channel and attributes * in order to avoid memory leaks. -- 2.18.0
