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 16 commits into
base: main
Choose a base branch
from
Open

blog: primary resource caching #2815

wants to merge 16 commits into from

Conversation

csviri
Copy link
Collaborator

@csviri csviri commented May 21, 2025

No description provided.

@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
@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
// 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?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

It should not, the utils doess the patching.

Copy link
Collaborator

Choose a reason for hiding this comment

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

So, to be clear, if a user wants to use the utils, they need to return noUpdate? Or, it's just that it won't matter if they return something else?
Either way, that should be documented.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

using the utility instead of update control , yes that might not be enough, will, expand on that, also a separate PR for the core docs

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.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

improved wording ot it

@csviri csviri requested a review from metacosm May 23, 2025 15:39
csviri and others added 16 commits May 23, 2025 17:44
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]>
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]>
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]>
Signed-off-by: Attila Mészáros <[email protected]>
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