Lazy class has a
.clear() method. When called, the reference held in the Lazy Reference is removed and only the ID is kept so that the instance can be reloaded when needed.
So that the Lazy References do not have to be managed manually, but the whole goes automatically, there is the following mechanism: Each
Lazy instance has a
lastTouched timestamp. Each
.get() call sets it to the current time. This will tell you how long a Lazy Reference has not been used, i.e. if it is needed at all.
LazyReferenceManager audits this. It is enabled by default, with a timeout of 1,000,000 milliseconds, which is about 15 minutes.
A custom manager can be set easily, which should happen before a storage is started.
LazyReferenceManager.set(LazyReferenceManager.New(Lazy.Checker(Duration.ofMinutes(30).toMillis(), // timeout of lazy access0.75 // memory quota));
The timeout of lazy references is set to 30 minutes, meaning references which haven't been touched for this time are cleared. In combination with a memory quota of 0.75.