Published on

September 21, 2014

Escalar Aplicações Existente: Observações e Medidas Chave

No mundo da nuvem pública, privada e híbrida, aumentar o tamanho de uma aplicação existente através do uso de hardware mais potente nem sempre é a abordagem mais eficaz. Pode ser caro e pode não resolver problemas de escalabilidade, como desempenho inconsistente, disponibilidade ou gargalos de taxa de transação. Nesses casos, um banco de dados MySQL distribuído pode ser uma solução viável.

Um banco de dados MySQL distribuído mantém seus princípios relacionais aplicando um processo de distribuição de dados declarativo e baseado em políticas. O objetivo é permitir “leituras” e “escritas” bem-sucedidas usando dados de uma única instância de banco de dados ou fragmento. Ao processar dados dentro de uma única instância, o desempenho da aplicação e a escalabilidade do banco de dados podem ser significativamente aprimorados.

Distribuição de Dados (Análise) para Leituras

Ao examinar consultas ou leituras, é importante identificar os dados relacionados em várias tabelas que devem ser mantidos juntos em uma única máquina. Isso pode ser feito analisando junções, subconsultas ou uniões para determinar quais partes de dados são acessadas juntas. Ao manter os dados relacionados localizados, a execução da consulta pode ser otimizada.

Distribuição de Dados para Escritas

Para transações ou escritas, é crucial colocar adições ao banco de dados na instância de banco de dados particionada apropriada ou fragmento juntamente com seus dados relacionados. Isso garante que uma transação seja contida dentro de um único fragmento, eliminando a necessidade de transações distribuídas com um commit de 2 fases. Ao escrever dados juntos, a eficiência da transação pode ser melhorada.

Desnormalização – Não é a Melhor Solução

Embora a desnormalização possa parecer uma solução para problemas de colocação de dados, ela pode criar problemas adicionais. Em vez disso, uma solução de pesquisa de chave em cascata pode resolver eficientemente problemas de colocação de dados sem a necessidade de desnormalização. No entanto, em certos casos em que o processo de distribuição se torna complexo, a desnormalização pode ser necessária.

Colunas Nulas

Uma chave de fragmento é usada para direcionar dados e comandos dentro de um banco de dados distribuído. É importante que os campos usados para determinar o roteamento de dados não estejam vazios ou nulos. Cada dado deve nascer com uma chave de fragmento que permanece inalterada ao longo de sua vida. É vital inserir cada tabela no banco de dados com uma chave de fragmento atualizada para garantir a distribuição adequada dos dados.

Novas Aplicações: Projete para Escalabilidade desde o Início

Ao construir novas aplicações, é essencial projetar para escalabilidade desde o início. Os mesmos princípios de distribuição de dados aplicados a aplicações existentes também devem ser aplicados a novas aplicações. Ao selecionar uma chave de distribuição e entender a relação entre tabelas dentro de cada fragmento durante o processo de design, os dados podem ser armazenados e acessados juntos no mesmo banco de dados.

A ScaleBase criou um guia chamado “Construindo uma Nova Aplicação com Escalabilidade Massiva de Banco de Dados – Começando com a ScaleBase” que demonstra como construir uma nova aplicação que planeja uma escalabilidade massiva de banco de dados desde o início. Ele descreve as etapas envolvidas e fornece um passo a passo usando uma aplicação de exemplo chamada ‘Sistema de Blog’.

Se você está explorando bancos de dados distribuídos ou enfrentando desafios com bancos de dados relacionais distribuídos, sinta-se à vontade para compartilhar seus pensamentos e sugestões para futuras postagens no blog.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.