Poul-Henning Kamp, en av de kÀnda utvecklarna av FreeBSD, som deltog i skapandet av system som MD5crypt, GEOM, GBDE och FreeBSD Jail, har presenterat utgÄvan av Varnish-Cache 8.0, en högpresterande cachande proxy avsedd att fungera som en HTTP-accelerator. Projektet distribueras under BSD-licensen och har anvÀnts i projekt som Facebook, Wikimedia, Twitter, Vimeo, Tumblr, New York Times och Guardian.
Hög prestanda uppnÄs tack vare anvÀndningen av flerkörning, multiplexering av anslutningar genom epoll/kqueue-anrop och anvÀndning av systemanropen sendfile och madvise. PÄ vanlig hÄrdvara kan den hantera en ström pÄ 20 Gbps och sÀkerstÀlla en acceleration av svaren med 300-1000 gÄnger. Cachen lagras i virtuellt minne. En sÀrdrag hos Varnish Àr dess förmÄga att samla information som sÀnds i bitar pÄ front-end-sidan, dÀr logiken för sammanstÀllningen definieras med hjÀlp av ESI (Edge Side Includes).
Varnish erbjuder ocksÄ ett flexibelt konfigurationssystem som tillÄter anvÀndning av inlÀgg pÄ C-sprÄket. För konfiguration anvÀnds ett speciellt sprÄk, VCL, som sedan kompileras till körbar binÀr kod. VCL gör det möjligt att beskriva policyn för begÀran: definiera vilket innehÄll som behandlas, var det kommer ifrÄn och hur det ska bearbetas innan det levereras. Grundfunktionaliteten kan utvidgas genom moduler. Det finns mekanismer för belastningsbalansering, statusövervakning och reaktionstid för backend.servrar.
I samband med tillkÀnnagivandet av den nya versionen meddelades det ocksÄ att projektets namn kommer att Àndras. FrÄn och med nÀsta utgÄva kommer "Varnish Cache" att byta namn till "Vinyl Cache" pÄ grund av varumÀrkesansprÄk relaterade till varumÀrket Varnish, registrerat av företaget Varnish Software, som deltog i utvecklingen och finansierade det öppna projektet "Varnish Cache". För 22 Är sedan finansierades utvecklingen av Varnish Cache av den norska tidningen Verdens Gang, som anstÀllde Poul-Henning Kamp för att skriva koden och Linpro för att stödja det. Senare bildades företaget Varnish Software ur Linpro. Det har visat sig att namnet Varnish Cache associerades med det öppna projektet, medan Varnish Software associerades med det kommersiella företaget.
Möjligheten att anvÀnda namnet Varnish i titeln pÄ det öppna projektet beviljades genom en muntlig överenskommelse och Paul-Henning Kamp insisterade inte pÄ att upprÀtta ett skriftligt avtal. Fram till nyligen samexisterade företaget och det öppna projektet fredligt, men sedan blandade sig immaterialrÀttsjurister in, vars stÄndpunkt Àr att namnet Varnish Cache inte fÄr anvÀndas i nÄgot sammanhang utan uttryckligt tillstÄnd.
Eftersom behovet av att fÄ tillstÄnd frÄn Varnish Software förhindrade vissa deltagare frÄn att ansluta sig till utvecklingen, gjordes det ett försök att nÄ en överenskommelse, men jurister fortsÀtter att hÀvda att namnet Varnish Cache tillhör Varnish Software och att de tillÄter dess anvÀndning av det öppna projektet under vissa begrÀnsningar och med möjlighet till veto. Varnish Cache Àr inte redo att acceptera dessa begrÀnsningar, dÄ de avser att fortsÀtta utvecklas som ett oberoende projekt.
Efter namnÀndringen planeras att en icke-vinstdrivande partnerskap skapas för att ytterligare samordna utvecklingen, som kommer att verka under Danmarks jurisdiktion. I stadgarna faststÀlls att organisationen inte fÄr Àga eller förvalta pengar. Bland mÄlen anges: utveckling, underhÄll och distribution av programvara. Varje intresserad person kan gÄ med i organisationen efter godkÀnnande frÄn befintliga deltagare. För att leda organisationen kommer en kommitté att vÀljas av deltagarna.
De viktigaste nyheterna i Varnish-Cache 8.0:
- I bakgrundsprocessen varnishd, som tar emot förfrÄgningar frÄn kunder, vidarebefordrar förfrÄgningar till backend och cacherar svar, har parametern "uncacheable_ttl" lagts till för att bestÀmma livslÀngden (TTL) för objekt som Àr markerade som icke-cachade.
- StandardvÀrdet för parametern ban_any_variant Àr 0, vilket innebÀr att blocklistan endast tillÀmpas pÄ matchande varianter av objekt.
- Uppmaningen stop leder nu till att alla pÄgÄende transaktioner (VCL-hanterare) vÀntar pÄ att avslutas.
- Stöd för att referera till vissa runtime-parametrar frÄn VCL-kod har lagts till, med syntaxen "param.".
- Möjlighet att ÄsidosÀtta logiken för att generera svar "304 Not Modified" har lagts till.
- Utdaterade VMOD-funktioner std.real2integer(), std.real2time(), std.time2integer() och std.time2real() har tagits bort, och istĂ€llet bör syntaktisk anvĂ€ndning ske med "std.integer(real=std.round(âŠ), fallback=âŠ)" eller "std.integer(time=âŠ, fallback=âŠ). Funktionen format_rfc1123() har bytt namn till cookie.format_date().
- I VUT och varnishtest har möjligheten att spela in stacktrace till loggen efter en krasch lagts till.
- I verktyget varnishadm har variabeln "obj.last_hit" lagts till, som kan anvÀndas för att hantera borttagning av objekt frÄn cachen som inte har anvÀnts pÄ lÀnge.
- I verktyget varnishstat har nya statistikrÀknare lagts till: VCP.ref_hit, VCP.ref_miss, transit_stored och transit_buffered.
KĂ€lla: opennet.ru
