tomaswolf opened a new pull request, #307:
URL: https://github.com/apache/mina-sshd/pull/307

   If a client uses an SFTP buffer size greater than the maximum amount of data 
the server is willing to return for an individual read request, data will be 
delivered with "holes". For instance, if the server limit is 63kB, and the 
client uses a buffer size of 64kB, it will issue requests to read 64kb at 
offset 0, then 64kB at offset 65536, and so on. But it will get only 63kB at 
offset 0 and 63kB at offset 65536. When it notices that, it'll request the 
missing 1kB at offset 64512 synchronously.
   
   In a large file, this can lead to jumping back and forth in the file 
frequently if the client issues new requests after having read missing data, 
because the very next read again will be short, but the server may have already 
skipped forward again to satisfy the new requests.
   
   Avoid that by not issuing new requests until the client has caught up. That 
way, the server has to move backwards in the file far less often and can serve 
the data much faster and smoother.
   
   (An alternative or additional improvement in this area might be to make the 
server-side implementation smarter about re-ordering read requests. The current 
implementation just serves them as they come, but the SFTP draft RFCs 
explicitly allow some re-ordering. The server could use a priority queue 
ordered by offset, trying on _its_ side to avoid excessive back and forth. Some 
care would have to be taken to deal with overlapping read and write requests.)
   
   Fixes #293.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to