Application API/Terminology

From wiki.zmanda.com
Jump to navigation Jump to search

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!