Skip to content
axlbonnet edited this page Aug 31, 2023 · 5 revisions

GRIDA documentation

Clients

Using GridaClient

This does synchronous stuff the command described bellow

This does not use pools and it does not do disk size verification.

Using GridaPoolClient

All operations (download/upload/replicate/delete) are asynchronous and are handled into dedicated pools. They are all identified by an operationId to monitor them.

In the case of file Download (not folder), a size check is done by checking the size to download and the disk free space (in PoolOperation::addOperation).

Technical implementations

All the commands are handled in the Executor class.

Caching

TODO

### PoolDownload

  • max parallel downloads configured in grida conf file
  • download using same implementation of the GetRemoteFile command, except this does not check the cache (nor add it to cache)

PoolUpload

  • max parallel uploads configured in grida conf file
  • upload using same implementation of the UploadFile command, not doing any replication yet, but submitting a new replicate operation that will replicate on all SEs configured in the grida conf file

PoolReplicate

  • max parallel replication configured in grida conf file
  • replicates file on all SEs configured in the grida conf file

PoolDelete

  • max parallel deletes configured in grida conf file
  • delete using same implementation of the Delete command

GetRemoteFile commmand

  • Checks CacheBusiness.
  • If absent or outdated, checks if dest file already exists
  • If absent or ouddated, download with dget

NO POOLING

NO DISK SIZE CHECK

GetRemoteFolder command

  • recursive
  • download each file with dget (except if dest file already exists and is not outdated)
  • option to zip the folder (the folder is then deleted)

NO CACHE

NO POOLING

NO DISK SIZE CHECK

UploadFile Command

  • using dput
  • using SE configured in grida conf file (try in order in order, stop when 1 is ok)
  • delete local file
  • if SEs were given on the command, do a drepl on each one
  • otherwise, add a Replicate operation in a pool (asynchronous)

NO POOLING

Delete Command

  • do a dirac-dms-clean-directory if it is a directory
  • do a dirac-dms-remove-files if it is a file

NO POOLING

Clone this wiki locally