Inefficient spooling from File DataStore to Webdav servlet response
-------------------------------------------------------------------
Key: JCR-2173
URL: https://issues.apache.org/jira/browse/JCR-2173
Project: Jackrabbit Content Repository
Issue Type: Improvement
Components: jackrabbit-webdav
Affects Versions: 1.5.6
Environment: Jetty 6.1.14 server
Reporter: Greg Schueler
When downloading large files (200MB+) via webdav, there is a long delay in the
request prior to the first response happening.
I think the problem is that the webdav servlet is first copying the file out of
the datastore into a temporary file, and then using that temporary file as the
source for streaming the response to the client.
1. The DefaultHandler IOHandler spools the data from the content Node to the
ExportContext's output stream
2. The ExportContext simply uses a temporary file to write the data to
3. Once written to a temp file the ExportContext then spools the content of the
file to the OutputContext's output stream (the HTTP response).
So in the case of a large file, the entire content must be written to a temp
file before any data is sent to the HTTP response, taking up both extra time
for both parties, and disk space on the server.
When using the File DataStore, the content is already in a file, and should
simply be spooled to the HTTP response
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.