mirror of https://github.com/borgbackup/borg.git
docs: internals: cache feature flags
This commit is contained in:
parent
36bdc9d15e
commit
f2fd6fc699
|
@ -392,6 +392,36 @@ These can be locked out with manifest version 2. Thus, the only difference betwe
|
||||||
manifest versions 1 and 2 is that the latter is only accepted by Borg releases
|
manifest versions 1 and 2 is that the latter is only accepted by Borg releases
|
||||||
implementing feature flags.
|
implementing feature flags.
|
||||||
|
|
||||||
|
.. rubric:: Cache feature flags
|
||||||
|
|
||||||
|
`The cache`_ does not have its separate flag of feature flags. Instead, Borg stores
|
||||||
|
which flags were used to create or modify a cache.
|
||||||
|
|
||||||
|
All mandatory manifest features from all operations are gathered in one set.
|
||||||
|
Then, two sets of features are computed;
|
||||||
|
|
||||||
|
- those features that are supported by the client and mandated by the manifest
|
||||||
|
are added to the *mandatory_features* set,
|
||||||
|
- the complement to *mandatory_features*, *ignored_features* comprised
|
||||||
|
of those features mandated by the manifest, but not supported by the client.
|
||||||
|
|
||||||
|
Because the client previously checked compliance with the mandatory set of features
|
||||||
|
required for the particular operation it is executing, the *mandatory_features* set
|
||||||
|
will contain all necessary features required for using the cache safely.
|
||||||
|
|
||||||
|
Conversely, the *ignored_features* set contains only those features which were not
|
||||||
|
relevant to operating the cache. Otherwise, the client would not pass the feature
|
||||||
|
set test against the manifest.
|
||||||
|
|
||||||
|
When opening a cache and the *mandatory_features* set is a superset of the features
|
||||||
|
supported by the client, the cache is wiped out and rebuilt.
|
||||||
|
Since a client not supporting a mandatory feature that the cache was built with
|
||||||
|
would be unable to update it correctly.
|
||||||
|
|
||||||
|
When opening a cache and the intersection of *ignored_features* and the features
|
||||||
|
supported by the client contains any elements, i.e. the client possesses features
|
||||||
|
that the previous client did not have, the cache is wiped out and rebuilt.
|
||||||
|
|
||||||
.. rubric:: Defined feature flags
|
.. rubric:: Defined feature flags
|
||||||
|
|
||||||
Currently no feature flags are defined.
|
Currently no feature flags are defined.
|
||||||
|
|
Loading…
Reference in New Issue