Twemproxy (repository GitHub) è un proxy server che consente di ridurre il numero di connessioni aperte verso un server Memcached o Redis. Per cosa può essere utile questo strumento?
Le caratteristiche principali sono :
– ridurre il numero di connessioni al cache server agendo come un proxy;
– sharding di dati automatico tra più cache server;
– supporto per l’hash con diverse strategie e funzioni di hashing;
– configurabile per disabilitare i nodi caduti;
– esecuzione di istanze multiple, consentendo al client di connettersi al primo proxy server disponibile;
– pipelining e batching di richieste con risparmio di round-trip;
– configurabile per disabilitare i nodi non più funzionanti, e richiamarli successivamente, dopo un po’ di tempo;
Twemproxy è stato reso open source da Twitter (che lo ha sviluppato per le proprie esigenze) all’inizio del 2012, con il supporto a memcached, e recentemente ha aggiunto anche il supporto a Redis. Twitter fa uso estensivo dei cache server ed il sistema sul quale gira Twemproxy, per Twitter, è di dimensioni impressionanti; immaginate che i sistemisti devono gestire centinaia di cache server, che a loro volta amministrano svariati TB di dati ciascuno per oltre trenta servizi diversi, in-memory, inclusa la memorizzazione dei tweet. Parliamo di almeno due milioni di miliardi di query al giorno, ossia più di ventitré milioni di query al secondo, per un’infrastruttura che, peraltro, continua a crescere in maniera esponenziale.
Leggi anche articolo (“Ottimizzazre grazie a Memcached“)