Closed (fixed)
Project:
Acquia Purge
Version:
7.x-1.x-dev
Component:
Code
Priority:
Major
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
12 Dec 2013 at 14:47 UTC
Updated:
28 Jun 2017 at 18:47 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #1
nielsvm commentedHi Richard,
Thank you for your feature request, and you are right that its not supported as we speak.
It depends on the configuration of Acquia Cloud's load balancers and the way our Varnish VCL's are setup. I'm putting this on the roadmap here internally and will let you know once it becomes available through Acquia Purge and how it will work.
Thanks for getting it on our radar, hopefully I can get back to you soon!
Niels
Comment #2
yaelsho commentedHello,
Sounds like a great feature.
I'm trying to looks for option to clear the varnish cache for indexed view. If I'm clearing the views URL varnish cache post cron run, it does clear it. But all the url's related to this views by facet search are not cleared (e.g.- http://www.example.views-url?f[0]=country_name%3ACosta%20Rica").
It will be great to have a wildcard feature to delete them all together.
Thanks, Yael
Comment #3
sbubaron commentedHello,
I am attempting to flush all pages under my /services URL path.
The instructions say:
services/|wildcard is this what I should be doing? Am I way off base? what does |wildcard really mean?
Comment #4
pq commentedHi @nielsvm,
Just to add my support for this feature request. Has there been any progress with this internally?
Thanks,
Paul.
Comment #5
capellicWould also like to see this. Hey @thicknrich, where are you seeing those instructions?
Comment #6
chromix commented@nielsvm I'd like to know if there's anything that could be changed in the module to allow this behavior. Looking at the code, there's no clear way for the module to poll for cached paths matching a certain pattern, so implementing the "|wildcard" suffix would have to happen at the load balancer rather than through the module. Is that the case, in your opinion?
If wildcard support could be added at the module level I'd love to help, but I'd need visibility into the API to see if there's a way to get a list of paths matching a particular pattern. Otherwise, let me know where this is in terms of priority. I have a client who's really looking for this functionality.
Comment #7
pq commentedI'm considering an option that involves enabling the statistics module (yes I know, heresy!) and running a query to find recently accessed paths that match the wildacard pattern and flush them. It's a far less than ideal solution since it will be attempting to flush paths that are already flushed and will likely miss some paths that have dropped out of the statistics table but are still cached in Varnish.
If I can obtain the time / budget to do this, would it be best to write a patch to Acquia Purge (as in would it a potential addition to the module) or a new module?
Either way since this would be a sticking plaster at best, I should mention that the current situation has been seen as an argument against Acquia cloud hosting by a couple of our clients, since there are a number of situations where the only feasible way to flush the related pages is to flush the entire varnish cache from within the Acquia Cloud admin.
Comment #8
pq commentedThinking about it we could add a "purged" column to the accesslog table and use it to reduce the number of redundant purges.
Comment #9
nielsvm commentedThere is - albeit super slow - progress on this front. One piece of evidence in this closed dupe:
https://www.drupal.org/node/2429581
After
7.x-1.2is released, I'll look further to how we can get this facilitated. It barely takes work on AP's side but definitely means a lot of work at the Acquia Cloud side, namely the Varnish implementations for *all* of our customers. Expect this to take longer.Comment #10
yaelsho commented@nielsvm , any news regarding this issue?
The module is already in version 1.3..
Comment #11
tripper54 commentedA big ++ for this issue.
Unless I can purge wildcard paths, the only way I can make my client's site work is to set a short external cache lifetime.
Comment #12
elijah lynnWhat VCL changes need to be made in order to support this on Acquia's side? We are going the custom VCL route and can put this in our VCL file on Acquia.
Thanks
Comment #13
elijah lynnI think the changes on Acquia's side via a custom VCL are to use the ban action when the PURGE method is used in sub vcl_recv {}.
Just submitted this with our custom VCL.
Tested with purging via curl and it works. Gonna play with patching the module now.
Comment #14
cilefen commented@capellic The |wildcard instructions exist in the Content Type specific configuration for Cache Expiration, under "Enter Custom URLs". As expected, |wildcard does not actually work.
Comment #15
jordan8037310 commentedMore ++ for this feature.
With a decoupled Drupal application it is cumbersome to clear individual parameterized requests from Varnish.
Seems like definite limitation is on Acquia's side.
Comment #16
lakshminp commentedI've made the following enhancements to allow for wildcard purges:
1. a table called acquia_purge_url_lookup where all lookup URLs gets stored along with URL params.
2. a configuration called acquia_purge_wildcard set to FALSE by dfault.
3. a new function which can be called to do a bulk purge.
Ex:
Steps to use patch:
1. Run drush updatedb to create the above table.
2. set the wildcard purge configuration to true.
$conf['acquia_purge_wildcard'] = TRUE;call the function wherever its needed, mostly in hook_node_update() or hook_entity_update().
Please review.
Comment #18
elijah lynn#16 it is much easier to ask Acquia for a custom Varnish config and put https://www.drupal.org/node/2155319#comment-10907958 in it.
Comment #19
nielsvm commentedYes, this limitation has been on "Acquia's side" for a long time, but not anymore!
I'm hereby announcing native wild-card support in version 7.x-1.4!
What I mean by native is that this approach will not in anyway, lead to many paths being invalidated at once. Instead, a
drush app news/*will now directly let your Acquia load balancer clean all of these paths in one go, without a heavy queue volume:The only caveat now will be that users who depend on this, will need to setup
DrupalFakeCacheas pagecache backend and are now also immediately instructed to do so after invoking a single wild-card purge:Check out the 7.x-1.4 dev release or wait for it!
Comment #21
lhuria94 commentedAfter going through this, I believe that we would need DrupalFakeCache to be configured in order to make wild card support work correctly. If we see on this page: https://www.drupal.org/node/797346, it is mentioned that it must not be used in production.
If DrupalFakeCache cannot be used on prod, then how we will be able to use wildcard support on production?
Comment #22
bkosborneI *think* the requirement to use DrupalFakeCache for this is to prevent pages from being stored in Drupal's internal page cache, and instead exclusively use Varnish now. Without doing so, a wildcard cache purge in Varnish will work, but not for Drupal's page cache? Do I have that right?
nielsvm, with the new functionality, how do we specify a wildcard path to be purged? The expire module has some help text in it that reads: