Google revela detalhes de sua ferramenta interna utilizada para transferir, em média, 1,2 exabytes de dados por dia
O Effingo tem como objetivo garantir que os dados estejam próximos dos locais onde serão acessados, minimizando a latência na rede. Ele é otimizado para o sistema de arquivos Colossus, utilizado internamente pelo Google, e opera em clusters compartilhados compostos por milhares de máquinas.
O sistema é dividido em dois planos:
- Plano de controle: gerencia o ciclo de vida dos dados;
- Plano de dados: responsável pela transferência de bytes e pela atualização do status da operação.
O plano de dados realiza a maior parte do esforço computacional, consumindo 99% da CPU.
Para gerenciar a rede, o Effingo utiliza uma ferramenta chamada Bandwidth Enforcer (BWe), que aloca a largura de banda com base na prioridade do serviço e no uso de banda extra. As "cotas" para largura de banda e IOPS (operações de entrada/saída por segundo) são planejadas com meses de antecedência.
Apesar de seu sofisticado gerenciamento de recursos, o Effingo enfrenta desafios, como lidar com um backlog global de 12 milhões de arquivos, que pode atingir picos de 12 petabytes de dados. Embora apenas 4,2% das transferências falhem, o Google continua a aprimorar o sistema, planejando melhor integração com sistemas de gerenciamento de recursos e otimização do uso da CPU durante as transferências entre datacenters.
Ferramentas de transferência de dados comuns não conseguem lidar com o volume diário exigido pelo Google, pois são projetadas para transferências ponto a ponto ou para otimização de tempo, e não para a escala e complexidade que o Google exige.