Snapshot
- In DuraCloud, content is added by the user into a Snapshot Storage Provider space. This is a staging area that is backed by S3.
- The user selects a button in the space to create snapshot and enters snapshot metadata
- error: no communication with Bridge server. Does the S3 instance need to be connected when the user logs in? Yes. Want to be able to display list of snapshots that have been taken - made by making a call down to the bridge.
- The DuraCloud UI calls the storage provider snapshot task indicating space to snapshot
- The snapshot task creates snapshot properties file and stores it in snapshot space
- When the snapshot properties file is added, the space is transitioned to read-only
- Snapshot properties file includes the depositor ID as well as details about the snapshot (account ID, space ID, date, etc)
- The snapshot task calls to the bridge application to indicate that a snapshot needs to be taken, providing DuraCloud host/port/space.
- The bridge application adds an entry to the snapshot db table with the details of the snapshot actionerror: communication failure between database and the bridge. Snapshot would fail, throw an error back up to DuraCloud
- The bridge application connects to DuraCloud and copies all content from DuraCloud space to bridge storage
- During transfer, content properties are captured in a file
- During transfer, each content item is added to content db table (with snapshot id)Error- bridge server restarted, process would be killed. Working on piece that would allow the Bridge to maintain initialization parameter and restart where it left off.
- The bridge application creates two manifest files (md5 and sha256) for the content and verifies all content was transferred correctly
- The bridge application sends a notification (email) to Chronopolis that a snapshot is ready (this step may be replaced with Chron intake polling).
- Chronopolis Intake service polls for new snapshots to process
- Error - notification gets sent, not picked up or poling doesn't happen. Chron job or the like to make sure the polling is always happening.
- Chronopolis Intake service uses the content in bridge storage to construct a DPN bag
- Error - corrupted files, report that to the bridge server. Bill working on additional call on bridge server to indicate error in steps 10/11. Sets snapshot in error state, sends an email to the DuraCloud team. Also potential of error of depositor depositing more than their allotment. Communication issues between intake and ingest servera bag for deposit
- The Intake service validates content against the manifest written by the bridge application
- The Intake service creates the necessary bag files (bagit, bag-info, dpn-infoetc) that are included in the bagIf the content contained in the snapshot is larger than 250 GB, multiple bags are created
- Chronopolis Ingest service performs replication to other the appropriate Chronopolis nodesand DPN
- The Ingest service creates replication requests to the selected replication nodes.
- rsync is used between Chronopolis nodes to transfer content
- Ace Tokens are created for other Chronopolis Nodes
- An entry in the DPN registry is added
- REST calls are used between DPN nodes to discover content which needs to be replicated
- Error - any individual node in Chronopolis failing to replicate, nodes in DPN failing to replicate. Hard to pinpoint exact reasons. Recovery for DPN is to make a new request. Would we know if there was a failure? No. Would need to be added to the DPN failure code.
- Chronopolis makes a call to the bridge application to indicate that content has been successfully copied to preservation storage
- Intake service checks for existing snapshots to see if they could be completed.
- Information about DPN IDs should be passed into the Bridge.
- Errors - call doesn't get made, connection problems. Intake service calls bridge to update history as each node replication completes
- The bridge application deletes the directory in bridge storage used for the snapshot
- The bridge application makes a call to a task in the DuraCloud Snapshot Storage Provider to indicate that it is now time to clean up the snapshot contentDuraCloud application could be down. No retry or notification in place.
- The cleanup task sets a policy on the underlying S3 bucket which causes the content to be removed within 24 hours
- S3 unavailable, policy can't be set, no retry or notification in place. Could check date on snapshot transition to most recent status. If it's been more than xx days then problem notification sent.
- The bridge application watches the snapshot space, and when it becomes empty, calls the snapshot complete task, which clears the S3 bucket policy
- The bridge application notifies the user who requested the snapshot that it has been completed
Snapshot Display
- A DuraCloud user selects the Snapshot Storage Provider in the DuraCloud UI
- The DuraCloud UI (DurAdmin) makes the usual call to get spaces and also calls a task in the Snapshot Storage Provider to request a list of snapshots
- The snapshots task calls the bridge application to request a list of snapshots
- Note: DuraCloud is not aware of the snapshot database. All communication with the db goes through the bridge application.
- The bridge application queries the database (snapshot table) to retrieve a listing of snapshots which are visible to the given DuraCloud account
- The bridge application returns list of snapshots, which are passed back up the chain to the UI
- The DuraCloud UI displays the list of snapshots alongside the traditional spaces in a way the distinguishes the two sets, providing a Restore button on each snapshot space
- When a snapshot space is selected, calls to another set of tasks in the Snapshot Storage Provider are made to retrieve the listing of content items, the snapshot details, and snapshot history
- The snapshot tasks call the bridge application to request the snapshot details, history, and content list
- The bridge application queries the database to retrieve the snapshot information
- The bridge application returns the snapshot information, for the content list and snapshot history lists, only the first X items are returned, which are passed back up the chain to the UI
- The DuraCloud UI displays the snapshot information in the same way it would display content items and details for a traditional space
- Requests for more items in the content listing or snapshot history follow the same pattern, but with a parameter to indicate offset
Restore
- The DuraCloud user browses the snapshot listings and clicks the "Request Restore" button on a snapshot
- The DuraCloud UI calls a DuraCloud Request Restore task, which makes a call to the bridge. The bridge sends email notifications to DuraSpace staff to notify that a restore has been requested the the relevant details.
- DuraSpace staff verifies with depositor that a restore is needed, then uses the "Restore" button on a snapshot to initiate restore.
- The DuraCloud UI calls a DuraCloud Restore task
- The DuraCloud Restore task creates a space where the restored content will be placed and calls the bridge application with a restore request
- A bucket policy will be added to the space to delete content after a set time period
- The bridge application adds an entry to the restore db table
- The bridge application creates a directory in bridge storage and sends a notification to Chronopolis to request a restore action
- Chronopolis copies the contents of the snapshot DPN bag(s) to the bridge storage directory
- Chronopolis will validate the files on the bridge storage against the manifest in the bag (originally created during the snapshot phase)
- BagIt files are omitted during the copy, leaving only the files which were originally written by the bridge application
- Chronopolis makes a call to the bridge to indicate that content has been restored to the expected bridge storage location.
- The bridge application verifies restored content against snapshot manifest file and against database listing (ensuring content is consistent with original snapshot data set)
- The bridge application copies content from bridge storage to DuraCloud space
- The bridge application reads the content metadata file and updates each content item with its metadata values
- The bridge application verifies that content transferred to DuraCloud is consistent with the content in bridge storage
- The bridge application deletes the directory in bridge storage used for the restore action
- The bridge application notifies the user who requested the restoration that the process is complete, informs them of the space ID where they can find their content, and tells them the date on which the content will be removedexpire (and be deleted.)
Panel | ||
---|---|---|
| ||
DB
|
...
Panel | ||
---|---|---|
| ||
Note: Colors indicate where calls to a particular interface method will originate. For example, a method in the bridge API is green if the calls to that method are made from a Snapshot Storage Provider Task. A method in the bridge API is red if the calls to that method are made from Chronopolis. DuraCloud UI (DurAdmin)
Snapshot Storage Provider Tasks
Bridge API
Chronopolis API
|
...