MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

O que há de novo no MariaDB 10.4


O MariaDB 10.4 é uma ramificação de desenvolvimento atual do MariaDB. Recentemente, no dia 21 de maio, foi lançado o terceiro Release Candidate (10.4.5), aproximando-nos do lançamento oficial. É por isso que achamos que seria uma boa ideia dar uma olhada nos novos recursos do 10.4. Também compartilharemos alguns pensamentos sobre um post recente no blog publicado pela MariaDB Corporation. Para informações sobre o lançamento em si, você pode encontrar todos os detalhes no changelog do MariaDB 10.4.0.

Mudanças de desempenho


Conjuntos de caracteres Unicode são normalmente mais lentos que conjuntos de caracteres como latin1, principalmente devido ao seu tamanho. O MySQL 8.0 trouxe melhorias significativas nessa área, e o MariaDB 10.4 também deve ser notavelmente mais rápido que o 10.3 nesse aspecto. É uma melhoria bastante importante - as pessoas realmente adoram usar emojis, que exigem que o UTF8 seja ativado. Algum trabalho foi feito no otimizador - MariaDB 10.4 deve funcionar melhor para subconsultas IN(), pois agora é possível enviar condições para subconsultas materializadas.

Iniciar e parar o InnoDB pode demorar um pouco, dependendo da quantidade de dados nos logs de redo. O MariaDB 10.4 melhorará a inicialização, desligamento e limpeza. Essas melhorias são especialmente importantes devido à popularidade de ferramentas de backup quentes como mariabackup e xtrabackup. Essas ferramentas, no final, passam pelo processo de inicialização do InnoDB a partir de um desligamento não limpo quando aplicam redo logs, portanto, cada melhoria nessa área deve reduzir o tempo necessário para restaurar os backups.

Mudanças do InnoDB


O MariaDB 10.4 recebeu uma operação DROP COLUMN instantânea. Agora também é possível reordenar as colunas na tabela sem a necessidade de reconstruí-la. Não podemos enfatizar o quão importante isso é. Você pode se perguntar quais são as operações mais comuns que você faz no ambiente de produção? Diríamos que está adicionando ou removendo um índice. Outra operação mais comum seriam as operações nas colunas - adicionar uma nova coluna e remover a coluna existente. Até agora, a abordagem mais comum era usar ferramentas externas para fazer o trabalho:pt-online-schema-change ou, mais recentemente, gh-ost. Ambos têm suas limitações (gh-ost não funciona para Galera Cluster, por exemplo) o que pode impossibilitar seu uso em seu sistema. Especialmente complicadas são as chaves estrangeiras. Com o instant DROP COLUMN (instant ADD COLUMN já está disponível), grande parte das alterações de esquema podem ser realizadas ad hoc, sem agendamento e planejamento detalhados, como deve ser feito agora. É importante ter em mente que mudanças instantâneas são o que queremos ter. Existem alterações de esquema sem bloqueio, como a criação de um índice, mas essas operações representam um sério desafio quando a replicação é usada, pois induzem o atraso da replicação. Assim, mesmo que a operação possa ter sido executada no sistema ativo, preferimos usar soluções alternativas como pt-online-schema-change para manter um melhor controle sobre o processo.

Esta não é a única melhoria na forma como as alterações de esquema são executadas. O MariaDB 10.4 se beneficiará da extensão mais rápida de colunas VARCHAR, além disso, as alterações de agrupamento e conjunto de caracteres em colunas não indexadas serão instantâneas.

Mudanças gerais


Uma das maiores mudanças são as mudanças no gerenciamento de usuários. A tabela mysql.host não será criada, a tabela mysql.user está obsoleta. Contas de usuário e privilégios globais serão mantidos na tabela mysql.global_priv. Esta é potencialmente uma mudança séria para todas as ferramentas (incluindo ClusterControl), que têm uma opção para gerenciar usuários MySQL e MariaDB - novos casos terão que ser escritos para cobrir o gerenciamento de usuários no MariaDB 10.4 e em diante. Embora reconheçamos que mudanças são necessárias, isso definitivamente não ajuda a manter as ferramentas para MariaDB e MySQL, tornando o cenário de ferramentas ainda mais dividido do que já é. Falando sobre usuários, o MariaDB 10.4 vem com uma opção para expirar a senha do usuário. Este é definitivamente um passo em uma boa direção - ajuda a impor boas práticas em relação ao gerenciamento de senhas.

Embora o abordaremos em um blog separado com mais detalhes, temos que mencionar aqui o suporte para Galera 26.4 - MariaDB 10.4 se beneficiará de uma nova versão do Galera com recursos como replicação de streaming ou SST aprimorado graças a bloqueios de backup.

Finalmente, no MariaDB 10.4 você pode definir sql_mode=MSSQL. Esta é uma implementação inicial, mas sql_mode=ORACLE também foi uma implementação inicial em algum momento. Isso mostra o foco do MariaDB em clientes corporativos - se os clientes Oracle decidirem migrar, é bastante provável que a adoção do MariaDB entre o Microsoft SQL Server também cresça à medida que mais recursos serão adicionados e a migração se tornará menos problemática.

MariaDB sendo um fork


Recentemente, vimos um post no blog explicando a postura do MariaDB sobre as mudanças e compatibilidade do InnoDB. A essência é que o MariaDB não irá mais mesclar recursos do InnoDB do MySQL, o foco será na estabilidade e melhoria de desempenho feita pelo MariaDB. Isso basicamente significa que o MariaDB se tornará incompatível com o MySQL. Mesmo se você pudesse fazer a atualização binária no passado, isso não será possível no futuro. Mesmo agora, pode ser complicado de executar. Isso aumenta a importância de ferramentas como mydumper/myloader, pois o backup lógico será o único caminho para a migração. O que é bom, o MariaDB será capaz de possuir a estabilidade de seu fork do InnoDB - eles não terão que lidar com problemas introduzidos por desenvolvedores upstream, portanto, podemos esperar que menos bugs sejam introduzidos.

Em termos de desempenho, temos que esperar por benchmarks, mas dados os dados históricos, podemos supor que o MariaDB será mais lento que o MySQL. Nos benchmarks anteriores, o que normalmente vemos é que o aumento de desempenho do MariaDB começa quando a versão mais recente do InnoDB é integrada. Este não será mais o caso, o que nos faz pensar como o MariaDB se sairá na comparação de desempenho a partir de agora e se as melhorias introduzidas pelo MariaDB serão suficientes para acompanhar o MySQL 8.0 e versões posteriores.

Para nós usuários, tudo isso significa que o MariaDB 10.4 deve ser mais estável que as versões anteriores. Isso também significa que, eventualmente, teremos que aprender os componentes internos de dois mecanismos de armazenamento diferentes - especialmente se nos preocuparmos com o desempenho. Isso está longe de ser o ideal, mas é assim que é. As ferramentas terão que ser projetadas para funcionar com uma ou outra versão do InnoDB (ou trabalho adicional terá que ser adicionado para suportar MySQL e MariaDB). Vamos ficar de olho em como isso vai evoluir. Quando você pensa nisso, não é uma jogada tão surpreendente - MariaDB sempre teve que levar seu tempo para se integrar com a versão mais recente do InnoDB. Com cada vez mais recursos incompatíveis sendo adicionados ao MariaDB e grandes mudanças introduzidas no MySQL 8.0, faz sentido focar no desenvolvimento de novas funcionalidades ao invés de portar o InnoDB incompatível do MySQL upstream.

Esperamos que esta breve postagem no blog tenha lhe dado uma visão das mudanças que atingirão os sistemas de produção ao ir para o MariaDB 10.4.