Lidando com os desafios do Memcached
Você está lidando com problemas do memcached, como cache frio, contenção pesada dos recursos do RDBMS e falta de flexibilidade de expansão? O Couchbase Server, um banco de dados NoSQL, pode ser usado como um substituto alternativo para a camada do memcached para enfrentar esses desafios.
Leia o WhitePaperDiferença entre memcache e memcached
A resposta curta é: nada. A resposta mais longa é que, como o memcache é executado em segundo plano nos sistemas Linux (e, portanto, é considerado um "daemon"), o arquivo de programa usado para iniciar o software é denominado memcached para seguir as convenções de nomenclatura de daemon. Portanto, tecnicamente, memcache se refere ao software e memcached se refere ao nome do arquivo de programa. Mas a maioria das pessoas simplesmente usa memcached para se referir a ambos neste momento.
Como se pronuncia memcached?
É memcached (como em "acabei de armazenar em cache") ou é memcache-dee? Ambas são amplamente usadas nos círculos técnicos, mas se você se apegar às raízes do UNIX, pronunciará "memcache-dee".
Desafios do Memcached
Desafio 1: Cold Cache
Sintomas
Desaceleração ou colapso da camada de serviço de dados devido a um RDBMS altamente sobrecarregado quando os nós do memcached ficam inoperantes (por falha ou para manutenção)
Solução
Os dados são replicados automaticamente no cluster do Couchbase, proporcionando alta disponibilidade de dados mesmo em caso de falhas
Desafio 2: Contenção pesada de RDMBS
Sintomas
Várias solicitações de itens de dados que não existem no cache resultam em uma mudança repentina de carga para o banco de dados relacional, causando grande contenção
Solução
Ao replicar os dados no cluster, o Couchbase Server oferece desempenho consistente sem transferir a carga para a camada RDBMS
Desafio 3: falta de escalabilidade
Sintomas
Adicionar ou remover nós do memcached é complicado e causa uma degradação imprevisível do desempenho do aplicativo
Solução
A fragmentação automática e o rebalanceamento on-line no Couchbase Server proporcionam uma expansão fácil e sem interrupções do cluster
Desafio 4: monitoramento complexo
Sintomas
O gerenciamento de nós individuais do memcached aumenta a complexidade das operações e não tem uma visão única e consistente da camada de cache
Solução
O Couchbase Server fornece um console de administração integrado para gerenciamento e monitoramento de todo o cluster, bem como APIs RESTful para facilitar a automação e a integração de terceiros
Arquitetura de referência
O diagrama de arquitetura abaixo mostra um ambiente memcached antes e depois de a camada de cache ser substituída pelo Couchbase Server.
Um dos casos de uso do Couchbase Server é funcionar como uma camada de cache em uma arquitetura típica baseada na Web, conforme mostrado acima. A baixa latência, o desempenho consistente e a escalabilidade linear do Couchbase Server o tornam adequado como substituto da camada de memcache; sua tecnologia de cache incorporada permite tempos de resposta inferiores a milissegundos, iguais aos do memcached.
Os dados no Couchbase Server são automaticamente particionados e distribuídos entre os nós do cluster. Cada nó do cluster do Couchbase é idêntico e os dados são replicados entre os nós, de modo que cada nó armazene documentos ativos e réplicas. Os clientes do Couchbase são sensíveis à topologia e encaminham automaticamente as solicitações diretamente para o nó apropriado.
Além disso, o console de administração do Couchbase Server permite monitorar e gerenciar no nível do cluster (e não no nível do servidor, como no memcached), simplificando o gerenciamento e as operações do sistema e economizando seu tempo.