CacheInvalidation
No edit summary
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

This page was edited 34 days ago on 03/26/2024. What links here