Hans Karlsen (talk | contribs) No edit summary |
Hans Karlsen (talk | contribs) No edit summary |
||
Line 31: | Line 31: | ||
(ie other end of OptionalAssociationEndNameForBeingIncluded , does it point to id -> invalidate) | (ie other end of OptionalAssociationEndNameForBeingIncluded , does it point to id -> invalidate) | ||
===== Upon UpdateLoop ===== | |||
We look for Invalidated that has the diff between Now and Invalidated higher than allow oldness, we sort these by priority. | |||
For each cache found we instansiate the named ViewModel with for the given root object. | |||
We execute all actions on the ViewModel | |||
We save all the possible changes that happened during cache - allowing us to set persisted calculated fields and create persisted derived objects. | |||
We collect all loaded objects in the scope of the viewmodel expressions and when following links we create a manifest row stating the association. We also create a manifest row for each object found |
Revision as of 17:04, 18 March 2019
This is work in progress and not available for production
MDrivenCacheInvalidationAdmin
- LastInvallidationLoop
- LastUpdateLoop
MDrivenCacheInvalidationRecentlyUpdated
- id
- class
- time
MDrivenCacheManifestHead
- ViewModel
- RootId
- Class
- viewmodelMetaChecksum // set on update
- priority // set by viewmodel property - this way information can control importance!
- AllowOldness // set by viewmodel property - this way information can control when
- Updated // set on update
- Invalidated
MDrivenCacheManifestRow
- Id
- Class
- OptionalAssociationEndNameForBeingIncluded
Upon normal save
new rows are inserted in MDrivenCacheInvalidationRecentlyUpdated
Upon InvalidationLoop
we look for direct hits on id and invalidate
we look for any objects of class that has been changed recently that now should be part of the set
(ie other end of OptionalAssociationEndNameForBeingIncluded , does it point to id -> invalidate)
Upon UpdateLoop
We look for Invalidated that has the diff between Now and Invalidated higher than allow oldness, we sort these by priority.
For each cache found we instansiate the named ViewModel with for the given root object.
We execute all actions on the ViewModel
We save all the possible changes that happened during cache - allowing us to set persisted calculated fields and create persisted derived objects.
We collect all loaded objects in the scope of the viewmodel expressions and when following links we create a manifest row stating the association. We also create a manifest row for each object found