Il 8 marzo è stato aggiornato il sistema di caching dei dati in memoria. Memcached fino alla versione 1.6.0. La principale differenza rispetto alle versioni precedenti è che ora è possibile utilizzare un dispositivo esterno per lo storage dei dati memorizzati nella cache.
Memcached viene utilizzato per migliorare le prestazioni di siti web o applicazioni web ad alto carico mediante la memorizzazione nella cache dell'accesso a database e dati intermedi.
Nella nuova versione, durante la compilazione è abilitato di default il parametro extstore, che è responsabile dell'uso di un'unità esterna. Per disattivare la funzione, è necessario specificare nel ./configure il parametro —disable-extstore. Tuttavia, nonostante la compilazione predefinita sia abilitata, è necessario indicare esplicitamente l'uso di questa funzione all'avvio.
Extstore permette di usare un Flash o SSD memoria esterna per aumentare la dimensione della cache. Questo consentirà di memorizzare nella cache volumi di dati molto più grandi rispetto a quanto possibile senza l'uso di questa funzione.
Un'altra importante novità è stata la revisione delle comunicazioni di rete, ora adattate per gestire automaticamente le richieste pacchetto nell'ambito di una singola chiamata di sistema. Nelle versioni precedenti, il trattamento di ogni richiesta GET avveniva in pacchetti separati, mentre nella nuova versione le risposte a più richieste vengono raccolte in un unico metapacchetto e trasmesse in un colpo solo. Di conseguenza, questo aggiornamento ha ridotto il carico della CPU del 25%.
Inoltre, a seguito di questa modernizzazione, il consumo di memoria per il buffering è diminuito — da 4,5 Kb a 400-500 byte per chiamata, e l'uso delle funzioni malloc, realloc e free è stato ridotto, portando a una minore frammentazione della memoria. Ogni thread ora gestisce il proprio pool di buffer per la lettura e la scrittura per le connessioni attive. Per configurare le dimensioni di questi buffer, sono disponibili le opzioni -o resp_obj_mem_limit=N e -o read_buf_mem_limit=N.
È stato anche annunciato il passaggio del protocollo binario di scambio con il server alla categoria "obsoleti". A questo è subentrato il protocollo meta, una versione testuale del protocollo con comandi meta compatti. Nel nuovo protocollo sono state considerate tutte le operazioni precedentemente disponibili che utilizzano le vecchie versioni del protocollo binario.
>>> Sito ufficiale
>>> Codice sorgente (licenza BSD)
>>> Descrizione dei comandi meta
Fonte: linux.org.ru

