Este tópico descreve os benefícios, a arquitetura e os cenários de uso do PolarDB X-Engine Edition.
Fale conosco
Em caso de dúvidas, participe do grupo 24490017825 no DingTalk.
Desafios e requisitos para arquivamento de dados históricos
-
Desafios
Na maioria dos casos, dados novos sofrem leitura ou atualização com muito mais frequência do que dados históricos. Informações antigas, como mensagens e pedidos gerados há um ano, raramente são acessadas. Conforme seu negócio se desenvolve, um grande volume de dados pouco ou nunca acessado passa a residir no sistema de banco de dados. Essa situação pode gerar os seguintes problemas:
O armazenamento de dados históricos e novos no mesmo sistema de banco de dados pode resultar em espaço insuficiente em disco.
Um grande volume de dados compartilha memória, espaço de cache e recursos de IOPS de disco do sistema de banco de dados, o que pode degradar o desempenho do banco de dados.
A operação de backup de um grande volume de dados consome muito tempo e pode falhar. Mesmo quando bem-sucedida, o armazenamento dos arquivos de backup representa um desafio adicional a ser resolvido.
Esses problemas têm solução por meio do arquivamento de dados históricos. É possível armazenar esses dados como arquivos utilizando services de armazenamento de baixo custo, como Object Storage Service (OSS) ou Database Backup (DBS). Em cenários reais de negócios, os dados históricos não são totalmente estáticos. Dados gerados há vários meses ou anos podem ser consultados ou atualizados em tempo real ou ocasionalmente. Por exemplo, dentro do Alibaba Group, é comum consultar dados históricos como pedidos antigos no Taobao ou Tmall, mensagens antigas no DingTalk e registros logísticos históricos da Cainiao.
-
Requisitos
Para resolver as questões relacionadas a leituras e atualizações de dados históricos, o X-Engine Edition funciona como um banco de dados separado dedicado exclusivamente ao armazenamento de dados arquivados. O X-Engine Edition deve atender aos seguintes requisitos:
Oferecer grande capacidade de armazenamento para salve dados online gerados continuamente, eliminando preocupações com limites de espaço.
Disponibilizar as mesmas interfaces dos seus bancos de dados online. O banco de dados de arquivamento precisa suportar protocolos MySQL da mesma forma que os bancos online, garantindo que suas aplicações acessem ambos sem necessidade de modificações no código.
Ser econômico. A compressão de dados reduz o espaço em disco consumido, e o uso de mídias de armazenamento de baixo custo permite guardar grandes volumes de dados de forma viável.
Fornecer capacidades de leitura e escrita adequadas para cenários de baixa frequência de acesso.
Embora o MySQL seja o sistema de banco de dados open source mais utilizado no mundo, ele não oferece uma solução que atenda a todos os requisitos anteriores. Engines como TokuDB e MyRocks proporcionam altas taxas de compressão, mas o volume de dados armazenáveis com essas engines fica limitado à capacidade de disco de cada máquina física.
Solução: PolarDB X-Engine Edition
Para enfrentar os desafios mencionados e atender aos requisitos de armazenamento de dados arquivados, o PolarDB X-Engine Edition oferece recursos desenvolvidos com base nas seguintes inovações tecnológicas e avanços:
A Alibaba Cloud desenvolveu o X-Engine Edition com base na arquitetura log-structured merge-tree (LSM tree). Essa engine fornece capacidades robustas de compressão de dados, permitindo o uso de bancos de dados de arquivamento a custos reduzidos. Ao combinar a LSM tree com o algoritmo de compressão Zstandard (ZSTD), o X-Engine Edition aumenta significativamente a taxa de compressão. Em comparação com o InnoDB, o X-Engine Edition reduz o uso de armazenamento em até 70%. Para mais informações sobre o X-Engine Edition, consulte Introduction to X-Engine. O X-Engine Edition apresenta limitações, especialmente quanto à compatibilidade com MySQL. Para mais detalhes, consulte Usage.
-
O PolarDB suporta expansão online da capacidade de armazenamento com base em armazenamento distribuído compartilhado. O PolarDB conecta recursos de computação e armazenamento por meio de uma rede de alta velocidade e transmite dados usando o protocolo remote direct memory access (RDMA), eliminando gargalos de desempenho de I/O. O X-Engine Edition integrado ao PolarDB herda todos esses benefícios.
A integração do X-Engine Edition ao PolarDB ocorreu por meio das seguintes inovações tecnológicas, permitindo que o PolarDB opere em uma arquitetura de engine dupla.
Os fluxos de log write-ahead logging (WAL) do X-Engine Edition foram combinados com os fluxos de redo log do InnoDB. Dessa forma, os mesmos fluxos de log e canais de transmissão suportam tanto o InnoDB quanto o X-Engine Edition. A lógica de gerenciamento e a interação com o armazenamento compartilhado permanecem inalteradas. Outras engines introduzidas futuramente também poderão reutilizar essa arquitetura.
O módulo de I/O do X-Engine Edition foi adaptado ao Polar File System (PFS) do PolarDB InnoDB. Isso garante que InnoDB e X-Engine Edition utilizem o mesmo armazenamento distribuído. Os backups são acelerados com base no armazenamento distribuído subjacente.
Arquitetura dos nós de computação do X-Engine Edition
Um cluster X-Engine Edition consiste em um nó primário e múltiplos nós somente leitura. O nó primário processa solicitações de leitura e escrita. O cluster suporta as especificações dedicated e general-purpose.
A arquitetura multinó do X-Engine Edition garante a alta disponibilidade dos clusters PolarDB. Quando o nó primário de um cluster falha, o cluster executa automaticamente o failover para um nó somente leitura, que passa a atuar como o novo nó primário. Esse mecanismo assegura uma disponibilidade de service de pelo menos 99,99%. A figura a seguir ilustra a arquitetura multinó do X-Engine Edition.
Benefícios
O X-Engine Edition oferece ampla capacidade de armazenamento. Com base na capacidade de 200 TB e nos recursos de compressão, o X-Engine Edition armazena mais de 500 TB de dados brutos. Sua arquitetura serverless permite que a capacidade de armazenamento aumente automaticamente conforme o volume de dados cresce. Assim, não é necessário especifique a capacidade de armazenamento ao adquirir um cluster PolarDB. O faturamento ocorre apenas pela capacidade de armazenamento efetivamente utilizada.
O PolarDB X-Engine Edition suporta os protocolos oficiais do MySQL. Diferentemente de soluções que fazem backup de dados históricos em services NoSQL como o HBase, o X-Engine Edition permite que as aplicações acessem os bancos de dados online e o X-Engine Edition sem exigir alterações no código.
O X-Engine Edition utiliza a capacidade de backup fornecida pelo armazenamento distribuído subjacente do PolarDB para realizar backup de grandes volumes de dados em curto período. Os arquivos de backup podem ser enviados e armazenados permanentemente em services de armazenamento de baixo custo, como o OSS.
A arquitetura multinó do X-Engine Edition fornece capacidades robustas de compressão de dados para reduzir custos de armazenamento e garantir alta disponibilidade dos clusters. Caso o nó primário falhe, o cluster realiza failover automático para um nó somente leitura, que assume a função de novo nó primário. Isso assegura disponibilidade de service de no mínimo 99,99%.
Resultados de testes com sysbench mostram que esse modo de armazenamento com engine dupla causa apenas 20% de degradação de desempenho em comparação ao modo de engine única. Se o seu cluster possui uma grande quantidade de dados, como centenas de GBs ou TBs, ative o X-Engine Edition para obter uma leve redução de desempenho em troca de economias significativas de custos.
Cenários
O PolarDB X-Engine Edition proporciona grande capacidade de armazenamento e serve para guardar dados históricos de múltiplos services, garantindo armazenamento e gerenciamento centralizados para todos os dados históricos. O X-Engine Edition é adequado para os seguintes cenários:
Armazenamento offline de dados frios provenientes de bancos de dados autogerenciados no PolarDB X-Engine Edition. Os bancos de dados autogerenciados podem ser MySQL, TiDB, PostgreSQL, SQL Server ou outros bancos de dados relacionais.
Arquivamento de dados do ApsaraDB RDS for MySQL ou PolarDB for MySQL no PolarDB X-Engine Edition. Migre dados históricos pouco acessados para o PolarDB for MySQL X-Engine Edition para liberar espaço de armazenamento nos bancos de dados online, reduzindo custos e melhorando o desempenho.
Uso do PolarDB X-Engine Edition como service de banco de dados relacional com grande capacidade de armazenamento. Ideal para cenários que exigem escrita de grandes volumes de dados com baixa frequência de acesso, como logs de monitoramento.
Utilize o Data Transmission Service (DTS) para migrar dados continuamente dos bancos de dados online para o PolarDB X-Engine Edition em tempo real. Alternativamente, use o Data Management (DMS) para importar periodicamente dados online para o PolarDB X-Engine Edition. Para mais informações sobre DTS e DMS, consulte What is Data Transmission Service? e What is Data Management (DMS)?

Versões suportadas
A versão do kernel do seu cluster deve atender a um dos seguintes requisitos:
MySQL 8.0.1 com versão de revisão 8.0.1.1.31 ou posterior;
MySQL 8.0.2 com versão de revisão 8.0.2.2.12 ou posterior.
Especificações de nós e preços
O X-Engine Edition suporta as especificações General-purpose e Dedicated. Para mais informações, consulte Compute node specifications for Enterprise Edition.
Para detalhes sobre os preços do X-Engine Edition, consulte Pay-as-you-go prices of compute nodes.