Skip to content

blog: primary resource caching #2815

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

Open
wants to merge 14 commits into
base: main
Choose a base branch
from
Open

blog: primary resource caching #2815

wants to merge 14 commits into from

Conversation

csviri
Copy link
Collaborator

@csviri csviri commented May 21, 2025

No description provided.

csviri added 3 commits May 21, 2025 14:21
Signed-off-by: Attila Mészáros <[email protected]>
Signed-off-by: Attila Mészáros <[email protected]>
Signed-off-by: Attila Mészáros <[email protected]>
@openshift-ci openshift-ci bot requested review from metacosm and xstefank May 21, 2025 15:07
@csviri csviri changed the title 5.1 blogpost blog: primary resource caching May 21, 2025
@csviri csviri marked this pull request as draft May 21, 2025 15:09
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 21, 2025
Signed-off-by: Attila Mészáros <[email protected]>
@csviri csviri marked this pull request as ready for review May 22, 2025 07:24
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 22, 2025
@openshift-ci openshift-ci bot requested a review from xstefank May 22, 2025 07:24
csviri added 4 commits May 22, 2025 09:24
Signed-off-by: Attila Mészáros <[email protected]>
Signed-off-by: Attila Mészáros <[email protected]>
Signed-off-by: Attila Mészáros <[email protected]>
Signed-off-by: Attila Mészáros <[email protected]>
csviri and others added 3 commits May 22, 2025 12:39
Signed-off-by: Attila Mészáros <[email protected]>
Signed-off-by: Attila Mészáros <[email protected]>
Signed-off-by: Chris Laprun <[email protected]>
// using the utility instead of update control
var updated =
PrimaryUpdateAndCacheUtils.ssaPatchStatusAndCacheResource(resource, freshCopy, context);
return UpdateControl.noUpdate();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you return noUpdate here? Shouldn't it return patchStatus instead?

The trick is to cache the resource from the response of our update in an additional cache on top of the informer's cache.
If we read the resource, we first check if it is in the overlay cache and read it from there if present, otherwise read it from the cache of the informer.
If the informer receives an event with a fresh resource, we always remove the resource from the overlay
cache, since that is a more recent resource. But this **works only** if the update is done **with optimistic locking**.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does "update" refer to here? This isn't clear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants