2004-06-09 19:09:16 +00:00
|
|
|
<?php
|
2003-08-19 06:44:58 +00:00
|
|
|
require_once("docutil.php");
|
|
|
|
page_head("Storage");
|
|
|
|
echo "
|
2002-09-10 17:04:05 +00:00
|
|
|
<h3>Files and data servers</h3>
|
2002-04-30 22:22:54 +00:00
|
|
|
<p>
|
2002-08-19 18:43:10 +00:00
|
|
|
The BOINC storage model is based on <b>files</b>.
|
2004-12-20 20:47:25 +00:00
|
|
|
Examples of files:
|
|
|
|
<ul>
|
|
|
|
<li> The inputs and outputs of applications;
|
|
|
|
<li> Application executables, libraries, etc.
|
|
|
|
</ul>
|
2002-09-10 17:04:05 +00:00
|
|
|
<p>
|
2004-12-20 20:47:25 +00:00
|
|
|
The BOINC core client transfers files to and from project-operated
|
|
|
|
<b>data servers</b> using HTTP.
|
2002-04-30 22:22:54 +00:00
|
|
|
<p>
|
2002-08-19 18:43:10 +00:00
|
|
|
Once a file is created (on a data server or a participant host) it
|
2004-12-20 20:47:25 +00:00
|
|
|
is <b>immutable</b>.
|
|
|
|
This means that all replicas of that file are assumed to be identical.
|
|
|
|
|
2006-06-09 20:47:09 +00:00
|
|
|
<a name=file_ref></a>
|
2004-12-20 20:47:25 +00:00
|
|
|
<h3>File management</h3>
|
|
|
|
<p>
|
|
|
|
BOINC's default behavior is to delete files around
|
|
|
|
when they aren't needed any more.
|
|
|
|
Specifically:
|
|
|
|
<ul>
|
|
|
|
<li> On the client, input files are deleted when no workunit refers to them,
|
|
|
|
and output files are deleted when no result refers to them.
|
|
|
|
Application-version files are deleted when they are referenced
|
|
|
|
only from superceded application versions.
|
|
|
|
<li> On the client, the 'sticky' flag overrides the above mechanisms
|
|
|
|
and suppresses the deletion of the file.
|
|
|
|
The file may deleted by an explicit
|
|
|
|
<a href=delete_file.php>server request</a>.
|
|
|
|
The file may also be deleted at any time by the core client
|
|
|
|
in order to honor limits on disk-space usage.
|
|
|
|
<li> On the server, the <a href=file_deleter.php>file deleter daemon</a>
|
|
|
|
deletes input and output files that are no longer needed.
|
|
|
|
This can be suppressed using the 'no_delete' flag,
|
|
|
|
or using command-line options to the file deleter.
|
|
|
|
</ul>
|
2006-02-25 00:21:39 +00:00
|
|
|
|
2006-06-09 20:47:09 +00:00
|
|
|
<a name=compression></a></a>
|
2006-02-25 00:21:39 +00:00
|
|
|
<h3>File compression</h3>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Starting with version 5.4, the BOINC client
|
|
|
|
is able to handle HTTP Content-Encoding types 'deflate' (zlib algorithm)
|
|
|
|
and 'gzip' (gzip algorithm).
|
|
|
|
The client decompresses these files 'on the fly' and
|
|
|
|
stores them on disk in uncompressed form.
|
|
|
|
<p>
|
|
|
|
Projects can set this encoding in two ways:
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
Use the Apache 2.0 mod_deflate module to automatically
|
|
|
|
compress files on the fly.
|
|
|
|
This method will work with all BOINC clients,
|
|
|
|
but it will do compression only for 5.4+ clients.
|
|
|
|
|
|
|
|
<li>
|
|
|
|
Compress their workunits when they create them and use
|
|
|
|
a filename suffix such as '.gz'.
|
|
|
|
In httpd.conf make sure that the following line is present:
|
|
|
|
<pre>
|
|
|
|
AddEncoding x-gzip .gz
|
|
|
|
</pre>
|
|
|
|
This will add the content encoding to the header so that
|
|
|
|
the client will decompress the file automatically.
|
|
|
|
This method has the advantage of reducing server disk usage
|
|
|
|
and server CPU load,
|
|
|
|
but it will only work with 5.4+ clients.
|
|
|
|
Use the 'min_core_version' field of the app_version table to enforce this.
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
You can also use these in conjunction because the mod_deflate module
|
|
|
|
allows you to exempt certain filetypes from on-the-fly compression.
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Neither of these methods stores files in compressed form on the client.
|
|
|
|
For this, you must do compression at the application level.
|
|
|
|
The BOINC source distribution includes
|
|
|
|
<a href=boinc_zip.txt>a version of the zip library</a>
|
|
|
|
designed for use by BOINC applications on any platform.
|
2004-12-20 20:47:25 +00:00
|
|
|
";
|
2003-08-19 06:44:58 +00:00
|
|
|
page_tail();
|
|
|
|
?>
|