O Discourse é uma plataforma de discussão amplamente utilizada que atualmente suporta mais de 22.000 comunidades online. O backup do site foi comprometido devido a um arquivo GIF de 1,6 MB que foi copiado 246.173 vezes pelos usuários, excedendo o limite de links físicos do sistema de arquivos ext4 do Linux. Como resultado, uma animação da dança de Rachel, personagem de Jennifer Aniston na série Friends, consumiu 377 GB de espaço de backup.

Fonte da imagem: warnerbros.com

A plataforma Discourse permite que os usuários insiram emojis e GIFs em suas discussões. “Quando um arquivo é movido entre contextos de segurança (por exemplo, de uma mensagem privada para uma publicação), o sistema cria uma nova cópia com um SHA1 aleatório”, explicou Jake Goldsborough, blogueiro de tecnologia do Discourse. “O conteúdo original é idêntico, mas o Discourse o trata como um novo arquivo.”

Assim, uma imagem ou GIF popular se espalha por publicações, republicações e mensagens privadas, e cada contexto cria uma nova cópia do arquivo. O arquivo que gerou 377 GB de espaço de backup excedente era o da Rachel, de Friends, dançando de alegria. Esse GIF, segundo o Discourse, “era constantemente usado em publicações, mensagens privadas, em todos os lugares”.

A primeira tentativa do Discourse de resolver o problema da sobrecarga de conteúdo duplicado foi rastrear o conteúdo original por seu hash. Durante o backup, os downloads eram agrupados por hash e apenas o primeiro arquivo de cada grupo era baixado. Links físicos foram criados para todos os duplicados.

Essa solução parecia elegante até que a empresa se deparou com o limite do sistema de arquivos ext4, de aproximadamente 65.000 links físicos por inode. Como resultado, segundo a Discourse, “em vez de um único download para todas as 246.173 cópias, acabamos com um download mais 181.000 downloads de backup após atingir o limite”.

A Discourse acabou encontrando uma solução. Ela começa da mesma forma que a anterior, com a criação de links físicos. Mas quando o sistema de arquivos retorna um erro EMLINK (“limite de links físicos excedido”), a próxima cópia do arquivo é feita.Torna-se “primário” até que o limite seja atingido novamente. Essa nova medida, segundo o Discourse, “funciona em qualquer sistema de arquivos, sem necessidade de configuração”.

“Agora sabemos que Jennifer Aniston consegue testar a infraestrutura sob carga”, comentou o Discourse ironicamente em seu blog.

By admin

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *