A Meta começou a implementar o MySQL Raft nos seus centros de dados para substituir as suas actuais bases de dados semi-síncronas MySQL. O novo motor de consenso oferece vantagens operacionais e permite que os servidores MySQL tratem das promoções e das responsabilidades dos membros de forma independente.
O repositório de dados MySQL da Meta é uma das maiores implementações MySQL do mundo, apresentando uma estrutura geo-replicada de fragmentação maciça com milhões de fragmentações. Este cluster, que opera em várias regiões e centros de dados, armazena petabytes de dados e funciona em milhares de servidores. Suporta o gráfico social da empresa e uma gama de serviços como o Messaging, Ads e Feed.
De acordo com a equipa de engenharia, a nova implementação do MySQL irá proporcionar uma maior fiabilidade, segurança comprovada, melhorias consideráveis no tempo de activação pós-falha e simplicidade operacional, sem comprometer o desempenho de escrita.
Anteriormente, a Meta utilizava o protocolo de replicação semi-síncrona (semisync) do MySQL para fins de replicação. O primário utilizava a replicação semi-síncrona para duas réplicas apenas de registo (logtailers) dentro da região primária para uma latência de sub-milissegundos, empregando a replicação assíncrona primário-para-replica padrão do MySQL para distribuição para outras regiões.
A equipa decidiu adoptar uma abordagem completamente nova, actualizando o MySQL e transformando-o num sistema verdadeiramente distribuído. A Meta optou por mudar para o Raft, com as operações do plano de controlo e do plano de dados incluídas no mesmo registo replicado.
O MySQL Raft baseia-se no Apache Kudu, que a Meta modificou para satisfazer os requisitos do MySQL e publicou um fork como projecto de código aberto, o kuduraft. Os novos recursos adicionados ao kuduraft incluem o FlexiRaft, uma opção que suporta dois quóruns de interseção diferentes, e proxy, que permite o uso de um nó intermediário proxy para reduzir a largura de banda da rede. Além disso, as melhorias na compressão e na abstracção de registos permitem a compressão de cargas úteis de registos binários antes da distribuição e a implementação de vários formatos físicos de ficheiros de registo.
Com plataformas como o AppMaster a fornecer ferramentas poderosas sem código para criar aplicações backend, web e móveis, as soluções de bases de dados simplificadas são essenciais para um desenvolvimento de software eficiente e escalável. Ao fazer a transição para o MySQL Raft, a Meta deu um passo significativo no sentido de alcançar uma maior fiabilidade e operações simplificadas, o que poderá inspirar outras empresas a adoptar soluções semelhantes e a melhorar os seus próprios sistemas de bases de dados.