Poul-Henning Kamp, një nga zhvilluesit e njohur të FreeBSD, i cili ka kontribuar në krijimin e sistemeve si MD5crypt, GEOM, GBDE dhe FreeBSD Jail, prezantoi lëshimin e Varnish-Cache 8.0, një proxy të lartë të performancës, i dizajnuar për t'u përdorur si një akcelerator HTTP. Projekti shpërndahet nën licencën BSD dhe dikur është përdorur në projekte të tilla si Facebook, Wikimedia, Twitter, Vimeo, Tumblr, New York Times dhe Guardian.
Performanca e lartë arrihet falë përdorimit të shumëfishtë, multipleximit të lidhjeve përmes thirrjeve epoll/kqueue dhe angazhimit të thirrjeve sistemike sendfile dhe madvise. Në pajisje standarde, mund të përpunojë një transmision në 20 Gbps dhe të sigurojë përshpejtim të përgjigjeve nga 300-1000 herë. Këndi ruhet në memorie virtuale. Një veçori e Varnish është aftësia për të mbledhur faqet që dërgohen në mënyrë të pjesëzuar në anën e frontend, duke përcaktuar logjikën e mbledhjes në gjuhën ESI (Edge Side Includes).
Varnish gjithashtu ofron një sistem të përshtatshëm konfigurimi, që lejon përdorimin e inserteve në gjuhën C. Për konfigurimin përdoret një gjuhë e veçantë VCL, e cila më pas kompilohet në kod binar ekzekutiv. VCL lejon përshkrimin e politikës së trajtimit të kërkesave: të përcaktojë përmbajtjen që do të trajtohet, nga e cila të merret dhe si të modifikohet para dërgimit. Funksionaliteti bazë mund të zgjerohen përmes moduleve. Ekzistojnë mekanizma për balancimin e ngarkesës, mbajtjen e gjendjes dhe kohën e reagimit të backend-serverësh.
Së bashku me njoftimin e versionit të ri, shpallet një ndryshim të ardhshëm emri të projektit. Duke filluar nga lëshimi tjetër, "Varnish Cache" do të riemërohet në "Vinyl Cache" për shkak të kërkesave të lidhura me markën tregtare Varnish, e regjistruar në kompaninë Varnish Software, e cila kontribuoi në zhvillimin dhe mbështeti financiarisht projektin e hapur "Varnish Cache". 22 vjet më parë, zhvillimi i Varnish Cache u financua nga gazeta norvegjeze Verdens Gang, e cila punësoi Poul-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 u asocua me projektin e hapur, ndërsa Varnish Software me kompaninë komerciale.
Mundësia për të përdorur emrin Varnish në titullin e projektit të hapur u dha përmes një marrëveshjeje gojore dhe Paul-Henning Kamp nuk insistoi për të nënshkruar një marrëveshje me shkrim. Deri në kohët e fundit, kompania dhe projekti i hapur bashkëjetonin pa probleme, por më pas ndërhynë avokatët e pronësisë intelektuale, të cilët mendojnë se nuk lejohet të përdoret emri Varnish Cache në ndonjë kontekst pa leje të qartë.
Duke qenë se nevoja për të marrë lejen nga Varnish Software pengoi disa pjesëmarrës të bashkohen në zhvillim, u bë një përpjekje për të arritur një marrëveshje, por avokatët vazhdojnë të theksojnë se emri Varnish Cache i përket kompanisë Varnish Software dhe ata lejojnë përdorimin e tij nga projekti i hapur me disa kufizime dhe mundësinë për të vënë veto. Varnish Cache nuk është e gatshme të pranojë këto kufizime, pasi planifikon të vazhdojë të zhvillohet si një projekt i pavarur.
Pas riemërimit, për një koordinim të mëtejshëm të zhvillimit, planifikohet të krijohet një partneritet jo fitimprurës, i cili do të veprojë në juridiksionin e Danimarkës. Në statut përcaktohet se organizata nuk mund të posedojë dhe të menaxhojë para. Mes qëllimeve të shpallura janë: zhvillimi, mbështetje dhe shpërndarja e softuerit. Çdo kush mund të bashkohet me organizatën pas miratimit nga pjesëmarrësit ekzistues. Një komitet do të organizohet për menaxhim, i zgjedhur nga pjesëmarrësit.
Risi kryesore Varnish-Cache 8.0:
- Në procesin në prapavijë varnishd, i cili pranon kërkesat nga klientët, dërgon kërkesat tek backend-et dhe ruan përgjigjet, është implementuar parametri "uncacheable_ttl" për të përcaktuar kohëzgjatjen e jetës (TTL) të objekteve të shënuara si të pa-cache.
- Vlera e parametrin ban_any_variant në mënyrë default është vendosur në 0, kur lista e bllokimit aplikohet vetëm për variantet e përputhura të objekteve.
- Dërgimi i komandës stop tani sjell pritjen e përfundimit të të gjitha transaksioneve në zhvillim (VCL-handler).
- Është shtuar mbështetje për thirrje nga kodi VCL në disa parametra runtime, duke përdorur sintaksën "param.".
- Është shtuar mundësia për të tejkaluar logjikën e formimit të përgjigjeve "304 Not Modified".
- Funkcionet e vjetra VMOD std.real2integer(), std.real2time(), std.time2integer() dhe std.time2real() janë hequr, dhe duhet të përdoret sintaksa «std.integer(real=std.round(…), fallback=…)» ose «std.integer(time=…, fallback=…). Funksioni format_rfc1123() është rinominur në cookie.format_date().
- Në VUT dhe varnishtest është siguruar regjistrimi i gjurmëve të stack 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 heqjen e objekteve nga cache, të cilat nuk janë aksesuar për një kohë të gjatë.
- Në utilitarin varnishstat janë shtuar numra të rinj statistike VCP.ref_hit, VCP.ref_miss, transit_stored dhe transit_buffered.
Burimi: opennet.ru
