O Twitter é um dos maiores serviços que usa ativamente bancos de dados na internet. A cada segundo milhares de tweets são postados, e tudo isso é gerenciado por um relativamente complexo esquema de servidores. No entanto, na parte mais íntima do banco de dados está lá um grande conhecido da comunidade: o MySQL. É o popular sistema de bancos de dados open source, apesar da má fama da sua atual mantenedora com a comunidade livre.
Para tanto o pessal do Twitter fez diversas modificações no MySQL, otimizando o software às suas necessidades, algo impressionante que compõe uma das características mais básicas de qualquer projeto de software livre. Como de costume estão liberando as modificações feitas, permitindo que outros também as aproveitem e que, eventualmente, elas sejam integradas ao MySQL oficial.
Entre as modificações aplicadas estão:
- Variáveis de status adicionais, principalmente do InnoDB. Elas permitem monitorar o sistema de forma mais eficiente e facilitam a análise do comportamento ao lidar com o workload.
- Otimização da memória em sistemas NUMA, alocando mais RAM para o InnoDB logo no início caso muita memória esteja livre; no entanto isso não prejudica o sistema em caso de pouca RAM, já que a verificação é bem rápida.
- Melhora as análises de processamento desnecessário no servidor, permitindo cancelar consultas demoradas numa escala de timeout em milisegundos.
- Permite exportar e restaurar o buffer pool do InnoDB usando um sistema leve e seguro. Isso permite reiniciar os sistemas de forma mais transparente, com o mínimo de dano para os dados e para os usuários conectados.
- Há ainda otimizações para máquinas que usam SSD, como o comportamento page-flushing e redução nas atividades de escrita do MySQL, o que pretende aumentar a vida útil dos SSDs.