-
-
Notifications
You must be signed in to change notification settings - Fork 227
TASK: (Re-)introduce runtime cache on content repository #5505
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 9.0
Are you sure you want to change the base?
TASK: (Re-)introduce runtime cache on content repository #5505
Conversation
to cache all workspaces `findWorkspaces()` and `getContentGraph()`. Single calls to `findWorkspaceByName()` DONT build up a cache and if `findWorkspaces()` was not used before will not be cached. This is a little odd but simplifies the caching greatly. History of runtime caches: - building the content graph got more expensive with the need to fetch the workspaces current content stream id (last optimised via neos#5274) - the default subgraph does not contain runtime caches anymore neos#5243 - the content graph runtime cache was removed via neos#5246 - the workspaces cache was removed when removing the old WorkspaceFinder neos#5096 Also in the history a LOT of rewiring was done over and over. So the final state of the `ContentGraphReadModelInterface` and the `ContentRepository` exposing these API's is relatively knew and allows us to implement caching AND invalidation at the same place. The raw `ContentGraphReadModelInterface` still contains no caches and will be uncached inside a catchup hook.
We could also introduce this cache in the adapters, thought the And further we would be able to clear the cache on |
I appreciate you doing this, but I would actually wait and plan this properly. I don't see obvious problems, BUT well long running process while something else changes workspaces... things could get awkward? |
jup my gut also says to wait rather than to go forward with this as there are still downsides:
in the end, we have lived some time without these caches, and it might be already good enough to ensure my reasoning to make this pr NOW is that we will NOT introduce runtime caches in a patch as "performance patch" as this could definitely hiccup some things. So if we decide we need them it will definitely be 9.x ;) In that case we should definitely remove the |
…cache we wont add a runtime cache for now: neos#5505
…cache we wont add a runtime cache for now: neos/neos-development-collection#5505
i gave two promises :D for one we said we wont add the runtime caches for the release, but also i told christian ill do it :D so here it is, all to be discussed:
to cache all workspaces
findWorkspaces()
andgetContentGraph()
. Single calls tofindWorkspaceByName()
DONT build up a cache and iffindWorkspaces()
was not used before will not be cached. This is a little odd but simplifies the caching greatly.History of runtime caches:
Also in the history a LOT of rewiring was done over and over. So the final state of the
ContentGraphReadModelInterface
and theContentRepository
exposing these API's is relatively knew and allows us to implement caching AND invalidation at the same place.The raw
ContentGraphReadModelInterface
still contains no caches and will be uncached inside a catchup hook.Upgrade instructions
Review instructions
Checklist
FEATURE|TASK|BUGFIX
!!!
and have upgrade-instructions