[Varnish] #1090: Latency for streaming using byte range requests

Varnish varnish-bugs at varnish-cache.org
Mon Feb 6 10:49:43 CET 2012


#1090: Latency for streaming using byte range requests
--------------------+-------------------------------------------------------
 Reporter:  helmer  |        Type:  enhancement
   Status:  new     |    Priority:  normal     
Milestone:          |   Component:  varnishd   
  Version:  3.0.2   |    Severity:  normal     
 Keywords:          |  
--------------------+-------------------------------------------------------
 This ticket regards the streaming support, the version used is from the
 streaming branch, 3.0.2-streaming.2 (Dec 8).

 We have been looking at using the new streaming support in Varnish to
 accelerate Widevine content. A Widevine player gets content roughly in the
 following fashion:

 The player first makes a regular http GET for the file, reads the first
 (approx) 100k bytes, closes the connection and then makes a new http
 request, specifying a byte range starting somewhere in the file and with
 an open ending.

 To mimic this we tried:
 {{{
 > curl -o /dev/null -s -m 1 http://test_server/blob.wvm
 }}}
 where the media file blob.wvm is about 650 MB (the complete file won't be
 transferred to Varnish within the 1 second limit used by
 curl, -m 1), and then:
 {{{
 > curl -o /dev/null -s -H 'Range: bytes=1234567-'
 http://test_server/blob.wvm
 }}}
 This results in two GET to the origin server for the complete file. Since
 Varnish asks the origin for the complete file, users will experience a
 (sometimes considerable) latency when the file is not in cache. For this
 use case support for byte range requests to the origin would be of great
 value (to our understanding not implemented, suggested enhancement).


 Information about our environment: CentoS 5.5, we compiled the source
 "plain vanilla" with gcc 4.1.2. The default.vcl was used with streaming
 enabled:
 {{{
 sub vcl_fetch {
     set beresp.do_stream = true;
 }
 }}}
 We started varnishd with
 {{{
 /usr/local/sbin/varnishd -f /usr/local/etc/varnish/default.vcl -s
 malloc,256M -s persistent,/var/varnish/varnish.cache,2048M -p
 default_ttl=7200 -T 127.0.0.1:2000 -a 0.0.0.0:8080
 }}}

 I added Martin as cc, since he has been working on this.

-- 
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1090>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator




More information about the varnish-bugs mailing list