Storage
Files and data servers
The BOINC storage model is based on files.
The inputs and outputs of applications,
and the applications executables, are files.
The BOINC core client transfers files to and from data servers
operated by the project, using HTTP.
A file is described by an XML element of the form
<file_info>
<name>foobar</name>
<url>http://a.b.c/foobar</url>
<url>http://x.y.z/foobar</url>
...
<md5_cksum>123123123123</md5_cksum>
<nbytes>134423</nbytes>
<max_nbytes>200000</max_nbytes>
<status>1</status>
[ <generated_locally/> ]
[ <executable/> ]
[ <upload_when_present/> ]
[ <sticky/> ]
[ <signature_required/> ]
</file_info>
The components are as follows:
- The <name> element gives the file's name, which
must be unique within the project.
- Each <url> element gives a URL where the file is
(or will be) located on a data server.
- The <md5_cksum> element is the MD5 checksum of the file.
- The <nbytes> element is the size of the file in
bytes (may be greater than 2^32).
- The <max_nbytes> element is the maximum allowable
size of the file in bytes (may be greater than 2^32).
This is used to prevent flooding data servers with bogus data.
- The <status> element is 0 if the file is not present,
1 if the file is present, or a negative error code if there was a
problem in downloading or generating the file.
- The <generated_locally> element, if present,
indicates that the file will be generated by an application on
the client, as opposed to being downloaded.
- The <executable> element, if present, indicates
that the file protections should be set to allow execution.
- The <upload_when_present> element, if present,
indicates that the file should be uploaded after it is created.
- The <sticky> element, if present, indicates that
the file should be retained on the client after its initial use.
- The <signature_required> element, if present,
indicates that the file should be verified with an RSA signature.
This generally only applies to executable files.
These attributes allow the specification of various types of files: for
example, input or output files that are retained for use as input to
later computations.
Once a file is created (on a data server or a participant host) it
is immutable.
File references
Files may be associated with workunits,
results and
application versions.
Each such association is represented by an XML element of the form
<file_ref>
<file_name>foobar</file_name>
[ <open_name>input</open_name> ]
[ <main_program/> ]
</file_ref>
The components are as follows:
- The <file_name> element specifies a file.
- The <open_name> element is the name by
which the application will refer to the file.
- The <main_program/> element is used for files
associated with application versions.
It indicates that this file is the application's main program.