Changes between Version 6 and Version 7 of RemoteInputFiles
- Timestamp:
- Jul 22, 2016, 3:24:07 PM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RemoteInputFiles
v6 v7 11 11 so they can't store files there directly. 12 12 Instead, BOINC provides two mechanisms that allow 13 job submitters to place files on the BOINC server.13 job submitters to store and manage files on the BOINC server. 14 14 15 15 Each of these mechanisms deals with several issues: … … 18 18 of a given name can never be changed. 19 19 Job submitters can't be expected to obey this rule: 20 they must be able to submit one job with an input file 21 of a given name, and a second job with an input file of 22 the same name but different contents. 20 they must be able to submit one job with an input file of a given name, 21 and a second job with an input file of the same name but different contents. 23 22 * File cleanup: There must be some way to clean up 24 23 files on the server when they are no longer needed. … … 36 35 == Content-based file management == 37 36 38 In this system, the name of a file on the BOINC server 39 is based on its MD5 hash; thus file immutability is automatic. 37 In this system, the BOINC name of a file 38 (i.e. its name on the BOINC server) 39 is based on its hash; thus file immutability is automatic. 40 40 41 41 File cleanup is based on file/batch associations. … … 57 57 const char* project_url, 58 58 const char* authenticator, 59 std::vector<string> &boinc_names, 59 60 int batch_id, 60 vector<string> &md5s, 61 vector<string> &paths, 62 vector<int> &absent_files // output 61 std::vector<int> &absent_files, // output 62 std::string& error_message 63 63 ); 64 64 }}} … … 67 67 * '''project_url''': the project's master URL 68 68 * '''authenticator''': the job submitter's authenticator. 69 * '''paths''': a list of file paths on the calling host. 70 * '''md5s''': a list of the MD5s of the files. 69 * '''boinc_names''': a list of the "BOINC names" of the files. Must include a hash; can include a suffix if needed. 71 70 * '''batch_id''': the ID of a batch whose jobs will reference the files 72 71 (these jobs need not exist yet). … … 80 79 * return value: nonzero on error 81 80 * '''absent_files''': a list of files not present on the server 82 (represented as indices into the file vector). 81 (represented as indices into the boinc_names vector). 82 * '''error_message''': if error, an explanatory string. 83 83 84 84 {{{ … … 86 86 const char* project_url, 87 87 const char* authenticator, 88 vector<string> &paths, 89 vector<string> &md5s, 90 int batch_id 88 std::vector<string> &paths, 89 std::vector<string> &boinc_names, 90 int batch_id, 91 std::string& error_message 91 92 ); 92 93 }}} … … 95 96 * '''project_url, authenticator, batch_id''': as above. 96 97 * '''paths''': a list of paths of files to be uploaded 97 * ''' md5s''': a list of MD5 hashes of these files98 * '''boinc_names''': a list of BOINC names of these files (see above). 98 99 * '''batch_id''': the ID of a batch with which the files are associated. 99 The operation will fail if the user is not authorized to 100 submit jobs to the batch's application. 100 The operation will fail if the user is not authorized to submit jobs to the batch's application. 101 101 102 102 Action: Upload the files, and create associations to the given batch. … … 104 104 Output: 105 105 * return value: nonzero on error 106 * '''error_message''': if error, an explanatory string. 106 107 107 108 If you use this system, periodically run the script 108 109 '''html/ops/delete_job_files'''. 109 This will delete files that are no longer associated 110 with an active batch. 110 This will delete files that are no longer associated with an active batch. 111 111 112 112 == Per-user file sandbox ==