Poul-Henning Kamp, a well-known FreeBSD developer who participated in the creation of systems like MD5crypt, GEOM, GBDE, and FreeBSD Jail, has announced the release of Varnish-Cache 8.0, a high-performance caching proxy intended 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 via epoll/kqueue calls, and the implementation of system calls like sendfile and madvise. On standard hardware, it can handle a throughput of 20 Gbps and accelerate request responses by 300 to 1000 times. The cache is stored in virtual memory. A distinctive feature of Varnish is its ability to assemble delivered pages in parts on the frontend, determining the assembly logic using the ESI (Edge Side Includes) language.
Varnish also provides a flexible configuration system that allows for the use of inserts in the C language. A special VCL language is used for configuration, which is then compiled into executable binary code. VCL allows for defining request handling policies: specifying the content to be handled, where to obtain it from, and how to transform it before delivery. Basic functionality can be expanded through modules. Load balancing, state tracking, and backend response time mechanisms are present.szerverek.
With the announcement of the new version, a forthcoming name change for the project was also revealed. Starting with the next release, 'Varnish Cache' will be renamed to 'Vinyl Cache' due to trademark claims associated with the name Varnish, which is registered by Varnish Software, a 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 the company Linpro for support. Later, Varnish Software was formed from Linpro. It so happened that the name Varnish Cache was associated with the open project, while Varnish Software was linked to the commercial company.
A Varnish név nyílt projektben való használatának lehetőségét szóbeli megállapodás alapján biztosították, és Paul-Henning Kamp nem ragaszkodott írásos megállapodás megkötéséhez. A közelmúltig a vállalat és a nyílt projekt békésen együtt élt, de ezután jogászok léptek be a szellemi tulajdonügyi vitába, akik szerint a Varnish Cache nevet semmilyen összefüggésben nem lehet használni kifejezett engedély nélkül.
Mivel a Varnish Software-től való engedélykérés akadályozta meg egyes résztvevőket a fejlesztésbe való bekapcsolódásban, próbáltak megállapodni, de a jogászok továbbra is azt állítják, hogy a Varnish Cache neve a Varnish Software tulajdonát képezi, és engedélyezik annak használatát a nyílt projekt számára bizonyos korlátozások mellett, illetve hogy lehetőségük van vétózni. A Varnish Cache nem hajlandó elfogadni ezeket a korlátozásokat, mivel úgy kívánja folytatni a fejlődést, mint független projekt.
A névváltoztatás után a fejlesztés további koordinációja érdekében nem profitáló partnerséget terveznek létrehozni, amely Dániában működik. Az alapszabály kimondja, hogy a szervezet nem birtokolhat és nem kezelhet pénzeszközöket. A célok között szerepel a szoftver fejlesztése, karbantartása és terjesztése. A szervezethez bárki csatlakozhat, miután a meglévő tagok jóváhagyták. A vezetést egy bizottság irányítja, amelyet a tagok választanak.
A Varnish-Cache 8.0 fő újításai:
- A háttérfolyamatban, a varnishd-ben, amely a kliensektől érkező kéréseket fogadja, a backendeknek továbbítja a kéréseket és a válaszokat gyorsítótárazza, megvalósították az „uncacheable_ttl” paramétert, amely az nem gyorsítható objektumok élettartamát (TTL) határozza meg.
- A ban_any_variant paraméter alapértelmezett értéke 0-ra van állítva, amikor a blokkolási lista csak a megfelelő objektumváltozatokra vonatkozik.
- A stop parancs kiadása most már az összes végrehajtott tranzakció (VCL-kezelők) befejezésének várakozását jelenti.
- Támogatást kaptak a VCL kódon belüli néhány futási paraméter megkeresésére, a „param.” szintaxis használatával.
- Lehetővé vált a „304 Not Modified” válaszok generálásának logikájának felülbírálása.
- Eltávolították a régi VMOD-funkciókat: std.real2integer(), std.real2time(), std.time2integer() és std.time2real(), amelyeket a következő szintaxissal érdemes helyettesíteni: „std.integer(real=std.round(…), fallback=…)” vagy „std.integer(time=…, fallback=…). A format_rfc1123() funkciót cookie.format_date()-ra nevezték át.
- A VUT-ban és a varnishtest-ben biztosították a veremtracing adatok naplózását hiba történt után.
- A varnishadm segédprogramhoz hozzáadták az „obj.last_hit” változót, amelyet felhasználhatunk a cache-ből régóta nem használt objektumok eltávolításához.
- A varnishstat segédprogramhoz új statisztikai számlálókat adtak hozzá: VCP.ref_hit, VCP.ref_miss, transit_stored és transit_buffered.
Forrás: opennet.ru
