Para que é usada a cache do TAO no Facebook?
O TAO é o armazenamento de dados distribuído que é amplamente utilizado no facebook para armazenar e servir o gráfico social. Toda a arquitetura é altamente otimizada para leitura, suporta um modelo de dados gráficos e funciona em múltiplas regiões geográficas. O TAO preserva algumas das principais vantagens da arquitetura memcached/mysql, separando as camadas de cache da loja persistente, permitindo que cada uma delas seja escalada de forma independente. Para qualquer usuário do sistema ele apresenta uma única API unificada que faz todo o sistema aparecer como 1 banco de dados gráfico gigante.Vantagens chave do sistema incluem:
>
- Proporciona uma separação limpa entre a lógica da aplicação/produto e o acesso aos dados, fornecendo uma API gráfica simples mas poderosa e um modelo de dados para armazenar e buscar dados. Isto permite que os engenheiros de produto facebook se movimentem rapidamente.
- Ao implementar um cache de gravação TAO permite que o facebook forneça uma melhor experiência ao usuário e preserve a semântica de consistência de leitura-o-que-escrita, mesmo quando a arquitetura abrange múltiplas regiões geográficas.
- Ao implementar um cache de gravação de leitura-escrita TAO também protege melhor as lojas persistentes subjacentes, evitando problemas como a existência de rebanhos estrondosos sem comprometer a consistência dos dados.
>br>TAO está em produção no facebook há vários anos e no pico atende mais de um bilhão de pedidos de leitura e vários milhões de pedidos de escrita por segundo.
Acabamos de escrever um post no blog sobre o TAO [1] que fornece muito contexto sobre a motivação para o trabalho, a arquitetura geral do sistema e o modelo de dados. Um artigo técnico completo sobre o TAO também é publicado como parte dos procedimentos do Usenix ATC 2013 [2] que fornece ainda mais detalhes sobre o design e a implementação.
[1] TAO: O poder do gráfico
[2] TAO: Loja de Dados Distribuídos do Facebook para o Gráfico Social
Artigos semelhantes
- Um HDD de 256 MB de cache é significativamente mais rápido do que um HDD de 64 MB de cache?
- Qual é a diferença entre um cache SLC e um cache DRAM em SSDs?
- Como o bloco de cache foi substituído em cache totalmente associativo?
- Em Stardew Valley, porque é que a seiva é tão abundante quando é usada para tão poucas coisas?