Breaking Down The Ingest

In order to understand the ingest and what parts of it can be optimized, it has to be grasped conceptually and broken down in its individual parts. When a new digital object gets ingested, the processes happening are listed in the table below. The table has three columns: the number of the process indicating the order, the description of the process and what part it is of. The part relates to the class (or referencing class) the process is executed in, but does not necessarily have to be the class the process gets executed. The XML validation for example is triggered in DefaultDOManager but gets done in another class. The reason for this is to ease the understanding of the actual measurement of the ingest parts described in this article.

#DescriptionPart Of
1Create a temporary file from the digital objectDefaultDOManager.getIngestWriter()
2Validate the XML file against XSD and SchematronDefaultDOManager.getIngestWriter()
3Break apart the XML file and create an internal object structure of it (deserialize)DefaultDOManager.getIngestWriter()
4Check and set the object properties for the digital object (active, date, etc)DefaultDOManager.getIngestWriter()
5Set datastream properties for all datastreams (active, date, checksum, etc)DefaultDOManager.getIngestWriter()
6Get the PID or use an existing PID (see here for detailed process)DefaultDOManager.getIngestWriter()
7Obtain a DOWriter, get a write lockDefaultDOManager.getIngestWriter()
8Add / check DC recordsDefaultDOManager.getIngestWriter()
9Validate the RELS-EXT if it existsDefaultDOManager.getIngestWriter()
10Enforce the XACML policy for the ingestDefaultManagement.ingestObject()
11Get the external content if the respective datastream is of CONTENT_GROUP='M'DefaultDOManager.commit()
12Translate the digital object back into an internal Fedora XML representation (serialize)DefaultDOManager.commit()
13Add triples to the resource indexDefaultDOManager.commit()
14Persist the XML file to the underlying storageDefaultDOManager.commit()
15Create a record of the digital object and managed content in the databaseDefaultDOManager.commit()
15Register this particular version of the digital object in the databaseDefaultDOManager.commit()
16Update the field search index if turned onDefaultDOManager.commit()
17Clean up and returnDefaultManagement.ingestObject()

Add new attachment

In order to upload a new attachment to this page, please use the following box to find the file, then click on “Upload”.
« This page (revision-1) was last changed on 13-Jun-2008 13:35 by KST [RSS]