[tahoe-dev] [tahoe-lafs] #994: support precompressed files

tahoe-lafs trac at allmydata.org
Thu Mar 11 22:29:42 PST 2010


#994: support precompressed files
--------------------------------------------+-------------------------------
 Reporter:  davidsarah                      |           Owner:  somebody 
     Type:  enhancement                     |          Status:  new      
 Priority:  major                           |       Milestone:  undecided
Component:  code                            |         Version:  1.6.0    
 Keywords:  compress performance integrity  |   Launchpad_bug:           
--------------------------------------------+-------------------------------
 A "precompressed file" is a file where the plaintext has been compressed
 using an algorithm supported by HTTP (gzip or deflate -- we'd probably
 support only one). When the file is served via the webapi, it is served in
 compressed form with the [http://tools.ietf.org/html/rfc2616#section-14.11
 Content-Encoding] HTTP header set appropriately. The Content-Encoding can
 also be set in a PUT or POST request to upload a precompressed file.

 Storage servers would be completely ignorant of precompressed files. The
 CLI, SFTP and FTP frontends would have to be decompress them. The gateway
 would also have to decompress if it receives an HTTP request that does not
 have an [http://tools.ietf.org/html/rfc2616#section-14.3 Accept-Encoding]
 header allowing the compression algorithm used for that file.

 This would provide a performance improvement as long as the HTTP clients
 have sufficient CPU capacity, that the time taken for them to decompress
 is outweighed by the savings in bandwidth. CPU-constrained clients
 (connecting to a less CPU-constrained gateway) are not a problem because
 they can just not set {{{Accept-Encoding}}}.

 This would rely on HTTP clients implementing decompression correctly; if
 they don't then there is a potential loss of integrity, and the
 possibility of attacks against the client from maliciously constructed
 compressed data. It is possible to protect against "decompression bombs"
 if that is required.

-- 
Ticket URL: <http://allmydata.org/trac/tahoe/ticket/994>
tahoe-lafs <http://allmydata.org>
secure decentralized file storage grid


More information about the tahoe-dev mailing list