How to make multiple clients can get the response at the same time by stream.

Per Buer perbu at varnish-software.com
Wed Jan 30 16:07:41 CET 2013


No. It doesn't work.

You'll end with multiple versions of the same object in memory and you'll
disable caching when multiple requests are taking place. Sort of like a
braindamaged "pass" that doesn't free up the memory when the request is
done.



On Wed, Jan 30, 2013 at 11:22 AM, Jakub Słociński <kuba at ovh.net> wrote:

>
> Hi,
> I would bet that hash_ignore_busy works under the version Xianzhe Wang
> mentioned - 3.0.2-streaming :)
>
> --
> Regards,
> Jakub Słociński
>
> Per Buer napisał(a):
> > Hi.
> >
> > On Tue, Jan 29, 2013 at 1:13 PM, Jakub Słociński <kuba at ovh.net> wrote:
> >
> > > Hi Xianzhe Wang,
> > > you should try option
> > > "set req.hash_ignore_busy = true;"
> > > in vlc_recv.
> > >
> >
> > No. This won't work.
> >
> > Plain vanilla varnish doesn't support streaming properly. You should use
> > the "plus" branch of Varnish if you need it.
> >
> >
> >
> >
> >
> > >
> > > Regards,
> > > --
> > > Jakub S.
> > >
> > >
> > > Xianzhe Wang napisał(a):
> > > > Hello everyone,
> > > >     My varnish version is 3.0.2-streaming release.And I set
> > > > "beresp.do_stream  = true" in vcl_fetch in order to "Deliver the
> object
> > > to
> > > > the client directly without fetching the whole object into varnish";
> > > >
> > > > This is a part of my *.vcl file:
> > > >
> > > >  sub vcl_fetch {
> > > >     set beresp.grace = 30m;
> > > >
> > > >     set beresp.do_stream = true;
> > > >
> > > >     if (beresp.http.Content-Length && beresp.http.Content-Length ~
> > > > "[0-9]{8,}") {
> > > >        return (hit_for_pass);
> > > >     }
> > > >
> > > >      if (beresp.http.Pragma ~ "no-cache" ||
> beresp.http.Cache-Control ~
> > > > "no-cache" || beresp.http.Cache-Control ~ "private") {
> > > >            return (hit_for_pass);
> > > >        }
> > > >
> > > >      if (beresp.ttl <= 0s ||
> > > >          beresp.http.Set-Cookie ||
> > > >          beresp.http.Vary == "*") {
> > > >
> > > >                 set beresp.ttl = 120 s;
> > > >                 return (hit_for_pass);
> > > >      }
> > > >
> > > >     return (deliver);
> > > >  }
> > > >
> > > > Then I request a big file(about 100M+) like "xxx.zip" from
> clients.There
> > > is
> > > > only one client can access the object.because "the object will
> marked as
> > > > busy as it is delivered."
> > > >
> > > > But if  the request goes directly to “pass” ,multiple clients can
> get the
> > > > response at the same time.
> > > >
> > > > Also if I remove
> > > >   if (beresp.http.Content-Length && beresp.http.Content-Length ~
> > > > "[0-9]{8,}") {
> > > >        return (hit_for_pass);
> > > >     }
> > > > to make the file cacheable,multiple clients can get the response at
> the
> > > > same time.
> > > >
> > > > Now I want "multiple clients can get the response at the same time."
> in
> > > all
> > > > situations("pass","hit","hit_for_pass").
> > > >
> > > > What can I do for it?
> > > > Any suggestions  will be appreciate.
> > > > Thank you.
> > > >
> > > >  -Shawn Wang
> > >
> > > > _______________________________________________
> > > > varnish-misc mailing list
> > > > varnish-misc at varnish-cache.org
> > > > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
> > >
> > >
> > > _______________________________________________
> > > varnish-misc mailing list
> > > varnish-misc at varnish-cache.org
> > > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
> >
> >
> >
> >
> > --
> >  <http://www.varnish-software.com/> *Per Buer*
> > CEO | Varnish Software AS
> > Phone: +47 958 39 117 | Skype: per.buer
> > We Make Websites Fly!
>



-- 
 <http://www.varnish-software.com/> *Per Buer*
CEO | Varnish Software AS
Phone: +47 958 39 117 | Skype: per.buer
We Make Websites Fly!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20130130/602b5aa8/attachment.html>


More information about the varnish-misc mailing list