290 likes | 383 Views
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 Spec LBNL Proposal.
E N D
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.