Comments (6)
Yeah, if you're caching just for load mitigation in a high usage scenario, the global expiration time on the cache will do the trick fine.
If you're caching because tile generation is slow enough to be noticeable, and you have relatively low usage, then you want your cache to persist until it's actually invalidated by data change.
So many use cases! 😄
from pg_tileserv.
Is there a reason that using something more decoupled, like a reverse caching proxy or even a CDN wouldn't meet your needs? Squid? Nginx with a reverse proxy? Varnish?
from pg_tileserv.
I hadn't thought of that. I do use NGINX for reverse proxying, but hadn't explored its caching functionality, which I'll dig into now.
Thanks for the suggestion, and closing out the issue (looking forward to the upcoming "discussion" feature for this sort of thing).
from pg_tileserv.
I'd love to hear your experience with this approach. I think it's a reasonable approach, but I'd love to hear real-world stories of benefits/drawbacks.
The only operational drawback I can see is that an externally managed cache is hard to link up to a signal from the database when changes in a table invalidate portions of the cache. In an ideal world, insert/update/delete can invalidate the relevant tiles in a cache, but that definitely requires communication between the database and the tile cache.
from pg_tileserv.
Thinking about it, it seems like having a frequent enough cache invalidation (maybe 1-5 minutes?) should generally address that issue, per the proxy_cache_valid NGINX directive. I guess it depends on how concurrent you expect your data to be though. I'll report back when I get some time to tinker with it.
from pg_tileserv.
from pg_tileserv.
Related Issues (20)
- fine grained control of table columns HOT 2
- Sampling of points at lower zoom. HOT 2
- Opt out index/preview pages and/or json metadataendpoints HOT 5
- why cant i query tiles ? HOT 1
- superfluous response.WriteHeader call HOT 1
- Please bump golang.org/x/sys dependency
- Expand jsonb properties in tilejson HOT 1
- pg partionned tables HOT 3
- --version returns latest instead of version number
- Point is not shown when zoom > 1 and longitude is = -90 HOT 1
- How to get labels along with geometries in protobuf tiles rendered using Leaflet.vectorGrid? HOT 1
- Get only the last result in a temporal filter HOT 5
- Proxy configuration at sub-route HOT 2
- Tiles disappearing at particular zoom levels HOT 12
- docker pg_tileserv:20231121 `GLIBC_2.34' not found HOT 9
- Mapbox Vector Tiles (MVT) data Not visible for point layer at lower zoom levels . HOT 1
- config - web site basemap URL
- helm chart? HOT 5
- support fully qualified column names in properties and filter query parameters
- Request: H3 Function Example HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pg_tileserv.