An alternative solution would be to implement an additional layer similar to how Varnish provides "ban lists". The name is a little misleading and refers to banning content from being served from the cache. In a nutshell, Varnish keeps a list of bans which can be regexes. Each cache hit is then checked against all _newer_ bans and reconsidered as a miss in case of match.

Additionally a ban-lurker thread is scanning the cache in the background looking for objects which match bans and evict them. It can help keep the ban list at a reasonable size.

You can read more about it in Varnish tutorial: https://www.varnish-cache.org/docs/3.0/tutorial/purging.html#bans

This method has it drawbacks, particularly if there is a lot of long-lived objects in the cache. Still, it gives more flexibility to admins.

Best regards,
Tomasz Kuzemko
tom...@kuzemko.net

W dniu 20.03.2014 20:48, Alan M. Carroll pisze:
Thursday, March 20, 2014, 1:28:45 PM, you wrote:

So when ATS receives a regex purge request, it must scan the disk for each
and every object in order to retrieve it's URL and compare it to the
pattern being searched. Is this assumption correct?

Yes.

Are our assumptions correct? If so, is there a plan to change the way it's
done (maybe have another index with the URLs, so the lookup would not have
to read from disk?)

We are working on a general upgrade to the cache API to enable plugins to do 
more, but that's not going to be done in the near future and even then it's 
very unlikely we will change this aspect. The problem is this increases the 
memory requirements massively and currently we have people who are having 
problems with sufficient ram for their (multi-hundred terabyte) caches.

Reply via email to