terça-feira, 16 de setembro de 2014

Facebook libera código roteador inter-cache em um mundo à espera


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