jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Greg Schueler (JIRA)" <j...@apache.org>
Subject [jira] Created: (JCR-2173) Inefficient spooling from File DataStore to Webdav servlet response
Date Fri, 26 Jun 2009 18:45:47 GMT
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.

View raw message