významná verzia systému vyrovnávacej pamäte v pamäti , ktorý operuje s údajmi vo formáte kľúč/hodnota a vyniká jednoduchým používaním. Memcached sa zvyčajne používa ako ľahké riešenie na zrýchlenie prevádzky vysoko zaťažených webových stránok cez cacheovanie prístupu k DBMS a medziúložným údajom. Kód pod licenciou BSD.
V novej verzii je stabilizovaná implementácia úložiska „“, ktoré sa teraz kompiluje predvolene (pre jeho vypnutie v skripte configure je k dispozícii možnosť „—disable-extstore“), ale vyžaduje si explicitné zapnutie pri štarte (staršie inštalácie po aktualizácii budú pokračovať v prevádzke bez zmien). Aj keď je v celku úložisko „extstore“ považované za stabilné, odporúča sa byť opatrný pri jeho implementácii v veľmi veľkých systémoch.
Extstore umožňuje používať SSD/Flash pamäte na rozšírenie veľkosti vyrovnávacej pamäte. Rovnako ako pri používaní pamäte RAM, úložisko na Flashi nie je trvalé a vymazáva sa pri reštarte. Ako oblasť použitia nového režimu je uvádzané zabezpečenie efektívneho ukladania veľkých objemov dát. Pri používaní „extstore“ kľúče a metadáta, ako predtým, zostávajú uložené len v pamäti RAM, ale súvisiace veľké dáta, ktorých veľkosť prevyšuje nastavený prah, sa ukladajú do externého úložiska, pričom v RAM zostáva len ukazovateľ.
Ak je s kľúčom spojené malé množstvo dát, Memcached funguje ako obvykle, uchováva dáta v pamäti a neoslovuje externé úložisko. Ak je voľnej pamäte veľa, najžiadanejšie dáta môžu byť navyše celkom uložené v pamäti (napríklad môže byť uvedené, aby sa na Flash ukladali len objekty väčšie ako 1024 bajtov, ku ktorým nebolo pristúpené 3600 sekúnd).
Implementácia je optimalizovaná na zabezpečenie maximálneho výkonu a minimálneho zaťaženia CPU, na úkor efektivity ukladania (vysoká miera fragmentácie). Pre predĺženie životnosti Flash pamätí sú dáta vyrovnávané a do úložiska sa ukladajú postupne. Na zachovanie stavu vyrovnávacej pamäte medzi reštartami môže byť použitá funkcia, ktorá sa objavila vo verzii 1.5.18 na uloženie dumpu s vyrovnávacou pamäťou do súboru. Pri nasledujúcom štarte je možné obnoviť vyrovnávaciu pamäť z tohto súboru, aby sa eliminovali vrcholy zaťaženia na spracovateľov obsahu z dôvodu neúplnosti vyrovnávacej pamäte (vyrovnávacia pamäť sa okamžite stáva „teplou“).
Druhá dôležitá zmena v Memcached 1.6 sa týkala prepracovania kódu pre sieťovú komunikáciu, ktorý bol prispôsobený pre automatické spracovanie dávkových požiadaviek v rámci jedného systémového volania. Predtým pri prenose viacerých príkazov „GET“ v jednom TCP pakete memcached odosielal výsledky vykonaním samostatných systémových volaní. V Memcached 1.6 sú odpovede agregované a vrátené prostredníctvom odoslania jedného systémového volania. V dôsledku toho teraz priemerne pripadá 1,5 kľúča na systémové volanie, čo v testoch preukazuje zníženie záťaže CPU až o 25% a skrátenie latencií o niekoľko percent.
Prepracovanie sieťovej subsystémovej architektúry tiež umožnilo prejsť na dynamické prideľovanie bufferov podľa potreby, namiesto statického priradenia bufferov. Táto optimalizácia znížila spotrebu pamäte v režime čakania na nové príkazy cez stanovené klientom pripojenie z 4,5 KB na 400-500 bajtov a tiež umožnila zbaviť sa mnohých volaní malloc, realloc a free, ktoré spôsobujú zbytočnú fragmentáciu pamäte na systémoch s veľkým počtom pripojení. Každý pracovný vlákno teraz spracováva svoj vlastný bazén bufferov na čítanie a zápis pre aktívne klientské pripojenia. Na nastavenie veľkosti týchto bufferov
sú predpokladané možnosti „-o resp_obj_mem_limit=N“ a „-o read_buf_mem_limit=N“.
V verzii 1.6 bolo taktiež oznámené, že sa prechádza do kategórie zastaraného komunikácie so serverom. Údržba binárneho protokolu a odstraňovanie chýb budú pokračovať, ale nové funkcie a aktualizácie existujúcich funkcií sa nebudú prenášať. pokračuje vo vývoji bez zmien. Namiesto binárneho protokolu prišiel nový protokol (textová verzia protokolu s kompaktnými meta-príkazmi), ktorá ukazuje optimálnu kombináciu výkonu a spoľahlivosti. Nový protokol pokrýva všetky operácie, ktoré boli predtým dostupné prostredníctvom textového a binárneho protokolu.
Zdroj: opennet.ru
