QCon 2008: Facebook

Ainda sobre o QCon, faltou mencionar a apresentação do Facebook.

Eles usam PHP, MySQL, Memcache.

Têm 50 bilhões de page views e 120 milhões de usuários ativos.

Não recomendam armazenamento de dados em um ponto centralizado, e sim pensar no sistema com repositórios de dados em tuplas com particionamento. Principalmente se forem informações que exigem frescor, como por exemplo, número de pessoas em uma sala de bate-papo, participando de um fórum, ouvindo uma música, placar de enquetes, etc. Informações que só agregam se forem do último momento não precisam estar em um banco de dados relacional.

Recomendam usar serviços ou memcache para queries globais, como, por exemplo, quais os grupos mais populares na minha rede?

Eles têm 25TB em memória de memcache.

Eles usam o memcache através de UDP, pois gera menos overhead para manter conexões e menos uso de memória de TCP para os buffers. Parece fazer todo sentido para redes locais.

Pegue a ferramenta certa para o trabalho certo: eles usam C++ ou Java em forma de servicos, ao invés de PHP, em alguns casos. Para isso, eles usam thrift (http://incubator.apache.org/thrift/) . Vou investigar mais, antes de postar sobre isso.

Se quiser ver a apresentação completa do facebook, está em http://picasaweb.google.com/alexandre.dos.santos/FacebookQcon2008# .