Storage

Files and data servers

The BOINC storage model is based on files. The inputs and outputs of applications, and the application 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: 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: