belangrijke release van het systeem voor gegevenscaching in het geheugen , die werkt met gegevens in het key/value-formaat en zich onderscheidt door gebruiksgemak. Memcached wordt meestal toegepast als een lichtgewicht oplossing voor het versnellen van de prestaties van zwaar belaste websites door de cache-toegang tot databases en tussenliggende gegevens. Code onder de BSD-licentie.
In de nieuwe versie is de implementatie van de opslag ««, die nu standaard wordt samengesteld (om dit in het configure script uit te schakelen, is er een optie «—disable-extstore» beschikbaar), maar vereist expliciete activatie bij de lancering (oude installaties blijven na de update functioneren zonder wijzigingen). Hoewel de opslag «extstore» over het algemeen als stabiel wordt erkend, wordt het aangeraden om voorzichtig te zijn bij implementatie in zeer grote systemen.
Extstore maakt het mogelijk om SSD/Flash-schijven te gebruiken voor het vergroten van de cachegrootte. Zoals bij het gebruik van het geheugen is de opslag op Flash niet permanent en wordt deze gewist bij een herstart. Een gebruiksgebied van de nieuwe modus is het waarborgen van effectieve caching van grote gegevens. Bij gebruik van «extstore» worden de sleutels en metadata, net als voorheen, alleen in het geheugen opgeslagen, maar de grote gegevens die aan de sleutels zijn gekoppeld en die de ingestelde drempel overschrijden, worden opgeslagen in externe opslag, terwijl in het RAM alleen een verwijzing blijft.
Als er gegevens van kleine omvang aan de sleutel zijn gekoppeld, functioneert Memcached zoals gewoonlijk, houdt het gegevens in het geheugen en maakt het geen gebruik van externe opslag. Als er veel vrij geheugen beschikbaar is, kunnen de meest gevraagde gegevens volledig in de cache in het geheugen aanwezig zijn (bijvoorbeeld kan worden opgegeven dat op Flash alleen objecten groter dan 1024 bytes worden gewist, waarvoor gedurende 3600 seconden geen toegang is geweest).
De implementatie is geoptimaliseerd voor maximale prestaties en minimale belasting van de CPU, ten koste van de opslagsefficiëntie (hoog niveau van fragmentatie). Om de levensduur van Flash-schijven te verlengen, worden gegevens gebufferd en worden ze sequentieel gewist naar de opslag. Om de cache-status tussen herstarts te behouden, kan de in versie 1.5.18 geïntroduceerde mogelijkheid worden gebruikt om een dump van de cache naar een bestand te wissen. Bij de volgende opstart kan de cache uit dit bestand worden hersteld om pieken in de belasting van de contentverwerking door een lege cache te voorkomen (de cache wordt onmiddellijk 'warm').
Een belangrijke wijziging in Memcached 1.6 is de herstructurering van de code voor netwerken, die is aangepast voor automatische verwerking van batchaanroepen binnen één systeemoproep. Voorheen, toen meerdere 'GET'-commando's in één TCP-pakket werden verzonden, stuurde memcached de resultaten met afzonderlijke systeemoproepen. In Memcached 1.6 worden de antwoorden samengevoegd en teruggestuurd via een enkele systeemoproep. Hierdoor is er nu gemiddeld 1,5 sleutel per systeemoproep, wat in tests resulteert in een vermindering van de CPU-belasting met 25% en een verlaging van de latentie met enkele procenten.
De herstructurering van het netwerksubsyteem heeft ook geleid tot dynamische toewijzing van buffers op basis van behoefte, in plaats van statische toewijzing van buffers. Deze optimalisatie heeft het geheugenverbruik in afwachting van nieuwe opdrachten via een door de klant geïnstalleerde verbinding verminderd van 4,5 KB naar 400-500 bytes, en heeft het ook mogelijk gemaakt om veel aanroepen van malloc, realloc en free te vermijden, wat leidt tot onnodige geheugenfragmentatie op systemen met veel verbindingen. Elke werkthread verwerkt nu zijn eigen bufferpool voor lezen en schrijven voor actieve klantverbindingen. Voor het instellen van de grootte van deze buffers
zijn er opties "-o resp_obj_mem_limit=N" en "-o read_buf_mem_limt=N" beschikbaar.
In de 1.6-tak is ook aangekondigd dat het binaire protocol Het tekstprotocol meta De uitgave van de Zorin OS 15.2-distributie
Bron: opennet.ru
