---
 bin/varnishd/cache/cache_fetch.c |    2 ++
 bin/varnishd/common/params.h     |    1 +
 bin/varnishd/mgt/mgt_param.c     |    9 +++++++++
 3 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c
index 06d23e6..8cf9350 100644
--- a/bin/varnishd/cache/cache_fetch.c
+++ b/bin/varnishd/cache/cache_fetch.c
@@ -189,6 +189,8 @@ FetchStorage(struct worker *wrk, ssize_t sz)
                l = sz;
        if (l == 0)
                l = cache_param->fetch_chunksize;
+       if (wrk->busyobj->do_stream && l > cache_param->stream_maxchunksize)
+               l = cache_param->stream_maxchunksize;
        st = STV_alloc(wrk, l);
        if (st == NULL) {
                (void)FetchError(wrk, "Could not get storage");
diff --git a/bin/varnishd/common/params.h b/bin/varnishd/common/params.h
index 6c1899a..f0445ae 100644
--- a/bin/varnishd/common/params.h
+++ b/bin/varnishd/common/params.h
@@ -98,6 +98,7 @@ struct params {
        /* Fetcher hints */
        ssize_t                 fetch_chunksize;
        ssize_t                 fetch_maxchunksize;
+       ssize_t                 stream_maxchunksize;
        unsigned                nuke_limit;
 
 #ifdef SENDFILE_WORKS
diff --git a/bin/varnishd/mgt/mgt_param.c b/bin/varnishd/mgt/mgt_param.c
index c984aae..227ea3a 100644
--- a/bin/varnishd/mgt/mgt_param.c
+++ b/bin/varnishd/mgt/mgt_param.c
@@ -837,6 +837,15 @@ static const struct parspec input_parspec[] = {
                "fragmentation.\n",
                EXPERIMENTAL,
                "256m", "bytes" },
+       { "stream_maxchunksize",
+               tweak_bytes_u,
+                   &mgt_param.stream_maxchunksize, 4 * 1024, UINT_MAX,
+               "The maximum chunksize we attempt to allocate from storage "
+               "when streaming. This also defines the intervals at which "
+               "the streaming clients receive notifications about new "
+               "data available.\n",
+               EXPERIMENTAL,
+               "256k", "bytes" },
 #ifdef SENDFILE_WORKS
        { "sendfile_threshold",
                tweak_bytes, &mgt_param.sendfile_threshold, 0, HUGE_VAL,
-- 
1.7.4.1


_______________________________________________
varnish-dev mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev

Reply via email to