ResData is a UNSW Library service for managing UNSW research data. The service, currently based on Fedora 3.7, has two main components:

  • Research Data Management Plan (RDMP) - allows UNSW researchers and Higher Degree Research (HDR) Candidates to record metadata about research projects and associated research data. Completion of an RDMP is a requirement for allocation of storage in the UNSW Data Archive.
  • A catalogue of UNSW datasets and collections of research materials

There are four main types of objects or records that are ingested, queried and updated in ResData: Dataset, Party, Activity and RDMP, where a Dataset or an RDMP must have 1 Activity and 1 or more Party associated it. Therefore, every ingest or update via ResData UI triggers a transaction that affects 1 Dataset or RDMP, 1 Activity and at least 1 Party object.  

ResData transactions are required to be ACID as below:

  • Atomicity is needed to ensure that for each failed ingestion of a Party or an Activity or a Dataset or an RDMP, all previously ingested records within the same transaction are rolled back.  For example, a researcher creates a Dataset A that is linked to Party A and Activity A. During ingest, Party A and Activity A are ingested successfully but Dataset A fails.  ResData must be able to remove Party A and Activity A from Fedora and inform the researcher accordingly.  In Fedora 3, this gets extremely complicated when versioning of records is enabled.
  • Consistency is required to ensure that a successfully ingested Dataset or an RDMP has only 1 Activity and at least 1 Party associated with it. This is currently done at client level with relative ease. 
  • Isolation ensures that each ingest or update transaction in ResData is executed sequentially. In ResData, it is possible to have an RDMP and a Dataset link to the same Activity - this could lead to data integrity issue with the Activity, if both the RDMP and Dataset are ingested concurrently . This is currently handled at client level by placing a lock on a record that is being modified.
  • Durability is needed to permanently store all committed changes to Fedora and guarantee recovery to original state in the case of errors, crashes or power failure.