Status Update
Comments
pr...@google.com <pr...@google.com>
al...@gmail.com <al...@gmail.com> #2
Please also publish the list of all cities where edge servers are located and keep the list up-to-date.
We need to know where the edge servers are in order to decide whether to use a third-party CDN service or a set of custom reverse proxies to improve performance for our user base. Some apps have most of their users in one region, country or city.
Competing CDNs publish this kind of information and do not consider it a trade secret. On the contrary, they treat the map of their edge locations as a marketing material.
We need to know where the edge servers are in order to decide whether to use a third-party CDN service or a set of custom reverse proxies to improve performance for our user base. Some apps have most of their users in one region, country or city.
Competing CDNs publish this kind of information and do not consider it a trade secret. On the contrary, they treat the map of their edge locations as a marketing material.
Description
Although I said this doesn't need to be documented -- the idea being that because of the nature of the caching, your app needs to work whether it is present or not -- there are many implementation details of HTTP caching which influence how you write code for best performance. Some of these details could be determined by experiment, but they are also likely to change as Google tunes the implementation and adds features.
For this reason it would be most helpful if Google would document how the HTTP reverse caching proxy works. Here are some questions I have:
1) Is there a lower bound on entity size? Will a full size 10MB entity be cached?
2) Is there a min/max ttl? Can an entity be cached for 30 sec, 10 sec?
3) Will response codes other 200 be cached? Redirects? Errors?
4) Will a response with a X-AppEngine-BlobKey header be cached and future requests directed to the high-performance blob serving infrastructure, somewhat like get_serving_url()?
5) Is the Vary header handled, or does this disable caching? Is there a limit to how many headers may vary? May the Set-Cookie header vary?
6) Will the cache serve byte ranges?
7) Will the cache serve dynamically gzipped entities?
8) Is the s-maxage cache-control directive supported? Which other HTTP Cache-Control directives are supported?
9) Does the cache revalidate stale entities? Using which mechanisms, and under which circumstances?
10) How big is the cache?