<div dir="ltr"><div>Thanks, Sean</div><div><br></div><div>I followed the links. it seem to be working only for HTTP and not for HTTPS, I might still use it.</div><div><br></div><div>One thing you need to consider when using Nginx split caching is to configure the range of the content you want to cache. <br></div><div><br></div><div>if you are caching range is 1K and your block is 999-1500 nginx will fetch blocks 0-1024 and 1024-2048 to return you the block you originally requested, I wonder if I can align this range configuration to the data blocks in a COG, I think I can't right? there is no way of knowing the sizes of the block without reading the headers, right? especially if I am using compression,</div><div><br></div><div>Guy<br></div><div><br></div><div> <br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 3, 2018 at 7:34 PM, Sean Gillies <span dir="ltr"><<a href="mailto:sean@mapbox.com" target="_blank">sean@mapbox.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Guy,<br><br><div class="gmail_quote"><div><div class="h5"><div dir="ltr">On Tue, Jul 3, 2018 at 12:06 AM Guy Doulberg <<a href="mailto:guyd@satellogic.com" target="_blank">guyd@satellogic.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi guys,</div><div><br></div><div>I am working on a tileserver use case on top of cogs.</div><div><br></div><div>I  want to find a cache mechanism to my architecture.</div><div><br></div><div>The tile-server architecture is several python processes(gunicorn) running on several VMs. <br></div><div><br></div><div>I understand how GDAL caches the curl blocks or the raster using intra-process caching, but I can't use this cache in the other processes/vms.</div><div><br></div><div>I was thinking maybe to use some kind of http proxy server that will cache the bytes content retrieved from the http server holding the cogs (Azure blob storage)</div><div><br></div><div>There is some data that can be reused(therefore cached) across all tile requests for example:</div><div>1. The file size (HEAD)</div><div>2. The first header block</div><div>3. The other header blocks <br></div><div>4. maybe in some cases the image blocks themselves (in case you take the same blocks all the time but change something in the presentation layer)<br></div><div><br></div><div>did any of you tried this architecture or used a different way to cache across servers?  maybe there is a way to share GDAL_CACHE across process that I missed?</div><div><br></div><div>Thanks,</div><div>Guy<br></div></div></blockquote><div><br></div></div></div><div>Nginx advertises some support for byte range caching that I've been meaning to try: <a href="https://www.nginx.com/blog/smart-efficient-byte-range-caching-nginx/" target="_blank">https://www.nginx.com/blog/<wbr>smart-efficient-byte-range-<wbr>caching-nginx/</a>.</div><div><br></div><div>My own strategy so far has been to deploy to the same cloud as the data and profit from higher bandwidth and not to think about caching very much at all.<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div><br></div></font></span></div><span class="HOEnZb"><font color="#888888">-- <br><div dir="ltr" class="m_-6455161679233037035gmail_signature"><div dir="ltr">Sean Gillies</div></div></font></span></div>
</blockquote></div><br></div>