Release of Varnish-Cache 8.0. Project name change due to trademark issues.

Poul-Henning Kamp, one of the prominent developers of FreeBSD who contributed to systems such as MD5crypt, GEOM, GBDE, and FreeBSD Jail, has announced the release of Varnish-Cache 8.0, a high-performance caching proxy designed to act as an HTTP accelerator. The project is distributed under the BSD license and has been used in projects by Facebook, Wikimedia, Twitter, Vimeo, Tumblr, The New York Times, and The Guardian.

High performance is achieved through the use of multithreading, connection multiplexing with epoll/kqueue calls, and the implementation of system calls sendfile and madvise. On standard hardware, it can handle a stream of 20 Gbps and provide acceleration of request responses by 300-1000 times. The cache is stored in virtual memory. A noteworthy feature of Varnish is its ability to assemble delivered pages in parts on the frontend, defining the assembly logic in ESI (Edge Side Includes).

Varnish also offers a flexible configuration system that allows for the use of inserts in the C language. A special configuration language called VCL is used, which is then compiled into executable binary code. VCL allows you to describe the request handling policy: define the content being processed, where to obtain it, and how to transform it before delivery. Basic functionality can be extended through modules. There are mechanisms for load balancing, state tracking, and backend response time.servers.

With the announcement of the new version, a forthcoming name change for the project has also been revealed. Starting with the next release, "Varnish Cache" will be renamed to "Vinyl Cache" due to trademark claims related to the name Varnish, which is registered to Varnish Software, the company that was involved in the development and financially supported the open project "Varnish Cache". 22 years ago, the development of Varnish Cache was funded by the Norwegian newspaper Verdens Gang, which hired Poul-Henning Kamp to write the code and Linpro to maintain it. Later, Varnish Software was formed from Linpro. It turned out that the name Varnish Cache became associated with the open project, while Varnish Software was linked to the commercial company.

The possibility of using the name Varnish in the title of the open project was granted based on an oral agreement, and Paul-Henning Kamp did not insist on a written agreement. Until recently, the company and the open project coexisted peacefully, but then intellectual property lawyers intervened, arguing that the name Varnish Cache cannot be used in any context without explicit permission.

Since the need to obtain permission from Varnish Software prevented some participants from joining the development, an attempt to negotiate was made, but lawyers continue to assert that the name Varnish Cache belongs to Varnish Software, and they allow its use by the open project under certain restrictions and a potential veto. Varnish Cache is not ready to accept these restrictions, as it intends to continue developing as an independent project.

After renaming, a non-profit partnership is planned to be created for further coordination of development, which will operate under Danish jurisdiction. The charter specifies that the organization cannot own or dispose of money. Its declared goals include the development, maintenance, and distribution of software. Anyone can join the organization after approval by existing members. A committee elected by members will be organized for management.

The main innovations in Varnish Cache 8.0:

  • The background process varnishd, which handles client requests, forwards requests to backends, and caches responses, has implemented the parameter "uncacheable_ttl" to define the time-to-live (TTL) of objects marked as non-cacheable.
  • The default value of the ban_any_variant parameter is set to 0, meaning the ban list applies only to matched variants of objects.
  • Issuing the stop command now leads to waiting for the completion of all ongoing transactions (VCL handlers).
  • Support has been added for accessing some runtime parameters from VCL code using the syntax "param.".
  • The ability to override the logic for generating "304 Not Modified" responses has been added.
  • The deprecated VMOD functions std.real2integer(), std.real2time(), std.time2integer(), and std.time2real() have been removed; instead, use the syntax "std.integer(real=std.round(…), fallback=…)" or "std.integer(time=…, fallback=…). The function format_rfc1123() has been renamed to cookie.format_date().
  • In VUT and varnishtest, stack trace logging after a crash has been implemented.
  • The varnishadm utility has been added with the variable "obj.last_hit", which can be used to facilitate the removal of cache objects that have not been accessed for a long time.
  • New statistics counters VCP.ref_hit, VCP.ref_miss, transit_stored, and transit_buffered have been added to the varnishstat utility.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster