SRM Basic Specification for Computational Research
290 likes | 387 Vues
LBNL proposal detailing modifications and new functions for SRM Basic Specification v1.1. Includes methods, relationships, and operation details for data management in research settings.
SRM Basic Specification for Computational Research
E N D
Presentation Transcript
C O M P U T A T I O N A L R E S E A R C H D I V I S I O N SRM Basic SpecLBNL Proposal Arie Shoshani, Alex Sim, Junmin Gu, Kurt StockingerScientific Data Management GroupLawrence Berkeley National Laboratory
Summary • LBNL proposal of SRM Basic specification based on v.1.1 • Original v.1.1 methods/arguments in BLUEProposed modifications in • Green for essential additionswith + to the v.1.1 • Skyblue for optional additions with ++ to the v.1.1 • Red for subtractions from the v.1.1 • Purple for renaming and implied updates of the v.1.1 with => • Notations:{} … tuple() … list (ordered collection)[] … set (unordered collection)_ … underline as mandatory (as opposed to optional)::= … definition operator| … choice operator (exclusive or)// … commentitalic … recommended
Basically • From v.2.1.1 or in addition to v.1.1 • No space management • Automatic • minimum directory management • Ls, removeFiles • No mkdir, etc. • No permission management • Somewhat automatic • Some new functions • srmGetSystemInfo // ConfigInfo • Ping
GET • srmPrepareToGet() • In: authorizationID,arrayOfGetFileRequest,arrayOfTransferProtocols, userRequestDescription, storageSystemInfo, totalRetryTime • Out: requestToken, returnStatus, arrayOfFileStatus • In: SURLs, Protocols AuthorizationID, DesiredFileLifeTime, FileStorageTypeOut: RequestStatusSummary RequestID • Basic assumptions: UserID • Get() • In: SURLs, ProtocolsOut: RequestStatus
RequestStatusSummary • RequestIDRequestTypeStatusCode // RequestErrorCodeStatusExplanation// ErrorDetailsSubmitTimeStartTimeFinishTimeEstimatedTimeToStartTotalFilesInRequestNumberOfQueuedFilesInRequestNumberOfFinishedFilesInRequestNumberOfProcessingFilesInRequest • requestToken,requestType, totalFilesInThisRequest, numOfQueuedRequests, numOfFinishedRequests, numOfProgressingRequests,isSuspended • RequestIDType (Get, Put, … )StateErrorMessage FileStatusesRetryDeltaTimeSubmitTimeStartTimeFinishTimeEstimatedTimeToStart
PUT • srmPrepareToPut() • In: authorizationIDarrayOfFileRequest, arrayOfTransferProtocols, userRequestDescription, overwriteOption, storageSystemInfo, totalRetryTime • Out: requestToken, returnStatus, arrayOfPutFileStatus • In: {Dest_SURL Size }[]FileStorageType ProtocolsAuthorizationIDOverwriteModeDesiredLifeTime • Out: RequestStatusSummaryRequestID • Put() • In: Src_file_names Dest_file_names, Sizes WantPermanent Protocols • Out: RequestStatus
COPY • In: { Source_SURL, Dest_SURL }[]AuthorizationID DesiredLifeTime FileStorageType OverwriteModeOut: RequestStatusSummaryRequestID • Copy() • In: Source_SURLs, Dest_SURLs • Out: RequestStatus • srmCopy() • In: authorizationID, arrayOfCopyFileRequest, userRequestDescription, overwriteOption, removeSourceFilesstorageSystemInfo, totalRetryTime • Out: requestToken, returnStatus, arrayOfCopyFileStatus
MkPermanent • MkPermanent • IN: SURLs • OUT: ReturnStatus • srmChangeFileStorageType() • In: authorizationID, arrayOfPath, desiredStorageType, spaceToken • Out: returnStatus, arrayOfFileStatus
PIN • Obsolete • Automatic when file is ready • In: TURLs • Out: RequestStatus
UnPin • UnPin() • In: RequestID TURLs • Out: RequestStatus • UnPin => Release • In: RequestID TURLs | SURLs AuthorizationID • Out: { TURL | SURLRequestStatusCode Explanation } [] • srmReleaseFile() IN: requestToken authorizationID, siteURLs, keepSpace • Out: returnStatus, arrayOfFileStatus
getRequestStatus • srmStatus(Get,Put,Copy)Request • IN: requestToken, authorizationID arrayOfFromSURLs, • Out: returnStatus, arrayOfFileSta • In: RequestID • Out: RequestStatus => RequestStatusSummary • For details: getRequestFilesStatus (previous getRequestStatus which used to include RequestFileStatus and FileMetaData) • getRequestStatus() • In: RequestID • Out: RequestStatus
getFileMetaData • getFileMetaData • In: SURLs • Out: FileMetaData • getFileMetaData => LS • In: SURLs AuthorizationID IsAllLevelRecursive ListOffset ListCount infoOnly • Out: FileMetaData • srmLs() • IN: authorizationID, path, fileStorageType, fullDetailedList, allLevelRecursive, numOfLevels, offset, count • Out: MetaDataPathDetail[] returnStatus
FileMetaData • SURLSizeOwnerGroupPermModeChecksumTypeChecksumValueFileStorageTypeStatusCodeStatusCodeLifetimeAssignedLifetimeLeftCreatedTimeLastModifiedTimeFileTypeOriginalSURLSubDirectoryPTR// dirEntries • SURLSizeOwnerGroupPermModeChecksumTypeChecksumValueIsPermanentIsPinnedIsCached • path, status, size, // 0 if dir ownerPermission, userPermission, groupPermission, otherPermission createdAtTime, lastModificationTime, owner, fileStorageType, fileType, // Directory or FilelifetimeAssigned, lifetimeLeft, checkSumType, checkSumValue, originalSURL, MetaDataSubPathDetail[]
getProtocols • In: none • Out: list of transfer protocols • None in v.2.1 • Let’s keep this or put into the new srmSystemInfo or srmConfigInfo
getEst[Get/PUT]Time • Make it Obsolete • getEstGetTime: • Out- RequestStatus In- SURLs, Protocols • getEstPutTime: • Out- RequestStatus In- Src_file_name, dest_files_names, sizes, wantPermanent, Protocols • getEstimationTime • In:Source_SURL Dest_SURL Size AuthorizationIDTransferProtocols FileStorageType • Out:RequestEstimation • None • Similar one is getStatusRequest() after request is submitted
AdvisoryDelete • Obsolete • AdvisoryDelete: • Out- noneIn- SURLs • srmRemoveFiles • In:SURLs authorizationID • Out: ReturnRequestStatus • srmRemoveFiles • IN: requestToken, authorizationID, siteURLs • Out: returnStatus, arrayOfFileStatus
GetRequestFilesStatus • In: RequestID ListOffset ListCount • Out: RequestFileStatus [] • In: RequestIDOut: RequestFileStatus [] • srmStatusOf{Get, Put, Copy}Request • IN: requestToken, authorizationID arrayOfFromSURLs, • Out: returnStatus, arrayOfFileStatus
RequestFileStatus • Source_SURLDest_SURLSizeStatusCode Explanation TURLCheckSumType, CheckSumValueFileStorageTypeEstWaitingTimeOnQueueEstProcessingTimeSourceFilenameDestFilenameRemainingLifetime • SURLSizeStateFileldTURLOwner, Group, PermModeCheckSumType, CheckSumValueIsPinned, IsPermanentQueueOrderEstSecondsToStartSourceFilenameDestFilenameIsCached • fromSURLInfo, fileSize, • status, • estimatedWaitTimeOnQueue, • estimatedProcessingTime, • transferURL • remainingPinTime • siteURL, • toSURL,
Ping • In: none • Out: alive_response
GetConfig • In: flag • Out: { value | list of supported functions} • e.g. GET, PUT, COPY, DYNAMIC_MKDIR, PUSH_MODE, PULL_MODE, Default_space = 5GB/user, etc.
New types • FileStorageType • VOLATILE, DURABLE, PERMANENT • FileType • FILE, DIRECTORY, LINK • OverwriteMode • NEVER, ALWAYS, WHEN_DIFFERENT • RequestType • GET, PUT, COPY • StatusCode • // RequestStatusCode, FileStatusCode, RequestErrorCode, FileErrorCode • Explanation: human-readable strings // ErrorDetails • RequestID : from int to string
Conclusion • Based on SRM v.1.1 and many of v.2.1.1 • Included much of Olof’s issues and suggestions to v.1.1 • Operational specification would be bound to Web Services.