Common design patterns with Azure Cosmos DB | Azure Friday
Os engenheiros do YouTube estão desenvolvendo um conjunto de software, chamado Vitess, que ajudará os bancos de dados MySQL de código aberto a trabalhar com mais eficiência em ambientes de produção em larga escala. Para escrever o código, eles estão usando a linguagem de programação Go do Google.
O YouTube já usa um componente Vitess, chamado Vtocc, para ajudar a veicular vídeos para todos os 800 milhões de usuários mensais do serviço. O Google adquiriu o YouTube em 2006.
O Vtocc "tem sido muito estável e tem todas as ferramentas necessárias para você usar em um ambiente de produção", disse o arquiteto do YouTube Sugu Sougoumarane, que, junto com o engenheiro do YouTube Mike Solomon, discutiu Vitess na conferência Usenix LISA (Large Installation System Administration), realizada esta semana em San Diego.
O Vitess está escrito em Go pode ajudar a validar a idéia de que essa linguagem de programação relativamente nova poderia ser usada em ambientes de produção em larga escala. O Google introduziu a versão 1 do Go em março.
O YouTube veicula mais de 4 bilhões de horas de vídeo por mês. Cerca de 72 horas de vídeo são enviadas para o serviço a cada minuto. Embora o YouTube armazene todos os seus vídeos diretamente em um sistema de arquivos, ele usa o MySQL para armazenar todos os metadados necessários para veicular cada vídeo, como preferências do usuário, informações de publicidade, personalizações de países e outras informações necessárias. por sua confiabilidade, disse Solomon, um dos engenheiros que originalmente construiu o serviço. Tem peculiaridades, mas essas peculiaridades são bem conhecidas e podem ser mitigadas com bastante facilidade, disse ele. No entanto, o MySQL também tem problemas com dimensionamento - pelo menos dimensionamento para acomodar um serviço tão grande quanto o do YouTube.
"O maior problema com o MySQL é que, quando você chega a um certo ponto de uso, você gasta muito tempo de gerenciamento de hardware e quantas instâncias você tem ", disse Solomon. "Queremos automatizar esse pedaço. Queremos tomar todas as ações que são complicadas, propensas a erros e fazer com que ele se cure."
O MySQL também não é muito eficiente quando usado em uma grande implantação. Normalmente, cada conexão com o MySQL requer seu próprio encadeamento no servidor. Essa abordagem, no entanto, não é viável na escala das operações do YouTube. "A execução de dezenas de milhares de conexões não é realmente viável", disse Solomon.
Os engenheiros da empresa, no entanto, relutam em tentar alterar o código principal do MySQL, notando que fazer mudanças no complexo e um tanto difícil O código de suporte geralmente pode resultar em efeitos imprevistos. "Não é simples. Quando você pensa que sabe o que está fazendo, é quando começa a ter problemas", disse Solomon.
O So Vitess foi criado para funcionar em conjunto com o MySQL para oferecer recursos adicionais de gerenciamento. O componente Vtocc, por exemplo, consolida milhares de consultas SQL recebidas em um número menor de lotes, de modo que o MySQL pode ter menos recursos atendendo a essas solicitações. O Vtocc também analisa consultas para que elas possam ser executadas de forma mais eficiente e reduz o trabalho causado por consultas duplicadas reutilizando os resultados de uma consulta para satisfazer as outras solicitações idênticas.
Usar o Go permitiu que os desenvolvedores do YouTube fossem mais produtivos do que tem usado uma linguagem mais tradicional, disse Sougoumarane.
O código compila rapidamente, disse ele. As 30.000 linhas de código em Vitess podem ser compiladas em binários em cerca de 30 segundos. E, graças a um rico conjunto de bibliotecas, muitas tarefas não exigem muita programação. Por exemplo, Sougoumarane escreveu uma rotina de 105 linhas que periodicamente apara arquivos de log, funcionalidade que não poderia ter sido escrita em poucas linhas usando C ou C ++.
"É assim que o Go é expressivo", disse Sougoumarane. "Os recursos de linguagem são bem pensados. Eles ajudam você a compor as coisas de uma maneira muito mais elegante do que as linguagens tradicionais." Sougoumarane também elogiou o suporte à concorrência do Go, vital para uso em processadores multicore. "Você não precisa se preocupar com o gerenciamento de threads. Vá administrá-los para você", disse ele.A língua também tem algumas desvantagens, admitiu Sougoumarane. O tratamento de erros pode ser melhorado, por exemplo. O agendamento e a coleta de lixo também poderiam funcionar.
Solomon disse que, com o tempo, Vitess assumirá tarefas adicionais, como replicação de banco de dados e fragmentação automática, para que um banco de dados possa crescer em vários servidores sem intervenção dos administradores.
Joab Jackson cobre software empresarial e tecnologia geral de notícias de última hora para
O IDG News Service
. Siga Joab no Twitter em @Joab_Jackson. O endereço de e-mail de Joab é [email protected]
Nvidia deverá confirmar a escala de problemas com chips em breve

A escala dos problemas de empacotamento de chips da Nvidia deve se tornar aparente quando a empresa divulgar seus resultados financeiros.
Microsoft impulsiona a escala SQL Após DATAllegro comprar

A Microsoft estabeleceu um cronograma para lançar novos produtos que integrem tecnologia de sua aquisição da DATAllegro… < Nos próximos 12 meses, a Microsoft começará a estender o SQL Server para suportar grandes volumes de dados, com base na tecnologia adquirida da DATAllegro.
Escala da UE de volta ao Plano de Regulamentação de Telecomunicações

A Comissão Européia reduziu suas ambições de criar um regulador no estilo da Comissão Federal de Comunicações dos EUA. Sexta-feira reduziu suas ambições de criar um regulador da União Européia para a União Européia, depois que os legisladores se opuseram à decisão em setembro.