De nije ferzje stabilisearret de ymplemintaasje fan 'e opslach "
Extstore lit jo SSD / Flash-skiven brûke om de cachegrutte út te wreidzjen. Lykas by RAM, is Flash-opslach net permanint en wurdt reset by werstart. De omfang fan 'e nije modus is om effisjinte caching fan grutte gegevens te garandearjen. By it brûken fan "extstore", wurde kaaien en metadata, lykas earder, allinich yn RAM opslein, mar grutte gegevens dy't ferbûn binne mei kaaien, wêrfan de grutte grutter is dan in ynstelde drompel, wurde opslein yn eksterne opslach, en allinich de oanwizer bliuwt yn RAM.
As de kaai is ferbûn mei lytse gegevens, dan wurket Memcached as gewoanlik, hâldt de gegevens yn it ûnthâld en hat gjin tagong ta eksterne opslach. As d'r in protte frije ûnthâld is, dan kinne de meast nedige gegevens ek folslein yn 'e cache yn RAM lizze (jo kinne bygelyks oanjaan dat allinich objekten grutter dan 1024 bytes dy't 3600 sekonden net tagong binne weromset nei Flash ).
De ymplemintaasje is optimalisearre om maksimale prestaasjes en minimale CPU-lêst te garandearjen, ten koste fan opslacheffisjinsje (heech nivo fan fragmintaasje). Om it libben fan Flash-skiven te ferlingjen, wurde gegevens sequentially buffered en trochspoeld nei opslach. Om de cache-status te bewarjen tusken opnij starte, kinne jo de mooglikheid brûke dy't ferskynde yn release 1.5.18 om in cache-dump nei in bestân te dumpen. By de folgjende opstart kinne jo de cache fan dit bestân weromsette om peaks yn 'e lading op ynhâldprozessors te eliminearjen trochdat de cache leech is (de cache wurdt fuortendaliks "waarm").
De twadde wichtige feroaring yn Memcached 1.6 wie de werynrjochting fan 'e netwurkkommunikaasjekoade, dy't oanpast is om batchoanfragen automatysk te ferwurkjen binnen ien systeemoprop. Eartiids, by it ferstjoeren fan meardere GET-kommando's yn ien TCP-pakket, soe memcached de resultaten ferstjoere mei aparte systeemoproppen. Yn Memcached 1.6 wurde antwurden aggregearre en weromjûn troch in inkele systeemoprop te ferstjoeren. As resultaat is d'r no in gemiddelde fan 1.5 kaaien per systeemoprop, wat yn tests in fermindering fan CPU-lading mei oant 25% en in fermindering fan latency mei ferskate prosint oantoand.
De werynrjochting fan it netwurk subsysteem ek makke it mooglik om te ferpleatsen nei dynamyske tawizing fan buffers as nedich, ynstee fan statysk tawizen fan buffers. Dizze optimisaasje fermindere ûnthâldferbrûk yn it wachtsjen op nije kommando's fia in client-fêststelde ferbining fan 4.5 KB nei 400-500 bytes, en makke it ek mooglik om in protte oproppen nei malloc, realloc en fergees kwyt te reitsjen, wat liede ta ûnnedige ûnthâldfragmentaasje op systemen mei in grut oantal ferbinings. Elke worker thread behannelet no syn eigen pool fan lês- en skriuwbuffers foar aktive kliïntferbiningen. Om oanpasse de grutte fan dizze buffers
de opsjes "-o resp_obj_mem_limit=N" en "-o read_buf_mem_limt=N" wurde foarsjoen.
Branch 1.6 kundige ek de ôfskriuwing fan
Boarne: opennet.ru