Poul-Henning Kamp, një nga zhvilluesit e njohur të FreeBSD, i cili mori pjesë në krijimin e sistemeve si MD5crypt, GEOM, GBDE dhe FreeBSD Jail, prezantoi lëshimin e Varnish-Cache 8.0, një proxy caching me performancë të lartë, i dizajnuar për të funksionuar si një akcelerator HTTP. Projekti shpërndahet nën licencën BSD dhe një kohë të gjatë është përdorur në projekte si Facebook, Wikimedia, Twitter, Vimeo, Tumblr, New York Times dhe Guardian.
Performanca e lartë arrihet përmes përdorimit të shumë-threading, multiplexing të lidhjeve përmes thirrjeve epoll/kqueue dhe angazhimit të thirrjeve sistemike sendfile dhe madvise. Në hardware standard, është në gjendje të përpunojë një rrjedhë në 20 Gbps dhe të sigurojë shpejtim të përgjigjeve nga 300-1000 herë. Këshilli ruhet në memorie virtuale. Një veçori e Varnish është aftësia për të grumbulluar faqet e dorëzuara në pjesë nga ana e front-end-it, duke përcaktuar logjikën e grumbullimit në gjuhën ESI (Edge Side Includes).
Varnish gjithashtu ofron një sistem fleksibël konfigurimi, ku lejohet përdorimi i përfshirjeve në gjuhën C. Për konfigurimin përdoret një gjuhë speciale VCL, e cila më pas kompilon në kod binar ekzekutiv. VCL lejon të përshkruaj politikën e përpunimit të kërkesave: të caktojë përmbajtjen që do të përpunohet, nga ku do të merret dhe si do të transformohet përpara se të dorëzohet. Funksionaliteti bazë mund të zgjerohet përmes moduleve. Janë të pranishëm mekanizma për balancimin e ngarkesës, llogaritjen e gjendjes dhe koha e përgjigjes së backend-it.servera.
Me përshëndetje të versionit të ri, u njoftua për një ndryshim të ardhshëm në emrin e projektit. Duke nisur nga versioni i ardhshëm, 'Varnish Cache' do të ribëhet 'Vinyl Cache' për shkak të pretendimeve lidhur me markën tregtare Varnish, e cila është e regjistruar nga kompania Varnish Software, e cila ka kontribuar në zhvillimin dhe ka mbështetur financiar projektin e hapur 'Varnish Cache'. 22 vjet më parë, zhvillimi i Varnish Cache u financua nga gazeta norvegjeze Verdens Gang, e cila angazhoi Paul-Henning Kamp për të shkruar kodin dhe kompaninë Linpro për mbështetje. Më vonë, nga Linpro u formua kompania Varnish Software. Ka ndodhur që emri Varnish Cache ishte i lidhur me projektin e hapur, ndërsa Varnish Software me kompaninë tregtare.
Mundësia për të përdorur emrin Varnish në titullin e projektit të hapur u dha nëpërmjet një marrëveshjeje gojore dhe Paul-Henning Kamp nuk insistoi për një marrëveshje me shk Escris. Deri kohët e fundit, kompania dhe projekti i hapur bashkëjetonin pa probleme, por më pas në çështje u përfshinë avokatët e pronësisë intelektuale, të cilët mendojnë se nuk mund të përdoret emri Varnish Cache në asnjë kontekst pa lejen e qartë.
Pasi nevoja për të marrë leje nga Varnish Software pengoi disa pjesëmarrës të bashkohen në zhvillim, u bë një përpjekje për të negociuar, por avokatët vazhdojnë të deklarojnë që emri Varnish Cache i përket kompanisë Varnish Software dhe ata lejojnë përdorimin e tij nga projekti i hapur nën kushte të caktuara dhe me mundësinë për të vendosur veto. Varnish Cache nuk është i gatshëm të pranojë këto kufizime, pasi synon të vazhdojë të zhvillohet si një projekt i pavarur.
Pas ringjalljes, për të vazhduar koordinimin e zhvillimit, planifikojnë të krijojnë një partneritet jo-fitimprurës, i cili do të veprojë në juridiksionin e Danimarkës. Në statutin e saj është përcaktuar se organizata nuk mund të posedojë dhe të menaxhojë para. Ndër objektivat janë: zhvillimi, mirëmbajtja dhe shpërndarja e softuerit. Çdo dëshirues mund të bashkohet me organizatën pas miratimit nga pjesëmarrësit ekzistues. Një komitet do të organizohet për administrimin, i zgjedhur nga pjesëmarrësit.
Njohuritë kryesore të Varnish-Cache 8.0:
- Në procesin në sfond varnishd, i cili merr kërkesa nga klientët, transmeton kërkesat në backend dhe keqcache-uar përgjigjet, është realizuar parameteri "uncacheable_ttl" për të përcaktuar kohën e jetës (TTL) të objekteve të përcaktuar si të pa-cache-ueshëm.
- Vlera e parametrin ban_any_variant është vendosur në 0, ku lista e bllokimit aplikohet vetëm për variantet e përputhura të objekteve.
- Kohëzgjatja e komandës stop tani çon në pritjen për përfundimin e të gjitha transaksioneve në zhvillim (VCL-handlers).
- Është shtuar mbështetje për qasjen nga kodi VCL në disa parametra runtime, duke përdorur sintaksën "param.".
- Është shtuar mundësia për të ribërë logjikën e formimit të përgjigjeve "304 Not Modified".
- Janë hequr funksionet e vjetra VMOD std.real2integer(), std.real2time(), std.time2integer() dhe std.time2real(), vendin e të cilave duhet të përdorim sintaksën "std.integer(real=std.round(…), fallback=…)" ose "std.integer(time=…, fallback=…). Funksioni format_rfc1123() është rinovuar në cookie.format_date().
- Në VUT dhe varnishtest është siguruar regjistrimi i gjurmëve të stack-ut në log pas një përfundimi të papritur.
- Në utilitarin varnishadm është shtuar variabla «obj.last_hit», e cila mund të përdoret për të organizuar fshirjen e objekteve nga cache, të cilat nuk janë aksesuar prej kohësh.
- Në utilitarin varnishstat janë shtuar numërues të rinj për statistikat VCP.ref_hit, VCP.ref_miss, transit_stored dhe transit_buffered.
Burimi: opennet.ru
