|
|
NorduGrid Note |
|
proposal |
|||
|
|
||
Data Management |
||
Aleksandr Konstantinov* |
||
|
||
|
|
|
SE |
storage element |
NI |
names index |
VO |
virtual organization |
UT |
user tools, used to request operations at SE and NI |
user |
person with key+certificate belonging to at least one VO |
file |
logical file (name + all related metadata) |
instance of file |
content (data) stored at one of SEs |
full_name of file |
set of information containing URL of NI, VO, string representing file (name) and optionally list of instances/SEs to use. |
Atomic operations - There are no rollbacks. Every operation is either successful or failed.
Each operation involving file and file instance creation and deletion should involve one one request
All operations must have timeout. Timeout should be given either as total timeout or as transfer speed limit (adaptive timeout).
Service ownership - interoperating SE and NI can belong to different VOs. NI and SE can server multiple VOs.
In first implementation NI is centralized (per VO, experiment,etc.). This requires flexible authorization rules.
There is no limit on number of interoperating NIs and SEs. UT should be able to communicate with multiple NIs.
NI registers to MDS (or any other Information System) and provides information about served VOs.
SE registers to MDS (or any other Information System)and provides information about served VOs and subtrees (see below).
Registration of already existing instance (should be used only in extreme cases).
UT contacts NI and provides all metadata necessary to create file
File instance is uploaded to SE.
UT contacts SE to reserve place and provide file's metadata to be passed to NI
SE contacts NI to register new file and it's instance as not ready yet
UT uploads file to SE
SE marks instance in NI as ready to be used
File instance is downloaded from third place.
UT contacts SE and provides file's metadata and URL for source
SE registers new file and it's instance as not ready yet in NI
SE downloads file instance from provided URL
SE marks downloaded instance in NI as ready to be used
Replication (creation) of file instance. Replications are made by SEs on request from UT or initiated by local policies.
UT contacts SE and provides name of file to be replicated to that SE
SE contacts NI to obtain information about available instances
SE registers new instance as not ready yet in NI
SE downloads file
SE marks downloaded instance in NI as ready to be used
Deletion of file instance
UT contacts SE and provides name of file to be deleted.
SE removes instance and contacts NI to unregister instance
Deletion of file.
UT contacts NI to obtain information about all instances.
UT contacts all SEs and deletes instances
Accessing file instance.
Through MDS
UT searches in MDS for suitable NI.
UT contacts NI to obtain list of SEs and optionally handles of those instances
UT contacts SE to obtain handle (if not available yet) and uses it to access file instance.
Through NI directly
Same as through MDS with first step skipped (assuming UT already knows URL of NI).
Through MDS with dead NI
UT searches in MDS for suitable NI.
UT fails to contact NI.
UT search in MDS for suitable Ses.
UT contacts SEs asking for full file name.
UT uses obtained handles to access file instances.
Accessing non-existing file instance.
UT knows about super-fast local SE.
UT contacts that SE and asks for replication of file instance.
Either SE does not respond to UT's request till replication is finished or UT checks for completion periodically (both ways should be possible).
For each instance stored at SE following information is stored:
Full name of file
Minimal amount of metadata needed to check authenticity of file
Status of file (being uploaded, being downloaded, in use, ready, ...)
SE can be implemented either to contact NI to check if file can be accessed by UT or to keep such information locally. In later case such information should be periodically synchronized with NI.
Each file instance has corresponding handle (URL) generated by SE. UT obtains such handle from querying SE for full file name or from NI. This handle is used to access file instance.
SE service is responsible of refreshing information in NI. Deleting temporary files. Caching files on request
NI can serve different VOs. Each VO has directory-like structure of objects. Tree consists of objects Group (directory). Groups contain other Groups and
SE - description of SE accepting file instances belonging to this group and all subgroups (served subtree). It can contain following attributes:
Restrictions on served files (to be defined, for example it could store only content not longer than 1GB)
Restriction on served users (like if ordinary member of is allowed to created temporary instance).
Optional name of SE. If defined SE can be mentioned in other objects by it's name.
Instance - URL of SE storing instance of file, optionally URL of file instance, metadata related to instance:
DN of user or service which requested creation of that instance
Status of that instance (being prepared, ready to be used, temporary, primary, etc.)
External instance - URL of file instance stored at some place which has no SE's capabilities (should be used only in extreme cases).
DN of user or service which requested creation of that instance
Virtual instance - contains instructions on how to create content of file. Most probably it should consist of RSL and contact person (DN + email) who created that RSL.
*aleks@fys.uio.no