Versioning of Datanodes

All Datanodes have support for versioning of each Datanode Instance. Each Datanode Instance Type can have it’s own strategy for handling versioning, but there are some general rules that apply to them all. The following information describes the basics of Datanode Versioning.

Name Creates a new copy Number
Major Version Yes The default value for a new Datanode is 1.
A Major Version change will always set Minor Version and Revision back to 0.
Minor Version Yes The default value for a new Datanode is 0. A Minor Version change will always change Revision back to 0.
Revision No The default value for a new Datanode is 0. A Revision change will not change any other Version indicator.

Categorization of data on a Datanode

Data on a Datanode can i general be divided into tree different categories:

Name Description
Primary Data Data saved directly as a part of the Datanodes data structure and in general the type of data that makes the Datanode unique from others.
Secondary Data Data saved directly as a part of the Datanodes data structure, but did not touch any part of the Primary Data. This kind of data could be information about Validation, Signing etc.
Relevant Data Data related to the Datanode, but not a part of the Datanode itself. In most cases other Datanodes within the same Datatree as the Datanode.

Major Version (also known as Version in the data structure of a Datanode)

When Primary Data is changed on a Datanode, the Major Version will be stepped up by +1. It is the Datanodes Type Strategy that defines if an update changes any Primary Data on the Datanode. In general all data content of a Datanode will be considered as Primary Data.

A change in Major Version for a Datanode will create a copy of the Datanode for full version history.

Minor Version

:warning: Minor Version is currently behaving as described in Revision
Revision will be introduced in a future release. Until the Revision property is introduced, the description of what will trigger a Minor Version will trigger a Major Version at the moment.

The Minor Version is changed when Secondary Data is changed on a Datanode. It is the Datanodes system strategy that decides what is defined as secondary data for the specific Datanode Instance Type. Changing the Validation State of a Datanode will under normal circumstances trigger a Minor Version change.

A change in Minor Version for a Datanode will create a copy of the Datanode for full version history.

Revision

The revision number is changed every time something relevant (defined by the individual Datanode Type strategy) happens in the system. If an instance of an Email Address IE Base Type that is in the Scope (see Data Hierarchy) defined by an Actor Datanode, is updated or a new one is created in the same Scope, the Revision number of the Actors Datanode will be stepped up by +1.

A change in Revision for a Datanode will not trigger a copy of the Datanode.