Uvolnění Memcached 1.6.0 s podporou externího úložiště

Proběhlo významné vydání systému pro vyrovnávací paměť dat v operační paměti Memcached 1.6.0, který pracuje s daty ve formátu klíč/hodnota a vyznačuje se jednoduchostí použití. Memcached se obvykle používá jako lehké řešení ke zvýšení výkonu vysoce zatížených webů prostřednictvím ukládání kódů k přístupu k DB a mezipaměťovým datům. Kód dodává se na základě licence BSD.

V nové verzi byla stabilizována implementace úložiště „extstore“, které se nyní kompiluje jako výchozí (pro jeho deaktivaci ve skriptu configure je k dispozici volba „—disable-extstore“), ale při spuštění vyžaduje explicitní aktivaci (staré instalace po aktualizaci budou pokračovat v činnosti bez změn). I když je úložiště „extstore“ obecně považováno za stabilní, doporučuje se být opatrný při jeho nasazení v velmi velkých systémech.

Extstore umožňuje používat SSD/Flash disky pro rozšíření velikosti cache. Stejně jako v případě operační paměti není úložiště na Flash trvalé a při restartu se vymaže. Jako oblast použití nového režimu se uvádí zajištění efektivního ukládání velkých dat. Při použití „extstore“ klíče a metadata, stejně jako dříve, zůstávají pouze v operační paměti, ale související velká data, jejichž velikost překračuje stanovený limit, jsou uložena ve vnějším úložišti a v RAM zůstává pouze ukazatel.

Pokud se s klíčem spojují data malé velikosti, Memcached funguje jako obvykle, uchovává data v paměti a neprovádí žádný přístup k externímu úložišti. Pokud je v paměti dostatek místa, mohou být nejžádanější data navíc zcela uložena v cache v operační paměti (například můžete určit, že na Flash se budou ukládat pouze objekty větší než 1024 bajtů, ke kterým nebylo přistoupeno po dobu 3600 sekund).

Implementace je optimalizována pro zajištění maximálního výkonu a minimální zátěže na CPU, na úkor efektivity ukládání (vysoká úroveň fragmentace). Pro prodloužení životnosti Flash úložných zařízení jsou data vyrovnána a uložena do úložiště sekvenčně. Pro uchování stavu cache mezi restartováním může být využita funkce pro uložení dumpu cache do souboru, která byla představena ve verzi 1.5.18. Při příštím spuštění lze obnovit cache z tohoto souboru, aby se vyloučila špičková zatížení na zpracovatele obsahu kvůli neúplnosti cache (cache se ihned stává "teplou").

Druhou důležitou změnou v Memcached 1.6 byla přepracování kódu pro síťovou komunikaci, který je upraven pro automatické zpracování dávkových požadavků v rámci jednoho systémového volání. Dříve, při odesílání několika příkazů "GET" v jednom TCP paketu, memcached odesílal výsledky s provedením samostatných systémových volání. V Memcached 1.6 jsou odpovědi agregovány a vráceny prostřednictvím jednoho systémového volání. Jako výsledek nyní průměrně připadá 1.5 klíče na systémové volání, což v testech ukazuje snížení zátěže na CPU až o 25 % a zkrácení latencí o několik procent.

Přepracování síťového subsystému také umožnilo přejít na dynamickou alokaci bufferů podle potřeby, místo statického přiřazení bufferů. Tato optimalizace snížila spotřebu paměti v režimu čekání na nové příkazy přes stanovené klientem připojení z 4.5 kB na 400-500 bytů, a také umožnila zbavit se mnoha volání malloc, realloc a free, které vedou k nadměrné fragmentaci paměti na systémech s velkým počtem připojení. Každý pracovní vlákno nyní zpracovává svůj vlastní pool bufferů pro čtení a zápis pro aktivní klientská připojení. Pro nastavení velikosti těchto bufferů
jsou k dispozici možnosti „-o resp_obj_mem_limit=N“ a „-o read_buf_mem_limit=N“.

V větvi 1.6 bylo také oznámeno přeřazení binárního protokolu komunikace se serverem. Údržba binárního protokolu a opravy chyb budou pokračovat, ale nové funkce a aktualizace stávajících funkcí nebudou přeneseny. Textový protokol pokračuje ve vývoji bez změn. Na místo binárního protokolu přišel nový protokol meta (textová varianta protokolu s kompaktními meta-příkazy), demonstrující optimální kombinaci výkonu a spolehlivosti. Nový protokol pokrývá všechny operace, které byly dříve dostupné prostřednictvím textových a binárních protokolů.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster