signifikanne andmete vahemälu süsteemi väljalase , mis haldab andmeid võtme/väärtuse formaadis ja on kasutusmugavuse poolest lihtne. Memcached'i kasutatakse sageli kergekaalu lahendusena, et kiirendada kõrge koormusega veebilehtede tööd, salvestades vahemällu juurdepääsu andmebaasi ja vaheandmete jaoks. Kood BSD litsentsi alusel.
Uues versioonis on stabiliseeritud salvestus "", mis nüüd kogutakse vaikimisi (deaktiveerimiseks on olemas võimalus skripti konfigureerimisel "—disable-extstore"), kuid nõuab käivitamisel selget aktiveerimist (vana paigaldus jätkab tööd pärast uuendamist ilma muudatusteta). Kuigi salvestus "extstore" on üldjoontes tunnustatud stabiilsena, soovitatakse selle rakendamisel suurt ettevaatlikkust.
Extstore võimaldab kasutada SSD/Flash-mälusid vahemälu suuruse laiendamiseks. Nagu ka operatiivmälu kasutamisel, ei ole Flash-mälu salvestus püsiv ja taastatakse taaskäivitamisel. Uue režiimi peamiseks rakenduseks on suurte andmete tõhus kätketehaldamine. "Extstore" kasutamisel säilitavad võtmed ja metaandmed nagu enne vaid operatiivmälus, kuid suurte andmete seondumise korral, mille suurus ületab kindlaksmääratud piiri, salvestatakse need välisesse salvestusse, jättes operatiivmälu vaid viitamisindeksi.
Если с ключом связываются данные небольшого размера, то Memcached работает как обычно, держит данные в памяти и не обращается к внешнему хранилищу. Если свободной памяти много, то наиболее востребованные данные дополнительно могут полностью находиться в кэше в оперативной памяти (например можно указать, чтобы на Flash сбрасывались только объекты больше 1024 байт, к которым не было обращений 3600 секунд»).
Реализация оптимизирована для обеспечения максимальной производительности и минимальной нагрузки на CPU, в ущерб эффективности хранения (большой уровень фрагментации). Для продления ресурса Flash-накопителей данные буферизируются и сбрасываются в хранилище последовательно. Для сохранения состояния кэша между перезапусками может применяться появившаяся в выпуске 1.5.18 возможность сброса дампа с кэшем в файл. При следующем запуске можно восстановить кэш из данного файла для исключения пиков нагрузки на обработчики контента из-за незаполненности кэша (кэш сразу становится «тёплым»).
Teiseks oluliseks muudatuseks Memcached 1.6-s on koodi ümberkujundamine võrgusuhtluse jaoks, mis on kohandatud automaatseks paketite töötlemiseks ühe süsteemikõne raames. Varasemalt, kui edastati mitu "GET" käsku ühes TCP-paketis, saatis memcached tulemused, tehes eraldi süsteemikõnesid. Memcached 1.6-s kogutakse vastused ja tagastatakse ühe süsteemikõne saatmise kaudu. Tulemuseks on keskmiselt 1,5 võtme kohta süsteemikõne, mis testide põhjal näitab CPU koormuse vähenemist kuni 25% ja latentsuse langust mitu protsenti.
Võrgusubsystemi ümberkujundamine võimaldas liikuda dünaamilise mäluhalduse suunas, kus vahemälu eraldatakse vastavalt vajadusele, selle asemel et määrata vahemälu staatiliselt. See optimeerimine vähendas muutujate mälu tarbimist ooterežiimis uute käskude ootamisel kliendi seose kaudu 4,5 KB-st 400–500 baitini ning võimaldas vabaneda paljusid malloc, realloc ja free kutseid, mis põhjustasid liigset mälu fragmenteerimist süsteemides, kus on suur arv seoseid. Iga tööskeem töötleb nüüd oma vahemälu lugemiseks ja kirjutamiseks aktiivsetele kliendiseostele. Nende vahemälu suuruse seadmiseks
on ette nähtud valikud „-o resp_obj_mem_limit=N“ ja „-o read_buf_mem_limt=N“.
Harus 1.6 on välja kuulutatud, et see liigitatakse vananenuks. serveriga suhtlemiseks. Binaarprotokolli hooldus ja vigade parandamine jätkub, kuid uued funktsioonid ja olemasolevate funktsioonide värskendused ei tule selle raamistikku. jätkab arengut muutumatuna. Binaarprotokolli asemel on tulnud uus protokoll (tekstiline versioon protokollist kompaktsete meta-käskudega), mis demonstreerib optimaalseid jõudluse ja usaldusväärsuse kombinatsioone. Uus protokoll katab kõik toimingud, mis olid varem saadaval tekstilise ja binaarse protokolli kaudu.
Allikas: opennet.ru
