Skip to content

Commit 97f1fa0

Browse files
committed
refactor: remove the use of knownResourceVersions
closes: #2984 Signed-off-by: Steve Hawkins <[email protected]>
1 parent 87ec587 commit 97f1fa0

File tree

3 files changed

+3
-23
lines changed

3 files changed

+3
-23
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,6 @@ private synchronized void onAddOrUpdate(
192192
}
193193

194194
private boolean canSkipEvent(R newObject, R oldObject, ResourceID resourceID) {
195-
if (temporaryResourceCache.isKnownResourceVersion(newObject)) {
196-
return true;
197-
}
198195
var res = temporaryResourceCache.getResourceFromCache(resourceID);
199196
if (res.isEmpty()) {
200197
return isEventKnownFromAnnotation(newObject, oldObject);
@@ -208,7 +205,8 @@ private boolean canSkipEvent(R newObject, R oldObject, ResourceID resourceID) {
208205
"Resource found in temporal cache for id: {} resource versions equal: {}",
209206
resourceID,
210207
resVersionsEqual);
211-
return resVersionsEqual;
208+
return resVersionsEqual
209+
|| temporaryResourceCache.isLaterResourceVersion(resourceID, res.get(), newObject);
212210
}
213211

214212
private boolean isEventKnownFromAnnotation(R newObject, R oldObject) {

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,12 @@ void clean() {
8080
private final ExpirationCache<String> tombstones = new ExpirationCache<>(1000000, 1200000);
8181
private final ManagedInformerEventSource<T, ?, ?> managedInformerEventSource;
8282
private final boolean parseResourceVersions;
83-
private final ExpirationCache<String> knownResourceVersions;
8483

8584
public TemporaryResourceCache(
8685
ManagedInformerEventSource<T, ?, ?> managedInformerEventSource,
8786
boolean parseResourceVersions) {
8887
this.managedInformerEventSource = managedInformerEventSource;
8988
this.parseResourceVersions = parseResourceVersions;
90-
if (parseResourceVersions) {
91-
// keep up to the 50000 add/updates for up to 5 minutes
92-
knownResourceVersions = new ExpirationCache<>(50000, 600000);
93-
} else {
94-
knownResourceVersions = null;
95-
}
9689
}
9790

9891
public synchronized void onDeleteEvent(T resource, boolean unknownState) {
@@ -122,9 +115,6 @@ public synchronized void putAddedResource(T newResource) {
122115
* @param previousResourceVersion null indicates an add
123116
*/
124117
public synchronized void putResource(T newResource, String previousResourceVersion) {
125-
if (knownResourceVersions != null) {
126-
knownResourceVersions.add(newResource.getMetadata().getResourceVersion());
127-
}
128118
var resourceId = ResourceID.fromResource(newResource);
129119
var cachedResource = managedInformerEventSource.get(resourceId).orElse(null);
130120

@@ -159,17 +149,12 @@ public synchronized void putResource(T newResource, String previousResourceVersi
159149
}
160150
}
161151

162-
public synchronized boolean isKnownResourceVersion(T resource) {
163-
return knownResourceVersions != null
164-
&& knownResourceVersions.contains(resource.getMetadata().getResourceVersion());
165-
}
166-
167152
/**
168153
* @return true if {@link ConfigurationService#parseResourceVersionsForEventFilteringAndCaching()}
169154
* is enabled and the resourceVersion of newResource is numerically greater than
170155
* cachedResource, otherwise false
171156
*/
172-
private boolean isLaterResourceVersion(ResourceID resourceId, T newResource, T cachedResource) {
157+
public boolean isLaterResourceVersion(ResourceID resourceId, T newResource, T cachedResource) {
173158
try {
174159
if (parseResourceVersions
175160
&& Long.parseLong(newResource.getMetadata().getResourceVersion())

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryPrimaryResourceCacheTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,6 @@ void removesResourceFromCache() {
9696
void resourceVersionParsing() {
9797
this.temporaryResourceCache = new TemporaryResourceCache<>(informerEventSource, true);
9898

99-
assertThat(temporaryResourceCache.isKnownResourceVersion(testResource())).isFalse();
100-
10199
ConfigMap testResource = propagateTestResourceToCache();
102100

103101
// an event with a newer version will not remove
@@ -108,7 +106,6 @@ void resourceVersionParsing() {
108106
.endMetadata()
109107
.build());
110108

111-
assertThat(temporaryResourceCache.isKnownResourceVersion(testResource)).isTrue();
112109
assertThat(temporaryResourceCache.getResourceFromCache(ResourceID.fromResource(testResource)))
113110
.isPresent();
114111

0 commit comments

Comments
 (0)