Caching Dynamic Servers

Currently tile caching only works well on data that is never updated. If there is an update one has to manually start a re-seeding process. A much better approach for all but the most dynamic data is to automatically truncate and optionally reseed areas of the cache that are actually affected by a change in data, leaving the rest of the cache untouched. GeoWebCache should have ways to listen to a server to know when to update a cache, and it should notify clients of changes using standard methods. There are several tech pieces needed to reach this goal:
  • Expiration of tiles based on a GeoRSS feed. The OWS-5 OGC testbed explored a 'Geosynchronization' feed to notify about WFS transactions. This could be further generalized so that any server could emit a GeoRSS feed of changes, that GeoWebCache could expire based on.
  • Expiration of tiles based on GeoServer changes. The GeoWebCache plug-in for GeoServer should be able to talk directly to the server, receiving notifications of data or style changes.
  • Implemenation of proper Conditional Get http headers so clients are aware of changes. There should be options to configure how often clients will check the cache. In an edit mode they may want to check much more often than a user just browser, who would be ok if they don't see changes instantly.
  • Manual notification: there should be a GUI for the providers of the WMS's being cached to manually notify that their backend data has changed in some way, perhaps by drawing on a map through the web to expire the right area.
  • Google Earth regionation updating: the dynamic caching should also be built to work with KML generated for Google Earth. To achieve this the index that holds the regionation data must also be updated appropriately.

The combination of these tech components should lead to a very robust, powerful cache that works with dynamic datasets. It should be a big step forward for anyone serving data that is not completely static or completely dynamic, by having the cache automatically update itself, instead of growing stale when not paid attention to.

Funding

This roadmap item was funded.

Get a quote now!

Get a quote or read more about core development to add your support to a road-map item.

Other Roadmap Items

Clustering

Several improvements to GeoWebCache could be done to better support clustering for reliability and scalability. While traditional clustering techniques work there are several unique aspects of geospatial cache clustering which can be optimized for directly in the GeoWebCache codebase.

Seeding Improvements

Seeding is the process of pre-populating the cache with tiles. Currently a seed request can only take a bounding box. One improvement we could make is to let the seeder take a polygon, which can efficiently delimit the area of interest, saving significant time and bandwidth. Another improvement to be made is depth-first seeding, for cases when the center of the seed is of the most interest.

Caching Dynamic Servers

Funded: GeoWebCache does a great job caching static datasets and these improvements help make it a more active cache.

All roadmap items...