D27504: WIP: RFC: smb faster copy to local
Harald Sitter
noreply at phabricator.kde.org
Wed Feb 19 14:41:44 GMT 2020
sitter created this revision.
sitter added reviewers: ngraham, cfeck.
Herald added projects: Dolphin, Frameworks.
Herald added subscribers: kfm-devel, kde-frameworks-devel.
sitter requested review of this revision.
REVISION SUMMARY
see https://bugs.kde.org/show_bug.cgi?id=291835#c57 for background
- reading now happens inside a future. should be safe since we don't have any other threads doing anything while we wait.
- the future feeds into a buffer from which the main thread will take file segments and write them to disk
- buffer has 4 segments and synchronizes the threads via wait conditions
- the size of a segment is determined somewhat dynamically between 64kb and 4mb. the larger a file is the more it benefits from larger read requests
under perfect conditions this yields approximately mount-level copy
performance, unfortunately those are hard to hit so on average it's usually
less (somewhere in the range of 10 to 20% depending on the actual file
size and server type).
compared to the old code this should more or less always be 100% faster for
large files.
multiple small files should see an equal improvement from what I've seen
copying my kio-extras dir around.
for some reason gains seem much greater against win10 servers, though that
may be because the test systems I've set up are not having equivalent IO
capabilities.
in general, all of the above only applies to cases where the server's disk
output will be able to saturate the request volume.
TODO: this probably also needs extending to smbCopy (remote<->remote) and
smbCopyPut (local->remote). smbcopy may need to not have threading though
since we'd use the same smb_context in two threads
TEST PLAN
- fallocate -l 1G file
- copy around
- copy kio-extras around
REPOSITORY
R320 KIO Extras
BRANCH
thread-read
REVISION DETAIL
https://phabricator.kde.org/D27504
AFFECTED FILES
smb/kio_smb_dir.cpp
To: sitter, ngraham, cfeck
Cc: kde-frameworks-devel, kfm-devel, pberestov, iasensio, fprice, LeGast00n, cblack, MrPepe, fbampaloukas, alexde, GB_2, Codezela, feverfew, meven, michaelh, spoorun, navarromorales, firef, ngraham, andrebarros, bruns, emmanuelp, mikesomov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20200219/3d481f90/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list