Release fan Memcached 1.6.0 mei stipe foar eksterne opslach ynskeakele

barde wichtige frijlitting fan it yn-ûnthâld data-caching-systeem Memcached 1.6.0, dy't wurket op gegevens yn kaai / wearde opmaak en is maklik te brûken. Memcached wurdt meastentiids brûkt as in lichtgewicht oplossing om it wurk fan hege-load sites te fersnellen troch caching tagong ta de DBMS en tuskenlizzende gegevens. Koade levere ûnder de BSD-lisinsje.

De nije ferzje stabilisearret de ymplemintaasje fan 'e opslach "extstore", dy't no standert boud is (om yn it konfiguraasjeskript út te skeakeljen, wurdt de opsje "-disable-extstore" foarsjoen), mar fereasket eksplisite aktivearring by it opstarten (âlde ynstallaasjes sille nei de fernijing sûnder feroaringen wurkje). Hoewol extstore algemien wurdt beskôge as stabyl, wurdt foarsichtigens advisearre by it útfieren fan it op heul grutte systemen.

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 binêre protokol ynteraksje mei de tsjinner. Binêre protokolûnderhâld en bugfixes sille trochgean, mar nije funksjes en fernijings foar besteande funksjes sille net wurde porteare. Tekstprotokol sil trochgean te ûntwikkeljen sûnder feroarings. It binêre protokol is ferfongen troch in nij protokol meta (in tekstferzje fan it protokol mei kompakte meta-kommando's), toant de optimale kombinaasje fan prestaasjes en betrouberens. It nije protokol beslacht alle operaasjes dy't earder beskikber binne fia tekst en binêre protokollen.

Boarne: opennet.ru

Add a comment