Fornecer um Helpdesk segura e eficiente
Facebook tem pendurada outra fatia de código para o mundo open source: o software que permite que ele funda conteúdo entre caches de todo o mundo, rápido o suficiente para manter a rede social TM social.
Primeiro discutido no ano passado em Usenix, "Mcrouter" pegas "todo o tráfego para, de e entre milhares de servidores de cache em dezenas de grupos distribuídos em nossos centros de dados ao redor do mundo", do Facebook Anton Likhtarov, Rajesh Nishtala e Ryan McElroy escrever neste pós .
Desde o seu desenvolvimento interno, dizem eles, a memória cache protocolo router foi testada como um binário na AWS, "quando Instagram usou no ano passado, antes totalmente a transição para a infraestrutura do Facebook."
Então, tudo bem: é um grande pedaço de software sério. Por que, no entanto, que o resto do mundo quer isso?
A idéia é que em ambos os lados Mcrouter, ninguém deve notar algo diferente. O cliente deve pensar que está se conectando a um cache, e não perceber as suas características; e, por outro lado, um servidor é dumping dados em um cache e esquecê-la. Para ajudar a manter as coisas invisíveis, Facebook, diz, Mcrouter usa o protocolo memcached ASCII padrão como seu API.
Existem vários casos de uso que o Facebook diz que são aplicáveis a uma operação de Web escalas até. Descrito em mais pormenor na pós, eles incluem:
- Scale - Com o pool de conexão e vários esquemas de hashing, Mcrouter permite caches escalar em vários servidores, por isso o desempenho não é degradada pelo conteúdo antigo terem sido expulsos por novos conteúdos, mesmo que o conteúdo antigo ainda está sendo atingido;
- Cargas de trabalho heterogêneas - roteamento baseado em prefixo torna mais fácil para definir o encaminhamento por prefixos simples, e dividir essas cargas de trabalho em diferentes pools de cache;
- Distribuição de carga - Mcrouter ajuda a distribuir o conteúdo para que os usuários não têm que manter escalar um servidor memcached para apoiar crescentes taxas de leitura;
- Robustez - caches podem ser falhou no servidor individual ou nível da piscina;
- Warm-up - o código ajuda a preencher os novos servidores de cache que eles forem adicionados à rede; e
- Consistência - Facebook diz Mcrouter ajuda a manter a consistência entre os caches, inclusive no caso de falhas transitórias.
O código fonte está no github, aqui , eo Facebook está executando um Wiki para Mcrouter aqui . ®
via Alimentação (Feed)
Nenhum comentário:
Postar um comentário