[Geoserver-users] Cache Invalidation (expiration) between GWC and GS

Hi,

I have a typical setup like:

PostGIS => GS => GWC => Browser.

Can I have preseeded tiles at GeoWebCache that are invalidated (i.e. get expired) on the fly based on caching headers?

That is, is the following possible?:

  1. Browser re-requests a certain tile including If-Modified-Since header

  2. GWC has a preseeded tile but needs to know if the tile is still valid. So GWC passes the request (still with If-Modified-Since) on to GS

  3. GS looks up PostGIS to decide if tile is still valid or not. That is, if the data for the requested area has changed. Depending on that finding…

  4. GS answers “304 Not Modified” or gives GWC the freshly generated tile

  5. GWC updates its cache and passes answer along (either “304 Not Modified” or new tile)

I’ve read about Caching with Last-Modified or E-Tag headers at http://geowebcache.org/docs/current/services/responseheaders.html#last-modified-and-if-modified-since

However, this only handles the communication between browser and GWC. How about the “backend communication” between GS and GWC?

Best,

Jens

Hi Jens,

You could wire PostGIS with a trigger that invalidates portions of the GWC cache as changes take place, i.e. with pgsql-http.

https://github.com/pramsey/pgsql-http

Because, who doesn’t want a browser in their database? J

Best,

Steve

···

http://sig.cmparks.net/cmp-ms-90x122.pngStephen V. Mather
GIS Manager
(216) 635-3243 (Work)
clevelandmetroparks.com


From: Nachtigall, Jens (init) Jens.Nachtigall@anonymised.com
Sent: Thursday, August 21, 2014 9:25 AM
To: geoserver-users@lists.sourceforge.net
Subject: [Geoserver-users] Cache Invalidation (expiration) between GWC and GS

Hi,

I have a typical setup like:

PostGIS => GS => GWC => Browser.

Can I have preseeded tiles at GeoWebCache that are invalidated (i.e. get expired) on the fly based on caching headers?

That is, is the following possible?:

  1. Browser re-requests a certain tile including If-Modified-Since header

  2. GWC has a preseeded tile but needs to know if the tile is still valid. So GWC passes the request (still with If-Modified-Since) on to GS

  3. GS looks up PostGIS to decide if tile is still valid or not. That is, if the data for the requested area has changed. Depending on that finding…

  4. GS answers “304 Not Modified” or gives GWC the freshly generated tile

  5. GWC updates its cache and passes answer along (either “304 Not Modified” or new tile)

I’ve read about Caching with Last-Modified or E-Tag headers at http://geowebcache.org/docs/current/services/responseheaders.html#last-modified-and-if-modified-since

However, this only handles the communication between browser and GWC. How about the “backend communication” between GS and GWC?

Best,

Jens

Part of the integration of GWC clears areas of the cache based on WFS-T transactions. You can produce a similar effect in a standalone GWC by giving it a georss feed.

Anyone up for turning your PostGIS changes into a GeoRSS feed :slight_smile:

···

Jody Garnett

On Thu, Aug 21, 2014 at 6:25 AM, Nachtigall, Jens (init) <Jens.Nachtigall@anonymised.com> wrote:

Hi,

I have a typical setup like:

PostGIS => GS => GWC => Browser.

Can I have preseeded tiles at GeoWebCache that are invalidated (i.e. get expired) on the fly based on caching headers?

That is, is the following possible?:

  1. Browser re-requests a certain tile including If-Modified-Since header

  2. GWC has a preseeded tile but needs to know if the tile is still valid. So GWC passes the request (still with If-Modified-Since) on to GS

  3. GS looks up PostGIS to decide if tile is still valid or not. That is, if the data for the requested area has changed. Depending on that finding…

  4. GS answers “304 Not Modified” or gives GWC the freshly generated tile

  5. GWC updates its cache and passes answer along (either “304 Not Modified” or new tile)

I’ve read about Caching with Last-Modified or E-Tag headers at http://geowebcache.org/docs/current/services/responseheaders.html#last-modified-and-if-modified-since

However, this only handles the communication between browser and GWC. How about the “backend communication” between GS and GWC?

Best,

Jens


Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/


Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users