-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Work with Cyberduck on transfer tuning #86
Comments
they are using io streams You can find the implementation at [1] which uses the IRODSFileFactory interface. This is the best option for us as it allows us to pipe the stream through our standard I/O shared with all protocols. I have written an alternative implementation that uses the DataTransferOperations interface [2] but couldn’t test it due to the iRODS maintenance window today. — David [1] https://svn.cyberduck.io/trunk/source/ch/cyberduck/core/irods/IRODSWriteFeature.java |
I can confirm that my tests show the DataTransferOperations interface gives us regular upload performance. Although still not what we achieve with multipart uploads to S3 or OpenStack Swift. |
See also #87. |
David, checking in on this, is the current status that Cyberduck is using streaming I/o for download? This would be better to do using the DataTransferOperations 'get' method. I/O streaming is something that we'll be working on in 4.1, and actually has more to do with core server tuning. I am happy to help this week to code with you guys to get us on 'get' processing versus streaming download. Also trying to go thru some of these other issues to get to a release this week. |
Just curious why the status callback is a blocker? I can take a look tomorrow, but I have to prioritize. |
re IRODS v Swift? iRODS performance is related to a number of factors that don't have anything to do with DataTransferOperations..e.g. is there replication happening? Server side policies being applied as files are uploaded? Current load/scale of grid? Comparisons between systems is, alas, often apples to oranges, the better benchmark will be between Cyberduck and bare iput/iget operations. It can even be a question of what sort of checksum validation is being done for individual file transfers... With the Java API we tend to run 10-15% overhead over the pure C transfers, but are doing more things as part of the process (including checksum verification, the level of granularity of callbacks, etc). Depending on the network and topology we can also see faster performance than other protocols.... |
We have set |
I see that. I've got the cyberduck out of svn and am working now on So as it stands, I see the various functions implemented as subclasses, I hope to do some testing against known servers here, so I can get a good Cheers On Fri, Apr 24, 2015 at 10:14 AM, David Kocher [email protected]
|
You can enable the download and upload features override using the patch below. This will disable the stream based transfers and instead use the functionality from the
|
Appears to duplicate several other issues. Looks like get was not being called, instead using i/o streams. Get was turned off because of an incorrect length on the first intra-file status callback, but that issue was separately fixed. Let's evaluate the get performance using DataTransferOperations versus streaming i/o and we can review any outstanding issues. |
see
https://trac.cyberduck.io/ticket/8720
Make sure they are using parallel transfer versus output stream and work on tuning
The text was updated successfully, but these errors were encountered: