Com o crescimento contínuo do volume de dados e da pressão de acesso nos negócios, bancos de dados de nó único podem enfrentar gargalos na capacidade de armazenamento e no desempenho de leitura e gravação. As tabelas particionadas de cluster multi-master do PolarDB for MySQL permitem dividir horizontalmente os dados em vários shards físicos por meio de chaves de distribuição, enquanto múltiplos nós de leitura e gravação compartilham a carga de trabalho. Essa solução combina a elasticidade do armazenamento compartilhado com a capacidade de dimensionamento horizontal da computação distribuída, melhorando o throughput simultâneo em workloads de grande escala.
Arquitetura do product
As tabelas particionadas de cluster multi-master utilizam uma arquitetura de separação entre armazenamento e computação:
Camada de armazenamento: agrupa recursos de armazenamento (armazenamento compartilhado) e fornece alocação de recursos sob demanda.
Camada de computação: permite que vários nós leiam e gravem simultaneamente (shared-nothing), escalando horizontalmente o desempenho de leitura e gravação.
Escopo de aplicação
Atualmente, apenas a versão 8.0.2 do kernel do PolarDB for MySQL oferece suporte a tabelas particionadas de cluster multi-master.
Principais vantagens e capacidades
-
Divisão horizontal automática
Ao criar uma tabela particionada de cluster multi-master, especifique uma chave de distribuição para que o sistema distribua automaticamente os dados entre diferentes shards físicos, seguindo as regras definidas.
-
Transparência para a aplicação
O uso das tabelas particionadas de cluster multi-master é semelhante ao de tabelas convencionais. Em geral, as aplicações não precisam conhecer a distribuição física dos dados.
-
Dimensionamento horizontal de gravação
Vários nós de leitura e gravação podem executar tarefas de escrita simultaneamente, permitindo o dimensionamento flexível dos recursos de computação conforme a carga de trabalho.
-
DDL distribuído integrado
Oferece um framework de DDL distribuído totalmente integrado, garantindo que operações como adição ou remoção de índices e modificação de definições de colunas ocorram de forma unificada e transparente, simplificando significativamente o fluxo de manutenção.
-
Capacidade de leitura global
Permite ler dados globais do cluster por meio de nós somente leitura globais, executando consultas entre bancos de dados e shards sem a necessidade de criar clusters de agregação adicionais ou links de sincronização do DTS.
Cenários
As tabelas particionadas de cluster multi-master representam um modelo de organização de dados fornecido pelo Multi-master Cluster (Limitless), projetado principalmente para cenários com grandes volumes de dados e alta concorrência de leituras e gravações, como e-commerce e jogos.
-
Transações de e-commerce
Em casos de tabelas grandes, gravações com alta concorrência e workloads com pontos de acesso, as chaves de distribuição dividem os dados e a pressão de acesso entre vários nós de leitura e gravação, reduzindo a sobrecarga em um único nó.
-
Sharding de banco de dados e tabelas
Para workloads que já adotaram arquiteturas de sharding de banco de dados e tabelas, essa funcionalidade oferece divisão transparente de dados e recursos integrados de DDL distribuído, reduzindo os custos de modificação da aplicação e de manutenção diária.
Comparação de desempenho
Testes de estresse foram realizados com Sysbench em dois bancos de dados distribuídos comerciais populares (banco de dados distribuído 1 e banco de dados distribuído 2) e nas tabelas particionadas de cluster multi-master do PolarDB:
Descrição do teste: adquira o banco de dados distribuído 1, o banco de dados distribuído 2 e as tabelas particionadas multi-master do PolarDB em suas respectivas páginas de compra, garantindo que os clusters adquiridos tenham o mesmo custo.
Procedimento de teste: execute o Sysbench em uma instância de teste ECS com 32 núcleos e 128 GB de memória, realizando testes de desempenho em cada banco de dados distribuído com 128 threads de requisição simultâneas. Quatro padrões de workload são testados: oltp_point_select, oltp_read_only, oltp_write_only e oltp_read_write, para avaliar o desempenho de cada banco de dados distribuído.
Resultados do teste: veja abaixo a comparação de desempenho entre os bancos de dados distribuídos, usando QPS como exemplo:

No ambiente e nos workloads descritos acima, as tabelas particionadas de cluster multi-master do PolarDB apresentaram bom desempenho geral. O desempenho real pode variar devido a fatores como especificações da instância, escala de dados, distribuição de dados e carga de trabalho.