Application API/Terminology
These terms are derived from the SCSI command-set standard INCITS T10/1731-D.
A User Object is the basic unit of backup and restore, from the user perspective. Currently, a user object is a file or directory. In the future other types of data may be supported. Each user object has a hierarchical identifier and a set of associated attributes. Also, each user object is entirely contained within some set of collections, but a single collection may contain data from multiple user objects.
A Collection is the basic unit of backup and restore as it resides on the backup media. A collection is the smallest unit that can be stored or retrieved from media.
Each collection and user object may originate from only a single backup job, collection merge, or collection copy/migration.
Here are some examples of how the new Application API nomenclature would apply in the context of different application drivers.
- Dump
User object => Filesystem object (file, directory, socket, pipe, etc.)
Collection => Entire filesystem
- GNU tar
User object => Archive object (file, directory, etc.)
Collection => one 512-byte tar block.
Note that having such collections can be problematic; see below.
- SQL database
User Object => Database table
Collection => Entire database
- Alternative SQL database
User Object => Table row
Collection => Entire database
This conception is only useful if you have very large table rows; otherwise, the indices will be as big as the original database!