sql >> Database >  >> RDS >> MariaDB

Schrijfoptimalisaties voor Qualcomm Centriq 2400 in MariaDB 10.3.5 Release Candidate

MariaDB heeft samengewerkt met Qualcomm Datacenter Technologies om de prestaties te verbeteren door gebruik te maken van innovatieve op ARM gebaseerde hardware-architectuur met MariaDB's unieke database-architectuur. Als onderdeel van de productlancering van Qualcomm Centriq™ 2400 in november 2017, hebben we de sterke leesschaalbaarheid van MariaDB op deze chip gedemonstreerd. Sindsdien hebben MariaDB en Qualcomm engineering gewerkt aan het verbeteren van de schaalbaarheid van schrijfbewerkingen die we vandaag willen delen met de ontwikkelaarsgemeenschap.

We zijn verheugd een aantal prestatieverbeteringen aan te kondigen die beschikbaar worden gemaakt in de onlangs verzonden 10.3-releasekandidaat 10.3.4. Door gebruik te maken van de sterk geparalleliseerde 48-core Qualcomm Centriq 2400-processor die draait op 2,6 GHz met 6 geheugenkanalen in een volledig coherente ringarchitectuur, is het onze interesse om schrijfprestatie-optimalisatie te extraheren in een schrijftoepassing met één rij voor een zeer threaded toepassing.

MariaDB gebruikt de sysbench benchmark-software om de prestaties te meten. In deze blog zullen we de volgende 2 benchmarks onderzoeken met sysbench 1.0:

  • Oltp_update_index :dit simuleert het bijwerken van een enkele rijwaarde per primaire sleutelindex, waarbij een secundaire index moet worden bijgewerkt als gevolg van de update.
  • Oltp_update_nonindex:dit simuleert het bijwerken van een enkele rijwaarde door primaire sleutelindex waar er geen secundaire index is. Dit vereist uiteraard minder werk dan oltp_update_index.

Wat we zien is dat naarmate het aantal gelijktijdige threads toeneemt, de prestaties tot 48% sneller zijn in 10.3 dan in 10.2 op de Centriq™ 2400:

De aangebrachte verbeteringen verwijderen twistpunten en optimaliseren voor de ARM64-chipset, met name:

  • MDEV-15090:verminder de overhead van het schrijven van logrecords voor ongedaan maken
  • MDEV-15132:vermijd toegang tot de TRX_SYS-pagina
  • MDEV-15019:InnoDB:bewaar ReadView op trx
  • MDEV-14756:trx_sys_t::rw_trx_list verwijderen
  • MDEV-14482:Cacheregelconflict op ut_rnd_ulint_counter()
  • MDEV-15158:Schrijf bij commit niet naar de TRX_SYS-pagina
  • MDEV-15104:Verwijder trx_sys_t::rw_trx_ids en trx_sys_t::serialisation_list
  • MDEV-14638:Vervang trx_sys_t::rw_trx_set door LF_HASH
  • MDEV-14529:InnoDB rw-locks:geheugenbarrières optimaliseren
  • MDEV-14374:UT_DELAY-code:hardwarebarrière verwijderen voor arm64-bits platform
  • MDEV-14505:Threads_running wordt een knelpunt in de schaalbaarheid

Samengevat betekent dit dat MariaDB aanzienlijk beter zal presteren onder hoge niveaus van gelijktijdige updates, waardoor de responstijden in uw applicaties bij piekbelasting worden verbeterd.

De verbeteringen zullen ook voordelen opleveren voor andere chiparchitecturen, maar de Centriq™ 2400 heeft een veel grotere winst dankzij het ontwerp dat in staat is om veel threads te ondersteunen. Door gebruik te maken van fysieke kernen versus hyperthreading van een lager aantal kernen, toont de Centriq™ 2400 een extra winst van 13% ten opzichte van een vergelijkbaar referentie Broadwell-platform.

Nu Centriq™ 2400-systemen dit jaar op de markt komen, zijn we verheugd te zien dat de werkbelastingen van klanten profiteren van de schaalbaarheid in combinatie met een lager stroomverbruik om grootschalige databasewerkbelastingen uit te voeren.


  1. Zoek uit of een object een externe sleutel is met OBJECTPROPERTY() in SQL Server

  2. SWITCHOFFSET() Voorbeelden in SQL Server

  3. Een variabele declareren en weergeven in Oracle

  4. WHERE Clausule vs ON bij gebruik van JOIN