[ https://issues.apache.org/jira/browse/SSHD-812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16433898#comment-16433898 ]
Goldstein Lyor commented on SSHD-812: ------------------------------------- I have looked over the code you mentioned, and it looks promising. I apologize that I do not have enough time to really figure out how it achieves the duality we discussed (i.e., allow for both synch. and async. implementations) - I trust your judgement in this. There are still a few issues we need to make sure we cover in full before we release it into the wild: * The good-old-and-trusty robust code is still there - we did not degrade the reliability. I am not sure how we achieve this, except for rigorous scrutiny of the code (for which I do not expect to have time in the upcoming weeks). * The issue of version setting in a concurrent environment (see one of my previous comments on this issue) - basically, some assurance that until the {{SSH_FXP_INIT}} command has been received we work synchronously - i.e., process one command at a time. Only after having (successfully) processed the initialization command do we "go wild" and work asynchronously * How should the user signal which implementation to activate ? I am totally fine with having 2 *separate* concrete classes and let the user decide which to use in the {{SftpSubsystemFactory}}. In this context we should decide on some preferred default (my vote goes to the synch. implementation) * What about the client side - should we open a followup issue to provide asynch. implementations - at least for read/write/upload/download of large chunks of data ? > support asynchronous mode for sftp subsystem > -------------------------------------------- > > Key: SSHD-812 > URL: https://issues.apache.org/jira/browse/SSHD-812 > Project: MINA SSHD > Issue Type: New Feature > Affects Versions: 1.7.0 > Environment: java1.8, linux > Reporter: Zhenliang Su > Assignee: Goldstein Lyor > Priority: Minor > Labels: asynchronous, sftp > Attachments: Main.java, doRead.png > > > I used SSHD as a middleman between client and target sftp server. > I found that, when filezilla client directly connect to the target sftp > server, it transfers fast. When filezilla client connect to the middleman, it > transfers slow. > I analyzed the source code of > org.apache.sshd.server.subsystem.sftp.SftpSubsystem#doRead, and I found it > behaves like block mode, and client's other SSH_FXP_READ request blocked in > the same thread. > > my middleman code: > [^Main.java] > -- This message was sent by Atlassian JIRA (v7.6.3#76005)