Version 4 (modified by 13 years ago) (diff) | ,
---|
Distributed data management
BOINC provides features for implementing distributed data management systems.
Such a system is implemented as several components:
- A "plug-in" to the BOINC scheduler, which is called on each scheduler RPC;
- A daemon program that handles timeouts;
- Interface programs, for example, programs allowing users to submit and retrieve files.
Note: to use these features, you must include
<msg_to_host/>
in your config.xml.
Sending files to hosts
From an interface program or daemon, call
int send_file(int host_id, const char* file_name)
or use the command line program
send_file --host_id X --file_name Y
From the scheduler plugin, call
int send_file_sched(const char* filename);
Retrieving files
From an interface program or daemon, call
int get_file(int host_id, const char* file_name)
or use the command line program
get_file --host_id X --file_name Y
From the scheduler plugin, call
int get_file_sched(const char* filename);
Deleting files
From an interface program or daemon, call
int delete_file(int host_id, const char* file_name)
or use the command line program
delete_file -host_id X -file_name Y
From the scheduler plugin, call
int delete_file_sched(const char* filename);
Implementation
From interface programs, put_file and get_file create a message to the host (in the msg_to_host table). The message is a chunk of XML that describes a "virtual" app and app version (with no associate executable), and a workunit and result that contain a single input or output file. The result has a name of the form file_xfer_*, which tells the scheduler to treat it specially.