Reading from Tape

Data is read from tape most commonly via a command named jget.  The requirements for using this tool are:
  1. a valid scientific computing certificate as described in "Getting Started",
  2. access to /site/bin/jget on a supported machine.

Files may also be read from tape via other special-purpose tools documented elsewhere.  Regardless of the the way that read requests are generated, the ultimate process that jasmine uses to service those requests is as follows:

  1. For each source file in the stub filesystem, the request will fail if any of the following conditions pertain:
    • the file does not exist.
  2. For each destination file, the request will fail if any of the following conditions pertain:
    • destination file already exists,
    • another request already exists to write the same destination (either same location on network filesystem, or same local path on same host machine),
    • the user does not have permission to write the destination file.
  3. Once a request has been created successfully, it will be assigned a unique identifier.  Each job in the request will also be given its own unique identifier and assigned an initial state of Pending.  The meaning of job states for read requests is as follows:
    • Pending - the job is waiting to be processed
    • Staging - the tape is being prepared for reading the file
    • Staged - the tape is ready to read the file
    • Running - the file is being read from tape and written to its destination
    • Done - the file was successfully read from tape and written to its destination
    • Cancelled - the job was cancelled
    • Failed - an error prevented the file from going from tape to its detination
  4. When the jasmine scheduler determines it's time to start processing a file, a data mover service will either contact the client via socket to stream the file over the network or, if possible, copy the file directly from tape to its destination on a network filesystem.
If a non-fatal error occurs at any point in the processing of a file, its state will automatically be reset for a future retry.  The jget client will display each job's state as it is updated.