Skip to content

Commit

Permalink
Merge #261 [backport 28]fix: Avoid clear cache with prefix [maybe nee…
Browse files Browse the repository at this point in the history
…ded for 29]
  • Loading branch information
rhtot committed Mar 12, 2024
2 parents e4df462 + 7839743 commit 945b2e5
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions lib/private/Collaboration/Reference/ReferenceManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,11 @@ public function resolveReference(string $referenceId): ?IReference {

$reference = $matchedProvider->resolveReference($referenceId);
if ($reference) {
$cachePrefix = $matchedProvider->getCachePrefix($referenceId);
if ($cachePrefix !== '') {
// If a prefix is used we set an additional key to know when we need to delete by prefix during invalidateCache()
$this->cache->set('hasPrefix-' . md5($cachePrefix), true, self::CACHE_TTL);
}
$this->cache->set($cacheKey, Reference::toCache($reference), self::CACHE_TTL);
return $reference;
}
Expand Down Expand Up @@ -161,11 +166,15 @@ private function getFullCacheKey(IReferenceProvider $provider, string $reference
*/
public function invalidateCache(string $cachePrefix, ?string $cacheKey = null): void {
if ($cacheKey === null) {
$this->cache->clear(md5($cachePrefix));
// clear might be a heavy operation, so we only do it if there have actually been keys set
if ($this->cache->remove('hasPrefix-' . md5($cachePrefix))) {
$this->cache->clear(md5($cachePrefix));
}

return;
}

$this->cache->remove(md5($cachePrefix) . '-' . md5($cacheKey));
$this->cache->remove(md5($cachePrefix) . '-' . md5($cacheKey ?? ''));
}

/**
Expand Down

0 comments on commit 945b2e5

Please sign in to comment.