Lëshimi i Memcached 1.6.0 me mbështetjen për ruajtjen e jashtme të aktivizuar

Ndodhi lëshim domethënës i sistemit të ruajtjes së të dhënave në memorie Memcached 1.6.0, i cili funksionon mbi të dhënat në formatin kyç/vlerë dhe është i lehtë për t'u përdorur. Memcached zakonisht përdoret si një zgjidhje e lehtë për të përshpejtuar punën e vendeve me ngarkesë të lartë duke ruajtur aksesin në memorien e fshehtë në DBMS dhe të dhënat e ndërmjetme. Kodi furnizuar nën licencën BSD.

Versioni i ri stabilizon zbatimin e ruajtjes "extstore", i cili tani është ndërtuar si parazgjedhje (për të çaktivizuar në skriptin e konfigurimit, ofrohet opsioni "-disable-extstore"), por kërkon aktivizim të qartë në fillim (instalimet e vjetra do të vazhdojnë të punojnë pa ndryshime pas përditësimit). Megjithëse extstore përgjithësisht konsiderohet të jetë i qëndrueshëm, këshillohet kujdes kur e zbatoni atë në sisteme shumë të mëdha.

Extstore ju lejon të përdorni disqet SSD/Flash për të zgjeruar madhësinë e cache. Ashtu si me RAM-in, ruajtja e Flash nuk është e përhershme dhe rivendoset pas rinisjes. Qëllimi i modalitetit të ri është të sigurojë ruajtjen efikase të të dhënave të mëdha. Kur përdorni "extstore", çelësat dhe meta të dhënat ruhen, si më parë, vetëm në RAM, por të dhënat e mëdha të lidhura me çelësat, madhësia e të cilave tejkalon një prag të caktuar, ruhen në ruajtjen e jashtme dhe vetëm treguesi mbetet në RAM.

Nëse çelësi lidhet me të dhëna të vogla, atëherë Memcached funksionon si zakonisht, i ruan të dhënat në memorie dhe nuk hyn në ruajtje të jashtme. Nëse ka shumë memorie të lirë, atëherë të dhënat më të nevojshme gjithashtu mund të vendosen plotësisht në cache në RAM (për shembull, mund të specifikoni që vetëm objektet më të mëdha se 1024 bajt që nuk janë aksesuar për 3600 sekonda të rivendosen në Flash ).

Implementimi është optimizuar për të siguruar performancën maksimale dhe ngarkesën minimale të CPU-së, në kurriz të efikasitetit të ruajtjes (niveli i lartë i fragmentimit). Për të zgjatur jetën e disqeve flash, të dhënat futen në tampon dhe shpërndahen në ruajtje në mënyrë sekuenciale. Për të ruajtur gjendjen e cache-së midis rinisjeve, mund të përdorni aftësinë që u shfaq në versionin 1.5.18 për të hedhur një skedar memorie në skedar. Në fillimin tjetër, mund të rivendosni cache-in nga ky skedar për të eliminuar maksimumin e ngarkesës në përpunuesit e përmbajtjes për shkak të zbrazjes së cache-së (cache bëhet menjëherë "e ngrohtë").

Ndryshimi i dytë i rëndësishëm në Memcached 1.6 ishte ripërpunimi i kodit të komunikimit të rrjetit, i cili është përshtatur për të përpunuar automatikisht kërkesat e grupit brenda një thirrjeje të vetme sistemi. Më parë, kur dërgoheshin komanda të shumta GET në një paketë të vetme TCP, memcached dërgonte rezultatet me thirrje të veçanta të sistemit. Në Memcached 1.6, përgjigjet grumbullohen dhe kthehen duke dërguar një telefonatë të vetme sistemi. Si rezultat, tani ka një mesatare prej 1.5 çelësash për thirrje të sistemit, gjë që në teste demonstron një ulje të ngarkesës së CPU deri në 25% dhe një ulje të vonesës me disa për qind.

Ridizajnimi i nënsistemit të rrjetit bëri gjithashtu të mundur kalimin në alokim dinamik të buferëve sipas nevojës, në vend të caktimit statik të buferëve. Ky optimizim zvogëloi konsumin e memories gjatë pritjes së komandave të reja përmes një lidhjeje të krijuar nga klienti nga 4.5 KB në 400-500 bajt, dhe gjithashtu bëri të mundur heqjen e shumë thirrjeve drejt malloc, realloc dhe falas, të cilat çojnë në fragmentim të panevojshëm të kujtesës në sisteme me një numër të madh lidhjesh. Çdo thread punëtor tani trajton grupin e vet të buferave të leximit dhe shkrimit për lidhjet aktive të klientit. Për të rregulluar madhësinë e këtyre buferave
janë dhënë opsionet “-o resp_obj_mem_limit=N” dhe “-o read_buf_mem_limt=N”.

Dega 1.6 njoftoi gjithashtu zhvlerësimin e protokolli binar ndërveprim me serverin. Mirëmbajtja e protokollit binar dhe rregullimet e defekteve do të vazhdojnë, por veçoritë e reja dhe përditësimet e veçorive ekzistuese nuk do të barten. Protokolli i tekstit do të vazhdojë të zhvillohet pa ndryshime. Protokolli binar është zëvendësuar nga një protokoll i ri meta (një version tekst i protokollit me meta-komanda kompakte), duke demonstruar kombinimin optimal të performancës dhe besueshmërisë. Protokolli i ri mbulon të gjitha operacionet e disponueshme më parë përmes protokolleve tekst dhe binare.

Burimi: opennet.ru

Shto një koment