GF.Retention Engine

A Retention Engine function presents data retention functionality beyond the four basic operations (store/retrieve/modify/delete). It can thus be seen as "adding storage intelligence" to Raw Retention functionality, which itself provides the basic storage operations. However, this intelligence can be characterized as "back-end facing": generally speaking the facility's consumers don't have (direct) access to it, only the administrators and back-end systems.

When present, the Retention Engine is positioned "between" the Raw Retention functionality and the consumers that want to retain data or manipulate retained data. This means that the consumers cannot "see" the data stored by the Raw Retention functionality directly. Instead, they "see" data as the Retention Engine presents it to them, while the data that's actually stored on the Raw Retention facility may be different (e.g. split in different blocks and augmented with parity blocks, as happens when storing data on a RAID-5 storage device).

Examples of Retention Engine operations are: Furthermore, the Retention Engine function may handle integration with other storage-related facilities, such as Data Protection & Archive Management.
 * adding and handling data redundancy;
 * data integrity checking on retrieval/modification;
 * data replication (usually to another instance of a Retention Engine);
 * thin provisioning;
 * snapshotting;
 * meta-data reporting (e.g. space left on a physical or logical device).

Note that the storage intelligence that the Retention Engine brings acts on the lowest abstraction level for data, that of "Unstructured Data", managing sets of basic data elements, such as the bits and bytes on a hard disk.