Hello. Yes, i already did it, and noticed change. But this not what i'm looking for.
As this option doesn't provide: "instantly reply to client Location...", i'm forced to return(deliver). I'll repeat: - If MISS: - - Thread #1: start caching data into storage - - Main thread: reply to client: synth(503, "Moved Temporarily") - If UPDAING: - - Main thread: reply to client: synth(503, "Moved Temporarily") - If HIT: - - Main thread: serve cached data And beresp.do_stream is just non-blocking IO. While i'm looking for "Detaching backend-to-cache-routine into different thread, while main thread responses to client 'Location: http://backend/$req.url'" > On Dec 18, 2016, at 3:58 AM, Mark Staudinger <[email protected]> wrote: > > Hi Anton, > > Have you looked into the "do_stream" feature of Varnish? This will begin > serving the content to the visitor without waiting for the entire object to > be downloaded and stored in cache. Set in vcl_backend_response. > > https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl > > Cheers, > Mark > > On Sat, 17 Dec 2016 19:05:48 -0500, Anton Berezhkov > <[email protected]> wrote: > >> Hello. >> >> Switched to Varnish from Nginx for additional functionality and better >> control of handling requests. >> But still can't implement what i want. And I want simple behaviour "Redirect >> on MISS/PASS". >> I want to use VC for deploying quick "cdn" servers for our mp4-video-servers >> (used for HTML5 players), without need to store all files on this quick >> (ssd, upto 2x480GB space, full database about 6TB). >> >> Currently we have 6 servers with SATA HDDs and hitting iowait like a trucks >> :) >> >> Examples: >> - Request -> Varnish -> HIT: serve it using Varnish. >> - Request -> Varnish -> MISS: start caching data from backend, and instantly >> reply to client: `Location: http://backend/$req.url" >> - Request -> Varnish -> UPDATE: see `-> MISS` behaviour. >> >> From my perspective, i should do this "detach & reply redirect" somewhere in >> `vcl_miss` OR `vcl_backend_fetch`, because if i understood correctly >> https://www.varnish-cache.org/docs/4.1/reference/states.html, i need >> vcl_backend_response to keep run in background (as additional thread) while >> doing return(synth(...)) to redirect user. >> >> Similiar thing is "hitting stale content while object is updating". >> But in my case "replying redirect while object is updating". >> >> Also, i pray to implement this without writing additional scripts, why? I >> could do external php/ruby checker/cache-pusher with nginx & etc. But scared >> by performance downgrade :( >> _______________________________________________ >> varnish-misc mailing list >> [email protected] >> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc _______________________________________________ varnish-misc mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
