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
