Changes between Version 21 and Version 22 of FileCompression


Ignore:
Timestamp:
Jan 31, 2012, 12:39:34 AM (12 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FileCompression

    v21 v22  
    44== BOINC-supplied compression ==
    55=== Compression of input files === #compress-input
    6 Starting with version 5.4, the BOINC client is able to handle HTTP `Content-Encoding` types 'deflate'
    7 (zlib algorithm) and 'gzip' (gzip algorithm).
    8 The client decompresses these files 'on the fly' and stores them on disk in uncompressed form.
    9 This can be used in the following two ways.
    10 
    11 Both methods store files uncompressed on the client.
    12 If you need compression on the client, you must do it at the application level (see below).
    13 
    14 ==== gzip encoding ====
    15 To use this method, gzip your downloadable files, giving them a filename suffix such as '.gz'.
    16 (The name used in your `<file_info>` elements, however, is the original filename without '.gz').
    17 
    18 This method has the advantage of reducing server disk usage and server CPU load,
    19 but it will only work with 5.4+ clients.
    20 BOINC clients older than 5.4 won't be able to download files.
    21 Use the 'min_core_client_version' entry in config.xml to enforce this.
    22 
    23 {{{
    24 # Add encoding type
    25 AddEncoding x-gzip .gz
    26 
    27 Alias /boinc/download /path/to/files/download
    28 
    29 <Directory /path/to/files/download>
    30 Options Indexes FollowSymlinks MultiViews
    31 AllowOverride AuthConfig
    32 Order allow,deny
    33 Allow from all
    34 
    35 RewriteEngine on
    36 RewriteCond %{HTTP:Accept-Encoding} gzip.*deflate|deflate.*gzip
    37 RewriteCond %{REQUEST_FILENAME} "\.(vmdk|exe|dll|pdb)$"
    38 RewriteCond %{REQUEST_FILENAME}.gz -f
    39 RewriteRule ^.*$ %{REQUEST_URI}.gz [L]
    40 
    41 <FilesMatch ".*\.(vmdk|exe|dll|pdb)\.gz$">
    42 ForceType application/octet-stream
    43 Header set Content-Encoding gzip
    44 </FilesMatch>
    45 
    46 SetOutputFilter DEFLATE
    47 SetEnvIfNoCase Request_URI \.(?:gz|gif|jpg|jpeg|png)$ no-gzip dont-vary
    48 </Directory>
    49 }}}
    50 This configuration tells Apache to redirect to the statically compressed files
    51 if the extension is vmdk, exe, dll, or pdb.
    52 All other files are compressed on-the-fly from the download directory except for files
    53 that end with `gz`,`gif`,`jpg`,`jpeg` and `png`.
    54 
    55 An alternate way to specify the files is the following:
    56 {{{
    57 Alias /boinc/download /path/to/files/download
    58 
    59 <Directory /path/to/files/download>
    60 AddOutputFilter DEFLATE .faa .mask
    61 </Directory>
    62 }}}
    63 This configuration tells Apache to compress only the file types `.faa` and `.mask`
    64 served from the download directory.
    65 ==== Apache mod_deflate ====
    66 You can use the Apache 2.0 mod_deflate module to automatically compress files on the fly.
    67 See http://httpd.apache.org/docs/2.0/mod/mod_deflate.html.
    68 This method will work with all BOINC clients, but it will do compression only for 5.4+ clients.
    69 
    70 You can use this in conjunction with gzip encoding because the mod_deflate module
    71 allows you to exempt certain filetypes from on-the-fly compression.
    72 
    73 This method increases CPU load on the web server, but this is typically not significant.
    74 
    75 You'll need to modify your `httpd.conf` file; example:
    76 
    77 {{{
    78 # Enable module
    79 LoadModule deflate_module modules/mod_deflate.so
    80 
    81 # Log file compression
    82 DeflateFilterNote Input instream
    83 DeflateFilterNote Output outstream
    84 DeflateFilterNote Ratio ratio
    85 
    86 LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
    87 CustomLog logs/deflate_log deflate
    88 
    89 # Use low settings for compression to make sure impact on server is low
    90 DeflateMemLevel 2
    91 DeflateCompressionLevel 2
    92 }}}
    93 
     6
     7The BOINC client can handle compressed downloads
     8using both the gzip and mod_default mechanisms supported by Apache.
     9However, resumption of interrupted downloads doesn't work
     10with either of these methods, so we don't recommend using them.
     11
     12For [AppVersionNew application version files], you can specify a '''<gzip/>''' flag.
     13This will cause the file to be transferred in compressed form to 7.0+ clients.
     14
     15If there is demand, we will extend this mechanism to
     16work for job input files also.
    9417
    9518=== Compression of output files === #compress-output
     
    319242
    320243}}}
     244