[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