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

Otimizações de gravação para Qualcomm Centriq 2400 no MariaDB 10.3.5 Release Candidate


O MariaDB tem colaborado com a Qualcomm Datacenter Technologies para aumentar o desempenho, aproveitando a arquitetura de hardware inovadora baseada em ARM com a arquitetura de banco de dados exclusiva do MariaDB. Como parte do lançamento do produto Qualcomm Centriq™ 2400 em novembro de 2017,  demonstramos a forte escalabilidade de leitura do MariaDB neste chip. Desde então, a engenharia do MariaDB e da Qualcomm vem trabalhando para melhorar a escalabilidade das operações de gravação que gostaríamos de compartilhar hoje com a comunidade de desenvolvedores.



Temos o prazer de anunciar uma série de melhorias de desempenho que estão sendo disponibilizadas no recém-lançado 10.3 release candidate 10.3.4. Ao aproveitar o processador Qualcomm Centriq 2400 de 48 núcleos altamente paralelizado rodando a 2,6 GHz com 6 canais de memória em uma arquitetura em anel totalmente coerente, nosso interesse é extrair a otimização do desempenho de gravação em um caso de uso de gravação de linha única para um aplicativo altamente encadeado.

O MariaDB usa o software de benchmark sysbench para medir o desempenho. Neste blog, examinaremos os 2 benchmarks a seguir usando o sysbench 1.0:
  • Oltp_update_index :simula a atualização de um único valor de linha por índice de chave primária em que um índice secundário deve ser atualizado como resultado da atualização.
  • Oltp_update_nonindex:simula a atualização de um único valor de linha por índice de chave primária onde não há índice secundário. Isso obviamente requer menos trabalho do que oltp_update_index.

O que vemos é que, à medida que o número de threads simultâneos aumenta, o desempenho é até 48% mais rápido no 10.3 do que no 10.2 no Centriq™ 2400:







As melhorias feitas removem pontos de contenção e otimizam para o chipset ARM64, especificamente:


  • MDEV-15090:Reduza a sobrecarga de gravar registros de log de desfazer
  • MDEV-15132:Evite acessar a página TRX_SYS
  • MDEV-15019:InnoDB:armazena ReadView em trx
  • MDEV-14756:Remover trx_sys_t::rw_trx_list
  • MDEV-14482:Contenção de linha de cache em ut_rnd_ulint_counter()
  • MDEV-15158:Ao confirmar, não grave na página TRX_SYS
  • MDEV-15104:Remover trx_sys_t::rw_trx_ids e trx_sys_t::serialisation_list
  • MDEV-14638:Substitua trx_sys_t::rw_trx_set por LF_HASH
  • MDEV-14529:InnoDB rw-locks:otimiza as barreiras de memória
  • MDEV-14374:código UT_DELAY:removendo barreira de hardware para plataforma arm64 bit
  • MDEV-14505:Threads_running se torna um gargalo de escalabilidade

Em resumo, o que isso significa é que o MariaDB terá um desempenho significativamente melhor sob altos níveis de atualizações simultâneas, melhorando os tempos de resposta em seus aplicativos no pico de carga.

As melhorias também fornecerão benefícios para outras arquiteturas de chip, mas um ganho muito maior é visto no Centriq™ 2400 devido ao seu design capaz de suportar uma contagem de threads muito alta. Ao utilizar núcleos físicos versus hyper-threading um número menor de núcleos, o  Centriq™ 2400 demonstra um ganho adicional de 13% em relação a uma plataforma Broadwell de referência comparável.

À medida que os sistemas Centriq™ 2400 chegam ao mercado este ano, estamos entusiasmados em ver as cargas de trabalho dos clientes aproveitando a escalabilidade combinada com o menor consumo de energia para executar cargas de trabalho de banco de dados de alta escala.