Changes between Version 3 and Version 4 of ClientDataModel
- Timestamp:
- Jul 19, 2011, 10:23:32 AM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ClientDataModel
v3 v4 2 2 3 3 This document describes proposed changes to the client 4 so that it can handledistributed storage.4 to support distributed storage. 5 5 6 6 == Current == … … 8 8 FILE_INFO elements 9 9 10 * generated_locally 11 * upload_when_present 12 * uploaded 13 * sticky 10 * status (present, not present, error) 14 11 * urls 12 * bool generated_locally 13 * bool upload_when_present 14 * bool uploaded 15 * bool sticky 15 16 16 status (present, not present, error)17 17 18 18 == Problems == 19 20 Many. 21 Example: suppose the server asks the client to upload a file 22 that the client doesn't have. 23 Since generated_locally is false and the file is not present, 24 the client will try to download it (from the upload URL!). 19 25 20 26 == Proposed == … … 22 28 FILE_INFO elements: 23 29 30 * status 24 31 * upload_urls 25 32 * download_urls 26 * status 33 * bool defer_upload 34 * bool uploaded 35 * bool sticky 27 36 28 <file_info> elements in scheduler replies: 37 Policy: 38 * If a file has a download URL and is not present, download it 39 * If a file has an upload URL, is present, and defer_upload is not set, upload it 29 40 30 * if referenced from an app version or workunit, 31 set download_if_not_present 41 Handling <file_info> elements in scheduler replies: 32 42 33 * if referenced from a result, 34 and no_upload is not present, 35 set upload_when_present. 43 * if referenced from an app version or workunit, store URLs in download_urls 44 * if referenced from a result, store URL in upload_urls. 36 45 37 If we get an upuload request and the file isn't there, return error 46 Handling upload requests: 47 * Clear "uploaded" flag 48 * If the file isn't there, mark result as error. 38 49 39 Edge case: 40 an input file that may have been generated by a previous job. 41 If not, this job should generate it. 42 Include such a file as an output, not an input. 43 Input files have the property that if they're not present, 44 we download them. 50 == Locally-generated input files == 51 52 One (hypothetical) class of files isn't handled by the above: 53 an input file which, if not present, is generated computationally by the app. 54 Such files must be handled outside of BOINC. 55 In particular, the app must use file locking to ensure that two jobs 56 don't try to generate the file at the same time.