Memcached, um sistema de caching originalmente desenvonvido para o LiveJournal.com tem sido adotado por muitos sites para diminuir a carga nos seus servidores de banco de dados.
A versão 1.4 recentemente lançada introduziu algumas novas features, como o novo protocolo binário. Por que um novo protocolo? Um desenvolvedor do Memcached Dustin Sallings diz :
A coisa mais óbvia para implementadores de protocolo é que agora é realmente fácil fazer o parse do protocolo. Depois de ler um cabeçalho de tamanho fixo, um processador de pacotes de baixo nível consegue determinar para onde enviar a entrada e dividí-la em todos os seus principais componentes (key, valor, opaque, cas, extras, etc...).
Isso é ótimo para o (pequeno) número de desenvolvedores que escrevem servidores e clientes, mas e para as outras pessoas que só desejam usar memcached Melhorias semânticas no novo protocolo nos permite construir algumas coisar bem legais.
Um exemplo disto é a feature de replicação de Trond Norbye, "onde você pode armazenar somente alguns dos itens em múltiplos servidores".
Porque aplicações falam com o Memcached através de um protocolo padronizado e aberto, implementações do back-end do Memcached podem ser intercambiàveis. Uma alternativa comercial é WebCache da Gear6 :
Gear6 Web Cache é uma implementação avançada, aderente ao protocolo da solução Memcached que habilita aos desenvolvedores de web site e operadores escalarem serviços e aplicações Web.
InfoQ teve uma conversa com Bill Takacs, diretor de gerenciamento de produto da Gear6 para aprender mais sobre o WebCache, como funciona e quais são os benefícios que fornece:
Gear6 fornece um grande número de melhorias para o memcached padrão. O que inclui:
- Utilização da memória: Remoção do limite de 1MB do tamanho do objeto, alocação de memória baseada em blocos de alocação de memória mais granulares, e um algoritmo de remoção baseado em custo.
- Densidade: Nós usamos uma combinação de DRAM e memória Flash para diminuir o curso do cache e aumentar a densidade de nossa solução. Atualmente nosso maior cache é 384GB em 1U.
- Alta Disponibilidade: Nós instalamos nossa solução em duas unidades de 1U em um ambiente de cluster. O cluster possibilita dois modos:
- Disponibilidade contínua do serviço: a arquitetura de cluster possibilita o fail-over. Isto garante que os serviços de cache não são interrompidos quando uma falha ocorre.
- Disponibilidade contínua dos dados: o cluster replica dados dentro deste cluster. Esta replicação garante que todos os dados do cache estão sempre disponíveis em um local alternativo, e continuam a ser fornecido aos usuários sem interrupção ou atraso. Picos no banco de dados e carga na aplicação são evitados.
- Em adição ao Gear6 Web Cache não necessita nenhuma modificação no código no lado cliente e nossa arquitetura de cluster possibilita que upgrades de software sejam feitas sem interrupção.
- Relatórios e Gerenciamento: Gear6 Web Cache é totalmente equipado com interfaces intuitivas que nos permitem ver o que está acontecendo nos múltiplos níveis em sua camada do Memcached. Nós fizemos melhorias que automaticamente e continuamente analisam a DRAM e a memória flash procurando por falhas e indicadores de falhas. Usuários podem descer em qualquer nível de seus cache e pegar relatórios das hot keys, clientes e instâncias.
Então como você sabe se o WebCache vai resolver os seus problemas de performance?
Nosso processo típico inclui análises on-site. Prospectos são estimulados para avaliar a solução em seu ambiente
Veja na tag Memcache para maiores informações sobre Memcached do InfoQ.