1
0
Fork 0
mirror of https://github.com/kopia/kopia.git synced 2026-04-25 09:55:50 +03:00
6 Object ID
Jarek Kowalski edited this page 2018-04-15 20:46:32 -07:00

Object ID is used to address an object stored in a Repository.

When objects get stored in a Repository, the user does not pick their identifiers, but instead the repository computes the identifier as a function of the contents of the object itself. Because of that property, the repository achieves data de-duplication: multiple identical objects will have the same object IDs, they can be stored only once, saving upload time and storage space.

There are two types of objects: Direct and Indirect Objects

Small objects, such as text files, JPEG images with sizes not exceeding few megabytes are usually stored as Direct Objects which are represented by a single Block. Direct objects have identifiers starting with D.

Larger objects, such as video or database files become as Indirect Objects and are dynamically split into several Direct Objects + another Direct Object object that lists them (called Index Object). Indirect objects have identifiers starting with I followed by the name of the index object (which typically starts with D but in extreme cases could be indirect as well).

For example:

  • D44bc41f66eae10a6bfce26b7d3485d07 is a valid identifier of a Direct Object
  • ID065b643809cc0718ed46b4f8b944b63a is a valid identifier of an Indirect Object

Note that D065b643809cc0718ed46b4f8b944b63a is also a valid identifier of an Index Object of ID065b643809cc0718ed46b4f8b944b63a