250 likes | 315 Views
Uma Análise do Foto-Caching do Facebook. Mateus Landim Rolvander Pereira. Introdução. Infra-estrutura de gerenciamento de imagens do facebook . Complexa e geograficamente distribuída.
E N D
Uma Análise do Foto-Caching do Facebook Mateus Landim Rolvander Pereira
Introdução • Infra-estrutura de gerenciamento de imagens do facebook. • Complexa e geograficamente distribuída. • Conta com caches do navegador em sistemas de usuários finais, caches de EdgePoPs, cache de origem e para algumas imagens, caching adicional via Akamai. • 65,5% do navegador, 20% de edge, 4,6% de origem e 9,9 de back-end.
Introdução • 250 bilhões de fotos no Facebook (Setembro, 2013)
Introdução • Popularização das redes sociais. • Aumento na quantidade de conteúdo. • Objetivo principal é explorar a dinâmica dos serviços de fotos do facebook entre o navegador e o servidor.
Introdução • Para melhor entendimento, foi necessário estudar e examinar toda uma infra-estrutura que serve imagens para internet, em uma escala maciça. • O fluxo de tráfego geográfico, para infra-estrutura, muitas vezes é servido em uma grande distância em vez de localmente. • Adotando alguns algoritmos mais avançados, tem-se a oportunidade de melhoria de vida de caches.
FacebookPhoto-CachingStack • Altas quantidades de fotos em nome dos usuários. • Facebook conta com uma pilha de veiculação de fotos em massa distribuída, em uma escala geográfica. • Para entregar todo o conteúdo de forma eficiente , com alta disponibilidade e baixa latência.
FacebookPhoto-CachingStack • Quando um usuário recebe um arquivo HTML de servidores do Facebookfront-end web, um navegador ou aplicativo cliente móvel começa a baixar fotos com base nas URLs embutidas no arquivo. • Essas URLs são geradas pelos servidores da Web para controlar a distribuição de tráfego em toda a pilha • incluem um identificador original da foto , especificações e dimensões da imagem de exibição e o caminho de busca
FacebookPhoto-CachingStack • Há três camadas de caches na frente dos servidores de back-end que armazenam as fotos reais. Estes caches, ordenados por sua proximidade com os clientes, são: • Cache do navegador do cliente • EdgeCache • Cache de Origem.
Navegador • O cache do navegador típico é localizado com o cliente, usa uma tabela hash na memória para testar a existência do cache, e usa o algoritmo LRU. Há muitas variações sobre o cache do navegador típico. Se um pedido perde no cache do navegador, o navegador envia uma solicitação HTTP para a Internet. O caminho de buscar determina se o pedido é enviado para o FacebookEdge.
EdgeCache • Formada por um conjunto de edgecaches que são executados dentro de pontos de presença ( PoPs ) próximo aos usuários finais. Há um pequeno número de edgecaches espalhados por todo os EUA que todas as funções executam de forma independente.
Origem • São encaminhados a partir de edgecaches para os servidores na origem de cache usando um mapeamento de hash com base no id único da foto que está sendo acessada. Como os edgecaches, cada servidor de origem de cache tem uma tabela hash em memória que contém os metadados sobre as fotos armazenadas e uma memória flash grande que armazena as fotos reais. Ele usa uma política de remoção FIFO.
Foto Transformações • Diferentes formas de fotos, para usuários diferentes. • O redimensionamento e o recorte de fotos é feito na pilha de caching
Objetivo do StackCaching • Os objetivos do stackcaching do Facebook, diferem por camada. • O principal objetivo do cacheEdge é reduzir a largura de banda entre o Edge e a Origem nos datacenters. • Enquanto que o principal objetivo para outros caches é o tráfego para abrigar seus servidores de back-end, que são de I/O.
Metodologia • Coleta de Dados Multi-Ponto • A fim de acompanhar os eventos através de todas as camadas do Facebook. É necessário começar independentemente da instrução dos vários componentes da pilha, a coleta de uma amostra representativa de uma forma que permite a correlação de eventos relacionados com a mesma, solicitado mesmo quando eles ocorrem em locais largamente distribuídos na hierarquia • Preservação de privacidade.
Carga de Trabalho • A análise examina mais de 70 TB de dados. • Todos os pedidos iniciados pelo cliente que atravessaram o Facebook, durante um período de amostragem de um mês de correspondente • Cada tamanho de uma foto é um objeto distinto para fins de armazenamento em cache.
Carga de Trabalho • Função de Distribuição Acumulativa, baseada no tamanho do objeto sendo transferido através da origem.
Análise de Rede Social • Foram estudadas duas propriedades que intuitivamente deve ser fortemente associados ao tráfego foto: a idade de fotos e o número de seguidores no Facebook associados com o proprietário.
Análise de Rede Social • Efeito Idade • Supõe-se geralmente que o novo conteúdo vai chamar atenção e, portanto, representam a maioria do tráfego visto dentro da pilha. • Nosso conjunto de dados permite avaliar tais hipóteses para a hierarquia das imagens no Facebook, ligando os vestígios coletados em diferentes camadas no banco de dados de fotos.
Análise de Rede Social • Realizou-se esta análise , categorizando buscas por imagens pela idade do conteúdo de destino , em seguida, olhando para a forma como essa informação varia em cada camada da pilha. • Idade Foto (em horas) foi determinado subtraindo-se o tempo de criação de fotos a partir do momento do pedido, assim, mesmo uma foto enviada no mesmo dia terá solicitações associadas classificadas em 24 categorias por hora.
Análise de Rede Social • Nossa análise revela que as diferenças de tráfego entre caches implantados (navegadores , EdgeCache) e armazenamento de back-end (que inclui a origem de cache) são mais visíveis para fotos novas do que para as antigas.
Análise de Rede Social • Tráfego dos maiores EdgeCaches com os data centers de Origem.
Trabalhos Relacionados • Muitos estudos de medição examinaram os padrões de acesso web para os serviços associados à entrega de conteúdo , armazenamento e web hosting. • Analisar a carga de trabalho do mundo real na escala do Facebook, e traçar com sucesso um grande volume de eventos, através de saída de uma pilha massivamente distribuída.
Conclusão • Foi possível identificar uma oportunidade de melhorar o desempenho do cliente, aumentando os tamanho de cache do navegador para clientes muito ativos e permitindo um redimensionamento fotográfico local para clientes menos ativos.
Referências • AnAnalysisofFacebookPhotoCaching - Qi Huang, Ken Birman, Robbert van Renesse (Cornell University), Wyatt Lloyd (Princeton University), SanjeevKumar, Harry C. Li (Facebook Inc.) • www.akamai.com