Retentivity

The purpose of retentivity is to provide a storage layer of changes made to the project at runtime. The list of changes with respect to the original project is stored in the retentivity databases. The storage process is linear over time and, for example, consists in creating a node, adding references and changing the value of variables; the backups follow the order in which the actions are performed, as if it were a ‘project repository’. Multiple storages can be implemented; however, it is important that they monitor independent parts and do not intersect with each other.

Parameters

  • Subtree roots: A retentivity database tracks the changes that are made to a subtree of the project; changes affecting the subtrees that are implemented are all stored. In a typical scenario, a subtree can be an entire project folder () for Example ‘Users’).

  • Write delay: This property is used to define how often to save; the default is zero, since, as soon as a change is detected, it will be saved immediately, compatible with the technical write times. Through Write delay it is possible to set a delay expressed in milliseconds, at the end of which the write of previously packaged data will be guaranteed. Leaving the option at zero milliseconds makes it possible to obtain a real-time backup; however, the possibility that the disc undergoes a greater amount of stress should be considered. Specifying a longer write delay, on the other hand, puts the project at risk of the loss of data included in the set delay interval.

  • Delta observer enabled: In some project runs, it is possible to make changes that are not intended to be saved. In this case, the system ‘deactivates’ the change detection for executions. If set to ‘no’, the retentivity store only applies the changes already stored without detecting future ones. This mode is useful if, for example, we want to use the saved retentivity layer only to apply and restore initial changes, without adding new ones.

Retentivity not only applies to variables, but also to the model in general. So it can also be useful in user management.

See also

Application examples

Creare, modificare ed eliminare utenti