[master] 7b841df Write up 2.1.5 â 3.0 beta 1 changes
Tollef Fog Heen
tfheen at varnish-cache.org
Wed May 11 12:06:07 CEST 2011
commit 7b841df818ec169bd7b176e2fd36acbc3cbfb537
Author: Tollef Fog Heen <tfheen at varnish-software.com>
Date: Wed May 11 08:51:55 2011 +0200
Write up 2.1.5 → 3.0 beta 1 changes
diff --git a/doc/changes.rst b/doc/changes.rst
new file mode 100644
index 0000000..780b882
--- /dev/null
+++ b/doc/changes.rst
@@ -0,0 +1,242 @@
+================================
+Changes from 2.1.5 to 3.0 beta 1
+================================
+
+Upcoming changes
+----------------
+
+- The interpretation of bans will change slightly between 3.0 beta 1
+ and 3.0 release. Currently, doing ``ban("req.url == req.url")``
+ will cause the right hand req.url to be interpreted in the context
+ of the request creating the ban. This will change so you will have
+ to do ``ban("req.url == " + req.url)`` instead. This syntax already
+ works and is recommended.
+
+Varnishd
+--------
+
+- Add streaming on ``pass`` and ``miss``. This is controlled by the
+ ``beresp.do_stream`` boolean. This includes support for
+ compression/uncompression.
+- Add support for ESI and gzip.
+- Handle objects larger than 2G.
+- HTTP Range support is now enabled by default
+- The ban lurker is enabled by default
+- if there is a backend or director with the name ``default``, use
+ that as the default backend, otherwise use the first one listed.
+- Add many more stats counters. Amongst those, add per storage
+ backend stats and per-backend statistics.
+- Syslog the platform we are running on
+- The ``-l`` (shared memory log file) argument has been changed,
+ please see the varnishd manual for the new syntax.
+- The ``-S`` and ``-T`` arguments are now stored in the shmlog
+- Fix off-by-one error when exactly filling up the workspace. `Bug #693`_.
+- Make it possible to name storage backends. The names have to be
+ unique.
+- Update usage output to match the code. `Bug #683`_
+- Add per-backend health information to shared memory log.
+- Always recreate the shared memory log on startup.
+- Add a ``vcl_dir`` parameter. This is used to resolve relative path
+ names for ``vcl.load`` and ``include`` in .vcl files.
+- Make it possible to specify ``-T :0``. This causes varnishd to look
+ for a free port automatically. The port is written in the shared
+ memory log so varnishadm can find it.
+- Classify locks into kinds and collect stats for each kind,
+ recording the data in the shared memory log.
+- Auto-detect necessary flags for pthread support and ``VCC_CC``
+ flags. This should make Varnish somewhat happier on Solaris. `Bug
+ #663`_
+- The ``overflow_max`` parameter has been renamed to ``queue_max``.
+- If setting a parameter fails, report which parameter failed as this
+ is not obvious during startup.
+- Add a parameter named ``shortlived``. Objects whose TTL is less
+ than the parameter go into transient (malloc) storage.
+- Reduce the default ``thread_add_delay`` to 2ms.
+- The ``max_esi_includes`` parameter has been renamed to
+ ``max_esi_depth``.
+- Hash string components are now logged by default.
+- The default connect timeout parameter has been increased to 0.7
+ seconds.
+- The ``err_ttl`` parameter has been removed and is replaced by a
+ setting in default.vcl.
+- The default ``send_timeout`` parameter has been reduced to 1 minute.
+- The default ``ban_lurker`` sleep has been set to 10ms.
+- When an object is banned, make sure to set its grace to 0 as well.
+- Add ``panic.show`` and ``panic.clear`` CLI commands.
+- The default ``http_resp_hdr_len`` and ``http_req_hdr_len`` has been
+ increased to 2048 bytes.
+- If ``vcl_fetch`` results in ``restart`` or ``error``, close the
+ backend connection rather than fetching the object.
+- If allocating storage for an object, try reducing the chunk size
+ before evicting objects to make room. `Bug #880`_
+- Add ``restart`` from ``vcl_deliver``. `Bug #411`_
+- Fix an off-by-up-to-one-minus-epsilon bug where if an object from
+ the backend did not have a last-modified header we would send out a
+ 304 response which did include a ``Last-Modified`` header set to
+ when we received the object. However, we would compare the
+ timestamp to the fractional second we got the object, meaning any
+ request with the exact timestamp would get a ``200`` response rather
+ than the correct ``304``.
+- Fix a race condition in the ban lurker where a serving thread and
+ the lurker would both look at an object at the same time, leading to
+ Varnish crashing.
+- If a backend sends a ``Content-Length`` header and we are streaming and
+ we are not uncompressing it, send the ``Content-Length`` header on,
+ allowing browsers to diplay a progress bar.
+- All storage must be at least 1M large. This is to prevent
+ administrator errors when specifying the size of storage where the
+ admin might have forgotten to specify units.
+
+.. _bug #693: http://varnish-cache.org/trac/ticket/693
+.. _bug #683: http://varnish-cache.org/trac/ticket/683
+.. _bug #663: http://varnish-cache.org/trac/ticket/663
+.. _bug #880: http://varnish-cache.org/trac/ticket/880
+.. _bug #411: http://varnish-cache.org/trac/ticket/411
+.. _bug #693: http://varnish-cache.org/trac/ticket/693
+
+Tools
+-----
+
+common
+******
+
+- Add an ``-m $tag:$regex`` parameter, used for selecting some
+ transactions. The parameter can be repeated, in which case it is
+ logically and-ed together.
+
+varnishadm
+**********
+
+- varnishadm will now pick up the -S and -T arguments from the shared
+ memory log, meaning just running it without any arguments will
+ connect to the running varnish. `Bug #875`_
+- varnishadm now accepts an -n argument to specify the location of the
+ shared memory log file
+- add libedit support
+
+.. _bug #875: http://varnish-cache.org/trac/ticket/875
+
+varnishstat
+***********
+
+- reopen shared memory log if the varnishd process is restarted.
+- Improve support for selecting some, but not all fields using the
+ ``-f`` argument. Please see the documentation for further details on
+ the use of ``-f``.
+- display per-backend health information
+
+varnishncsa
+***********
+
+- Report error if called with ``-i`` and ``-I`` as they do not make
+ any sense for varnishncsa.
+- Add custom log formats, specified with ``-F``. Most of the Apache
+ log formats are supported, as well as some Varnish-specific ones.
+ See the documentation for further information. `Bug #712`_ and `bug #485`_
+
+.. _bug #712: http://varnish-cache.org/trac/ticket/712
+.. _bug #485: http://varnish-cache.org/trac/ticket/485
+
+varnishtest
+***********
+
+- add ``-l`` and ``-L`` switches which leave ``/tmp/vtc.*`` behind on
+ error and unconditionally respectively.
+- add ``-j`` parameter to run tests in parallell and use this by
+ default.
+
+varnishtop
+**********
+
+- add ``-p $period`` parameter. The units in varnishtop were
+ previously undefined, they are now in requests/period. The default
+ period is 60 seconds.
+
+varnishlog
+**********
+
+- group requests by default. This can be turned off by using ``-O``
+- the ``-o`` parameter is now a no-op and is ignored.
+
+VMODs
+-----
+
+- Add a std vmod which includes a random function, log, syslog,
+ fileread, collect,
+
+VCL
+---
+
+- Change string concatenation to be done using ``+`` rather than
+ implicitly.
+- Stop using ``%xx`` escapes in VCL strings.
+- Change ``req.hash += value`` to ``hash_data(value)``
+- Variables in VCL now have distinct read/write access
+- ``bereq.connect_timeout`` is now available in ``vcl_pipe``.
+- Make it possible to declare probes outside of a director. Please see
+ the documentation on how to do this.
+- The VCL compiler has been reworked greatly, expanding its abilities
+ with regards to what kinds of expressions it understands.
+- Add ``beresp.backend.name``, ``beresp.backend.ip`` and
+ ``beresp.backend.port`` variables. They are only available from
+ ``vcl_fetch`` and are read only. `Bug #481`_
+- The default VCL now calls pass for any objects where
+ ``beresp.http.Vary == "*"``. `Bug #787`_
+- The ``log`` keyword has been moved to the ``std`` vmod.
+- It is now possible to choose which storage backend to be used
+- Add variables ``storage.$name.free_space``,
+ ``storage.$name.used_space`` and ``storage.$name.happy``
+- The variable ``req.can_gzip`` tells us whether the client accepts
+ gzipped objects or not.
+- ``purge`` is now called ``ban``, since that is what it really is and
+ has always been.
+- ``req.esi_level`` is now available. `Bug #782`_
+- esi handling is now controlled by the ``beresp.do_esi`` boolean rather
+ than the ``esi`` function.
+- ``beresp.do_gzip`` and ``beresp.do_gunzip`` now control whether an
+ uncompressed object should be compressed and a compressed object
+ should be uncompressed in the cache.
+- make it possible to control compression level using the
+ ``gzip_level`` parameter.
+- ``obj.cacheable`` and ``beresp.cacheable`` have been removed.
+ Cacheability is now solely through the ``beresp.ttl`` and
+ ``beresp.grace`` variables.
+- setting the ``obj.ttl`` or ``beresp.ttl`` to zero now also sets the
+ corresponding grace to zero. If you want a non-zero grace, set
+ grace after setting the TTL.
+- ``return(pass)`` in ``vcl_fetch`` has been renamed to
+ ``return(hit_for_pass)`` to make it clear that pass in ``vcl_fetch``
+ and ``vcl_recv`` are different beasts.
+- Add actual purge support. Doing ``purge`` will remove an object and
+ all its variants.
+
+.. _bug #481: http://varnish-cache.org/trac/ticket/481
+.. _bug #787: http://varnish-cache.org/trac/ticket/787
+.. _bug #782: http://varnish-cache.org/trac/ticket/782
+
+
+Libraries
+---------
+
+- ``libvarnishapi`` has been overhauled and the API has been broken.
+ Please see git commit logs and the support tools to understand
+ what's been changed.
+- Add functions to walk over all the available counters. This is
+ needed because some of the counter names might only be available at
+ runtime.
+- Limit the amount of time varnishapi waits for a shared memory log
+ to appear before returning an error.
+- All libraries but ``libvarnishapi`` have been moved to a private
+ directory as they are not for public consumption and have no ABI/API
+ guarantees.
+
+Other
+-----
+
+- Python is now required to build
+- Varnish Cache is now consistently named Varnish Cache.
+- The compilation process now looks for kqueue on NetBSD
+- Make it possible to use a system jemalloc rather than the bundled
+ version.
+- The documentation has been improved all over and should now be in
+ much better shape than before
More information about the varnish-commit
mailing list