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
