Feature/sdstore implement signature expiration
The MR implements the expiration logic for SelfDescriptions.
For each SD the expiration dateTime of the first Validator that expires is stored. When invalidateSelfDescriptions()
is called, all active SDs with an expiration dateTime that has passed are listed and set to be expired. The number of expired selfDescriptions is returned.
For discussion: A possible Performance optimisation may be required here to limit the number of SDs that are expired in one run, to limit the size of the Transaction. Large transactions that change may rows in a table can cause problems. To implement this, a call to setMaxResults(int)
can be added to the query that fetches the expired selfDescriptions. The caller of the invalidateSelfDescriptions()
can then compare the returned value with the configured maximum, and if they are the same it can commit the open transaction, start a new one and re-call invalidateSelfDescriptions()
.