Poul-Henning Kamp, üks tuntud FreeBSD arendajaid, kes osales selliste süsteemide loomisel nagu MD5crypt, GEOM, GBDE ja FreeBSD Jail, tutvustas Varnish-Cache 8.0, kõrge jõudlusega vahemälu proxy, mis on ette nähtud HTTP akseleratsiooniks. Projekt levitatakse BSD litsentsi alusel ja on kunagi olnud kasutuses projektides nagu Facebook, Wikimedia, Twitter, Vimeo, Tumblr, New York Times ja Guardian.
Kõrge jõudlus saavutatakse tänu mitme lõime kasutamisele, ühenduste multiplexerimisele epoll/kqueue kutsete kaudu ning süsteemi kutsete sendfile ja madvise rakendamisele. Tavalise riistvara korral suudab see töödelda voogu 20 Gbps ja tagada päringute kiirus alates 300 kuni 1000 korda. Vahemälu hoitakse virtuaalses mälus. Varnishi eripära on võime koguda edastatavaid lehti tükkideks esipaneelil, määrates koostamise loogika ESI (Edge Side Includes) keeles.
Varnish pakub ka paindlikku konfiguratsioonisüsteemi, mis võimaldab C keeles sisestuste kasutamist. Konfiguratsiooniks kasutatakse spetsiaalset VCL keelt, mis kompileeritakse seejärel täidetavaks binaarkoodiks. VCL võimaldab kirjeldada päringu töötlemise poliitikat: määrata, millist sisu töödelda, kust seda saada ja kuidas enne edastamist muuta. Põhifunktsionaalsust saab laiendada moodulite abil. Saadaval on koormuse tasakaalustamise, oleku jälgimise ja tagasiside reaktsiooniaja mehhanismid.serverite.
Koos uue versiooni väljakuulutamisega tehti teatavaks ka projekti nime muutumine. Alates järgmistest väljaannetest nimetatakse "Varnish Cache" ümber "Vinyl Cache" seoses kaubamärgiga seotud nõudmistega Varnishi kaubamärgi osas, mis on registreeritud ettevõttele Varnish Software, mis osales avatud projekti "Varnish Cache" arendamisel ja finantsiliselt toetas seda. 22 aastat tagasi rahastas Varnish Cache arendust Norra ajaleht Verdens Gang, kes palkas Paul-Henning Kampi koodi kirjutamiseks ja ettevõtte Linpro selle hooldamiseks. Hiljem loodi Linprost ettevõte Varnish Software. Tekkis olukord, kus nimi Varnish Cache seostus avatud projektiga, samas kui Varnish Software on kaubanduslik ettevõte.
Võimalus kasutada nime Varnish avatud projekti nimetuses anti suulise kokkuleppe alusel ning Paul-Henning Kamp ei nõudnud kirjutatud kokkuleppe sõlmimist. Kuni hiljutiseni kooseksisteeris ettevõte ja avatud projekt rahumeelselt, kuid seejärel sekkusid õigusefirmad, kelle seisukoht on, et Varnish Cache nime ei saa kasutada üheski kontekstis ilma selge loata.
Kuna Varnish Software'ilt loa saamise nõue takistas mõnel osalejal arendusse liitumast, tehti katse leppida kokku, kuid juristid jätkavad väidet, et nimi Varnish Cache kuulub Varnish Software'ile ja nad lubavad selle kasutamist avatud projektis teatud piirangute ja vetoõiguse olemasolu korral. Varnish Cache ei ole nõus nende piirangutega, kuna kavatseb jätkata arengut iseseisva projektina.
Pärast ümbernimetamist plaanitakse edasise arenduse koordineerimiseks luua mittetulundusühing, mis tegutseb Taani jurisdiktsiooni all. Ühingu põhikirjas on märgitud, et organisatsioon ei saa omada ega hallata raha. Üks selle eesmärkidest on tarkvara arendamine, hooldamine ja levitamine. Organisatsiooniga võib liituda iga tahtja pärast olemasolevate liikmete heakskiitu. Juhtimiseks moodustatakse komitee, mille valivad liikmed.
Varnish-Cache 8.0 peamised uuendused:
- Background processes of varnishd that handle client requests, pass requests to backends, and cache responses now include the parameter "uncacheable_ttl" to define the time-to-live (TTL) for objects marked as non-cacheable.
- The default value of the parameter ban_any_variant is set to 0, where the ban list only applies to matching object variants.
- Issuing the stop command now waits for all ongoing transactions (VCL handlers) to complete.
- Support has been added for accessing certain runtime parameters from VCL code using the syntax "param.".
- The ability to override the logic for generating responses of "304 Not Modified" has been added.
- Outdated VMOD functions std.real2integer(), std.real2time(), std.time2integer(), and std.time2real() have been removed, and users should now utilize 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 has been ensured after a crash.
- Varnishadm utili juurde on lisatud muutuja «obj.last_hit», mida saab kasutada objektide eemaldamiseks vahemälust, millega kaua ei ole suheldud.
- Varnishstat utili on lisatud uusi statistika loendureid VCP.ref_hit, VCP.ref_miss, transit_stored ja transit_buffered.
Allikas: opennet.ru
