Internal processes for repairing corrupt data in Chronopolis.
This only describes processes for resolving data corruption, not issues of potential database corruption in ACE (invalid fixity or invalid tokens).
As Repairs are a two node process, we refer to the Node who requested the repair as the Repairing Node and the Node who is fulfilling the repair as the Fulfilling Node.
Repair
Field | Type | Description |
---|---|---|
id | Long | Natural Identifier for the Repair |
cleaned | Boolean | Boolean value to determine if the Repair has been cleaned from staging (on Repairing Node) |
replaced | Boolean | Boolean value to determine if the Repair has replaced the invalid data on the Repairing Node |
validated | Boolean | Boolean value to determine if the files for the Repair have been validated by the Repairing Node |
audit | AuditStatus | Status of the ACE Audit of the corrupted files at the Repairing Node |
status | RepairStatus | Status of the Repair |
to | String | The node which requested the Repair (the Repairing Node) |
requester | String | The user which requested the Repair |
depositor | String | The Depositor who owns the collection being Repaired |
files | List<String> | A List of files which are corrupt at the Repairing Node |
from | String | The node which is fulfilling the Repair (the Fulfilling Node) |
type | FulfillmentType | The protocol used for transferring the data |
credentials | FulfillmentStrategy | The information for the Repairing Node to transfer files from the Fulfilling Node* |
FulfillmentType
An enumerated type describing the type of transfer which will occur
- ACE (http)
- NODE_TO_NODE (rsync)
- INGEST (rsync)
FulfillmentStrategy
A polymorphic type which contains the information for retrieving the staged files
AceStrategy
Field | Type | Description |
---|---|---|
type | FulfillmentType | The FulfillmentType (ACE) |
apiKey | String | The API Key used to connect to the Fulfilling Node's ACE AM |
url | String | The URL of the Fulfilling Node's ACE AM |
RsyncStrategy
Field | Type | Description |
---|---|---|
type | FulfillmentType | The FulfillmentType (NODE_TO_NODE) |
link | String | The rsync uri |
AuditStatus
Enumeration of possible statuses of the audit for a Repair
- PRE: The Repairing Node has not started the aAudit (likely not ready)
- AUDITING: The Repairing Node has an ongoing audit over the retrieved data
- SUCCESS: The Repairing Node has successfully audited the retrieved data
- FAILURE: The Repairing Node still has invalid data on their ACE AM after retrieving the data
RepairStatus
Enumeration of possible states that a Repair may be in
- REQUESTED: A Repairing Node has notified the Ingest Server of the need to Repair a collection
- STAGING: A Fulfilling Node has accepted the Repair request and is staging copies of the requested files
- READY: A Fulfilling Node has completed staging data
- TRANSFERRED: A Repairing Node has completed transfer of data from a Fulfilling Node
- REPAIRED: A Repairing Node has successfully repaired corrupt data
- FAILED: A Repairing Node was unable to successfully repair corrupt data