MariaDB
 sql >> Database >  >> RDS >> MariaDB

Scrivi ottimizzazioni per Qualcomm Centriq 2400 in MariaDB 10.3.5 Release Candidate

MariaDB ha collaborato con Qualcomm Datacenter Technologies per aumentare l'inviluppo delle prestazioni sfruttando l'innovativa architettura hardware basata su ARM con l'esclusiva architettura del database di MariaDB. Nell'ambito del lancio del prodotto Qualcomm Centriq™ 2400 a novembre 2017, abbiamo dimostrato la forte scalabilità di lettura di MariaDB su questo chip. Da allora, MariaDB e Qualcomm engineering hanno lavorato per migliorare la scalabilità delle operazioni di scrittura che vorremmo condividere oggi con la comunità degli sviluppatori.

Siamo lieti di annunciare una serie di miglioramenti delle prestazioni che sono stati resi disponibili nella release candidate 10.3 10.3.4, rilasciata di recente. Sfruttando il processore Qualcomm Centriq 2400 a 48 core altamente parallelizzato in esecuzione a 2,6 GHz con 6 canali di memoria in un'architettura ad anello completamente coerente, il nostro interesse è estrarre l'ottimizzazione delle prestazioni di scrittura in un caso d'uso di scrittura a riga singola per un'applicazione altamente threaded.

MariaDB utilizza il software di benchmark sysbench per misurare le prestazioni. In questo blog, esamineremo i seguenti 2 benchmark utilizzando sysbench 1.0:

  • Oltp_update_index :simula l'aggiornamento di un valore di riga singola per indice di chiave primaria in cui un indice secondario deve essere aggiornato come risultato dell'aggiornamento.
  • Oltp_update_nonindex:simula l'aggiornamento di un valore di riga singola in base all'indice di chiave primaria in cui non esiste un indice secondario. Questo ovviamente richiede meno lavoro di oltp_update_index.

Quello che vediamo è che con l'aumento del numero di thread simultanei, le prestazioni sono fino al 48% più veloci in 10.3 rispetto a 10.2 su Centriq™ 2400:

I miglioramenti apportati rimuovono i punti di contesa e ottimizzano per il chipset ARM64, in particolare:

  • MDEV-15090 :Riduci il sovraccarico di scrittura dei record di registro annullamenti
  • MDEV-15132 :Evita di accedere alla pagina TRX_SYS
  • MDEV-15019 :InnoDB:archivia ReadView su trx
  • MDEV-14756 :Rimuovi trx_sys_t::rw_trx_list
  • MDEV-14482 :Contesa della riga della cache su ut_rnd_ulint_counter()
  • MDEV-15158 :Al momento del commit, non scrivere nella pagina TRX_SYS
  • MDEV-15104 :Rimuovi trx_sys_t::rw_trx_ids e trx_sys_t::serialisation_list
  • MDEV-14638 :Sostituisci trx_sys_t::rw_trx_set con LF_HASH
  • MDEV-14529 :InnoDB rw-locks:ottimizza le barriere di memoria
  • MDEV-14374 :UT_DELAY code :Rimozione della barriera hardware per la piattaforma arm64 bit
  • MDEV-14505:Threads_running diventa un collo di bottiglia per la scalabilità

In sintesi, ciò significa che MariaDB funzionerà significativamente meglio con livelli elevati di aggiornamenti simultanei, migliorando i tempi di risposta nelle tue applicazioni al carico di picco.

I miglioramenti forniranno vantaggi anche ad altre architetture di chip, ma su Centriq™ 2400 si riscontra un guadagno molto maggiore grazie al suo design in grado di supportare un numero di thread molto elevato. Utilizzando i core fisici rispetto all'hyper-threading di un numero inferiore di core,  Centriq™ 2400 dimostra un ulteriore guadagno del 13% rispetto a una piattaforma Broadwell di riferimento comparabile.

Con l'arrivo sul mercato dei sistemi Centriq™ 2400 quest'anno, siamo entusiasti di vedere i carichi di lavoro dei clienti sfruttare la scalabilità combinata con un minor consumo energetico per eseguire carichi di lavoro di database su larga scala.