[mapserver-users] MapCache: cache some zoom levels, proxy others?

Paul Madden pmadden at nsidc.org
Wed Oct 28 08:20:11 PDT 2015


I am working with a web application that makes WMS queries to MapCache. The application supports zoom levels 0 through 13, and I have used mapcache_seed to seed the cache through level 10. The deeper levels take so long to seed that I am considering stopping at level 10 and letting MapCache / MapServer produce deeper levels on demand, as users visit them. The problem I'm facing is that, as far as I can tell, MapCache requests tiles from MapServer serially, then stitches together the required image from these tiles, when it receives a request for an uncached level. In one test, 34 separate tiles were requested from MapServer, one at a time, and it took ~30 seconds to render the final image.

I'm wondering whether there is a way to configure MapCache to cache/provide a defined set of zoom levels, and to proxy requests at other zoom levels directly to MapServer. I tried setting minzoom and maxzoom on my <grid> in mapcache.xml to "0 10". I tried adding a proxy for my cached layer, hoping that MapCache would redirect requests for unsupported zoom levels to MapServer (I have proxies in place for other, completely uncached layers, and those work fine). I tried copying/renaming the GoogleMapsCompatible grid definition into my mapcache.xml and removing from <resolutions> zoom levels I don't want MapCache to cache. So far, these attempts apparently just prevent MapCache from serving the deeper layers at all.

Any thoughts on how I might address this issue? It might also help if MapCache would make concurrent requests for tiles at uncached levels, but I have no idea if this is feasible. And it would be nice to be able to let MapServer handle some zoom levels directly in any case.

Thanks in advance for any ideas.

Paul Madden
National Snow and Ice Data Center


More information about the mapserver-users mailing list