Companhia armazena 12TB de dados por dia e decidiu usar o Protocol Buffer para os próximos tweets dos usuários.
O Twitter resolveu formatar o armazenamento dos dados de seus usuários em um sistema com um formato desconhecido, introduzido pelo Google, que leva o nome de Protocol Buffers. A companhia armazena 12TB de dados por dia, para uso posterior; a decisão de adotar o sistema foi crucial para a rede social.
De acordo com o analista do Twitter Kevin Weil, a companhia está fazendo planos quando a rede social alcançar um trilhão de tweets e ainda quer mais ferramentas para analisar as informações. “A combinação do Protocolo juntamente com o Hadoop e outras tecnologias associadas, devem agilizar este trabalho”, completa o executivo.
“A escolha de um formato para armazenar todos os dados foi uma tarefa difícil. Uma escolha óbvia é o XML (Extensible Markup Language), mas esse protocolo é muito prolixo”, disse Weil, referindo-se à forma como o nome da marca acompanha cada elemento de dados. “Em XML, um petabyte de um trilhão de tweets pode se tornar 10 petabytes da mesma quantia”, explica o analista.
Segundo Weil, o JSON (JavaScript Object Notation), embora tenha sido projetado para simplificar o XML, também é prolixo, na medida em que armazena o nome da chave com cada entrada.
Em outro extremo, há o protocolo CSV (Comma Separated Values), que separa cada elemento de dados apenas com uma vírgula. “Embora esse protocolo seja simples, não é bom para os elementos de nidificação de dados em subcampos”, explicou Weil. Além disso, se o esquema for alterado, a programação resultante seria para acomodar os dados no esquema antigo.
Para o executivo, uma desvantagem de todos estes protocolos é que, a fim de obter os dados dentro e fora das aplicações, os desenvolvedores têm repetidamente para criar estruturas de dados para codificar e analisar os dados, um trabalho que o analista considera rotina.
“O Protocol Buffers irá gerar um código em várias línguas diferentes, assim você não tem que escrever outro código além do IDL (Interface Description Language)”, disse Weil. O analista também garante que o esquema deve ser alterado, permitindo que as informações mais antigas permaneçam acessíveis. Embora as cópias primárias de tweets dos usuários são mantidas em bancos de dados, MySQL e Cassandra, a empresa também está construindo um segundo repositório de dados, rodando no Hadoop, que podem ser usados para análises e aplicações.
As informações contidas neste sistema podem ser consultadas usando o Java MapReduce ou Pig, que é a linguagem própria do Hadoop para SQL-like. Já o recurso de busca do Twitter é executado neste sistema, e este número deverá ser construído.

