@@ -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
@@ -160,8 +150,17 @@ public synchronized void putResource(T newResource, String previousResourceVersi
160150 }
161151
162152 public synchronized boolean isKnownResourceVersion (T resource ) {
163- return knownResourceVersions != null
164- && knownResourceVersions .contains (resource .getMetadata ().getResourceVersion ());
153+ var resourceId = ResourceID .fromResource (resource );
154+ var knownResource = cache .get (resourceId );
155+ if (knownResource == null ) {
156+ knownResource = managedInformerEventSource .get (resourceId ).orElse (null );
157+ }
158+
159+ if (knownResource == null ) {
160+ return tombstones .contains (resource .getMetadata ().getUid ());
161+ }
162+
163+ return isLaterResourceVersion (resourceId , knownResource , resource );
165164 }
166165
167166 /**
0 commit comments