Changes between Version 3 and Version 4 of ClientDataModel


Ignore:
Timestamp:
Jul 19, 2011, 10:23:32 AM (13 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ClientDataModel

    v3 v4  
    22
    33This document describes proposed changes to the client
    4 so that it can handle distributed storage.
     4to support distributed storage.
    55
    66== Current ==
     
    88FILE_INFO elements
    99
    10  * generated_locally
    11  * upload_when_present
    12  * uploaded
    13  * sticky
     10 * status (present, not present, error)
    1411 * urls
     12 * bool generated_locally
     13 * bool upload_when_present
     14 * bool uploaded
     15 * bool sticky
    1516
    16 status (present, not present, error)
    1717
    1818== Problems ==
     19
     20Many.
     21Example: suppose the server asks the client to upload a file
     22that the client doesn't have.
     23Since generated_locally is false and the file is not present,
     24the client will try to download it (from the upload URL!).
    1925
    2026== Proposed ==
     
    2228FILE_INFO elements:
    2329
     30 * status
    2431 * upload_urls
    2532 * download_urls
    26  * status
     33 * bool defer_upload
     34 * bool uploaded
     35 * bool sticky
    2736
    28 <file_info> elements in scheduler replies:
     37Policy:
     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
    2940
    30  * if referenced from an app version or workunit,
    31    set download_if_not_present
     41Handling <file_info> elements in scheduler replies:
    3242
    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.
    3645
    37 If we get an upuload request and the file isn't there, return error
     46Handling upload requests:
     47 * Clear "uploaded" flag
     48 * If the file isn't there, mark result as error.
    3849
    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
     52One (hypothetical) class of files isn't handled by the above:
     53an input file which, if not present, is generated computationally by the app.
     54Such files must be handled outside of BOINC.
     55In particular, the app must use file locking to ensure that two jobs
     56don't try to generate the file at the same time.