Community
Participate
Working Groups
The FTP protocol uploads and downloads files using different channels, so uploading and downloading files concurrently should be supported. At the moment files are uploaded and downloaded sequentially but they could be transferred concurrently for better performance.
Assigning RC1 since it's a good enhancement request but won't change any UI.
Taking a look at the FTP protocol, although file data is transferred in separate data sockets, it requires the result code of the data transfer to be returned through the command socket, which can't be used in a concurrent way, as it confuses the ftp server. Having checked it in the Filezilla FTP client, even though it allows to select multiple files and folders to be sent/retrieved, the transfer is done in a sequence instead of concurrently. Any thoughts about it ?
Looking at FTP Clients like SmartFTP, I've got the impression that such clients typically open a configurable number of streams to the remote side in order to do downloads in parallel. Perhaps they open multiple command channels as well, I'm not sure. On a side note, here is a comparison of Java-based FTP clients, including Apache commons net: http://www.javaworld.com/javaworld/jw-04-2003/jw-0404-ftp.html?page=1 Here is the follow-up article regarding Performance of those libraries: http://www.javaworld.com/javaworld/jw-03-2006/jw-0306-ftp.html And here is a comparison of FTP clients on Wikipedia: http://en.wikipedia.org/wiki/Comparison_of_FTP_clients Since it looks like the enhancement is not trivial, I'd like to defer this to the future. What's important to check now, though, is that when a user selects a large file for download and then tries downloading another one on the same connection, the downloads are serialized (i.e. Mutex must wait long enough). But this has been adressed already, I think.
This improvement should consider comment 9 of bug 199243, using openInputStream() / openOutputStream() methods for upload and download operations.