Root / Assembly / ARCCore / AREnumType / DocumentationOnlyEnum / ARConcepts / _Member / DataRetention
|Description||The concept of when to delete old data (if deemed necessary).|
Because of inherent traits of the PropertyStream concept, data will never be deleted by default.
This might result in unacceptable storage requirements / low performance. Some functionality for deletion is therefore envisaged to be necessary to implement.
See NoRealDeletion for details.
TODO: Not implemented as of Mar 2020. Not decided if should be in a specific ARComponents or just part of ARCCore.
Will probably be a specific BasePKAttribute called PKRetAttribute, maybe also something added to ClassAttribute (or something added to EnumAttribute. As of Apr 2020 we have not decided where / how to tag 'entity'-classes).
Note that retention at application level is also plausible. One scenario could be a high-availability log-collector delivering log-data to more simple (cheaper) final storage nodes that are not necessarily high-availablity themselves. The log-collector only has to keep data for as long as the final storage nodes are tolerated to be offline.
|LongDescription||Some ideas for how to do this:|
Use a concept of 'revision number' in the actual storage file (as of Apr 2020 StreamProcessor is prepared for this (see its _storage-member) but use of it is not supported).
Example: We start with file 2020-04-13 14:19.R00001.txt and after the first compacting we store a new file called 2020-04-13 14:19.R00002.txt.
As long as there are clients 'using' the old file, it can be kept on disk (in order for ClientUpdatePosition to be compatible.
OR, more probable, compact by leaving empty-lines, thereby making ClientUpdatePosition unchanged.
We can also have a cut-off of for instance a month, and just not accept ClientUpdatePosition older than this.
(A backup mechanism could also be to build a 'last Timestamp' feature into ClientUpdatePosition, and use that as a last resort when file position can not be used).
Generated 2020-10-13 11:11:01.084 UTC