Skip to content

Commit 4a02911

Browse files
authored
refactor: remove the use of knownResourceVersions (#2985)
closes: #2984 Signed-off-by: Steve Hawkins <[email protected]>
1 parent fb4a073 commit 4a02911

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
@@ -207,9 +207,6 @@ private synchronized void onAddOrUpdate(
207207
}
208208

209209
private boolean canSkipEvent(R newObject, R oldObject, ResourceID resourceID) {
210-
if (temporaryResourceCache.isKnownResourceVersion(newObject)) {
211-
return true;
212-
}
213210
var res = temporaryResourceCache.getResourceFromCache(resourceID);
214211
if (res.isEmpty()) {
215212
return isEventKnownFromAnnotation(newObject, oldObject);
@@ -223,7 +220,8 @@ private boolean canSkipEvent(R newObject, R oldObject, ResourceID resourceID) {
223220
"Resource found in temporal cache for id: {} resource versions equal: {}",
224221
resourceID,
225222
resVersionsEqual);
226-
return resVersionsEqual;
223+
return resVersionsEqual
224+
|| temporaryResourceCache.isLaterResourceVersion(resourceID, res.get(), newObject);
227225
}
228226

229227
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
@@ -95,19 +95,12 @@ void clean() {
9595
private final ExpirationCache<String> tombstones = new ExpirationCache<>(1000000, 1200000);
9696
private final ManagedInformerEventSource<T, ?, ?> managedInformerEventSource;
9797
private final boolean parseResourceVersions;
98-
private final ExpirationCache<String> knownResourceVersions;
9998

10099
public TemporaryResourceCache(
101100
ManagedInformerEventSource<T, ?, ?> managedInformerEventSource,
102101
boolean parseResourceVersions) {
103102
this.managedInformerEventSource = managedInformerEventSource;
104103
this.parseResourceVersions = parseResourceVersions;
105-
if (parseResourceVersions) {
106-
// keep up to the 50000 add/updates for up to 5 minutes
107-
knownResourceVersions = new ExpirationCache<>(50000, 600000);
108-
} else {
109-
knownResourceVersions = null;
110-
}
111104
}
112105

113106
public synchronized void onDeleteEvent(T resource, boolean unknownState) {
@@ -137,9 +130,6 @@ public synchronized void putAddedResource(T newResource) {
137130
* @param previousResourceVersion null indicates an add
138131
*/
139132
public synchronized void putResource(T newResource, String previousResourceVersion) {
140-
if (knownResourceVersions != null) {
141-
knownResourceVersions.add(newResource.getMetadata().getResourceVersion());
142-
}
143133
var resourceId = ResourceID.fromResource(newResource);
144134
var cachedResource = managedInformerEventSource.get(resourceId).orElse(null);
145135

@@ -174,17 +164,12 @@ public synchronized void putResource(T newResource, String previousResourceVersi
174164
}
175165
}
176166

177-
public synchronized boolean isKnownResourceVersion(T resource) {
178-
return knownResourceVersions != null
179-
&& knownResourceVersions.contains(resource.getMetadata().getResourceVersion());
180-
}
181-
182167
/**
183168
* @return true if {@link ConfigurationService#parseResourceVersionsForEventFilteringAndCaching()}
184169
* is enabled and the resourceVersion of newResource is numerically greater than
185170
* cachedResource, otherwise false
186171
*/
187-
private boolean isLaterResourceVersion(ResourceID resourceId, T newResource, T cachedResource) {
172+
public boolean isLaterResourceVersion(ResourceID resourceId, T newResource, T cachedResource) {
188173
try {
189174
if (parseResourceVersions
190175
&& 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
@@ -111,8 +111,6 @@ void removesResourceFromCache() {
111111
void resourceVersionParsing() {
112112
this.temporaryResourceCache = new TemporaryResourceCache<>(informerEventSource, true);
113113

114-
assertThat(temporaryResourceCache.isKnownResourceVersion(testResource())).isFalse();
115-
116114
ConfigMap testResource = propagateTestResourceToCache();
117115

118116
// an event with a newer version will not remove
@@ -123,7 +121,6 @@ void resourceVersionParsing() {
123121
.endMetadata()
124122
.build());
125123

126-
assertThat(temporaryResourceCache.isKnownResourceVersion(testResource)).isTrue();
127124
assertThat(temporaryResourceCache.getResourceFromCache(ResourceID.fromResource(testResource)))
128125
.isPresent();
129126

0 commit comments

Comments
 (0)