MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Schreiboptimierungen für Qualcomm Centriq 2400 in MariaDB 10.3.5 Release Candidate

MariaDB hat mit Qualcomm Datacenter Technologies zusammengearbeitet, um die Leistungsgrenze durch die Nutzung innovativer ARM-basierter Hardwarearchitektur mit der einzigartigen Datenbankarchitektur von MariaDB zu erweitern. Im Rahmen der Produkteinführung von Qualcomm Centriq™ 2400 im November 2017 haben wir die starke Leseskalierbarkeit von MariaDB auf diesem Chip demonstriert. Seitdem arbeiten MariaDB und Qualcomm Engineering daran, die Skalierbarkeit von Schreibvorgängen zu verbessern, die wir heute mit der Entwickler-Community teilen möchten.

Wir freuen uns, eine Reihe von Leistungsverbesserungen ankündigen zu können, die im kürzlich ausgelieferten 10.3 Release Candidate 10.3.4 zur Verfügung gestellt werden. Durch die Nutzung des hochparallelisierten Qualcomm Centriq 2400-Prozessors mit 48 Kernen, der bei 2,6 GHz mit 6 Speicherkanälen in einer vollständig kohärenten Ringarchitektur läuft, besteht unser Interesse darin, die Schreibleistungsoptimierung in einem Anwendungsfall für ein einzeiliges Schreiben für eine Anwendung mit hohem Thread zu extrahieren. P>

MariaDB verwendet die sysbench-Benchmark-Software, um die Leistung zu messen. In diesem Blog untersuchen wir die folgenden 2 Benchmarks mit Sysbench 1.0:

  • Oltp_update_index :Dies simuliert die Aktualisierung eines einzelnen Zeilenwerts durch den Primärschlüsselindex, wobei ein Sekundärindex als Ergebnis der Aktualisierung aktualisiert werden muss.
  • Oltp_update_nonindex:Dies simuliert die Aktualisierung eines einzelnen Zeilenwerts durch den Primärschlüsselindex, wenn kein Sekundärindex vorhanden ist. Dies erfordert offensichtlich weniger Arbeit als oltp_update_index.

Was wir sehen, ist, dass mit zunehmender Anzahl gleichzeitiger Threads die Leistung in 10.3 bis zu 48 % schneller ist als in 10.2 auf dem Centriq™ 2400:

Die vorgenommenen Verbesserungen beseitigen Streitpunkte und optimieren für den ARM64-Chipsatz, insbesondere:

  • MDEV-15090 :Reduzieren Sie den Overhead beim Schreiben von Undo-Log-Einträgen
  • MDEV-15132 :Vermeiden Sie den Zugriff auf die TRX_SYS-Seite
  • MDEV-15019 :InnoDB:ReadView auf trx speichern
  • MDEV-14756 :trx_sys_t::rw_trx_list entfernen
  • MDEV-14482 :Cache-Zeilenkonflikt bei ut_rnd_ulint_counter()
  • MDEV-15158 :Beim Commit nicht auf die TRX_SYS-Seite schreiben
  • MDEV-15104 :Entfernen Sie trx_sys_t::rw_trx_ids und trx_sys_t::serialisation_list
  • MDEV-14638 :trx_sys_t::rw_trx_set durch LF_HASH ersetzen
  • MDEV-14529 :InnoDB rw-locks:Speicherbarrieren optimieren
  • MDEV-14374 :UT_DELAY-Code :Entfernen der Hardwarebarriere für die arm64-Bit-Plattform
  • MDEV-14505 :Threads_running wird zu einem Skalierbarkeitsengpass

Zusammenfassend bedeutet dies, dass MariaDB bei vielen gleichzeitigen Updates eine deutlich bessere Leistung erbringt und die Antwortzeiten in Ihren Anwendungen bei Spitzenlast verbessert.

Die Verbesserungen werden auch anderen Chiparchitekturen Vorteile bringen, aber ein viel größerer Gewinn ist beim Centriq™ 2400 zu sehen, da sein Design eine sehr hohe Thread-Anzahl unterstützen kann. Durch die Verwendung physischer Kerne gegenüber Hyper-Threading mit einer geringeren Anzahl von Kernen weist der  Centriq™ 2400 einen zusätzlichen Gewinn von 13 % gegenüber einer vergleichbaren Broadwell-Referenzplattform auf.

Da Centriq™ 2400-Systeme in diesem Jahr auf den Markt kommen, freuen wir uns, dass Kunden-Workloads die Vorteile der Skalierbarkeit in Kombination mit geringerem Stromverbrauch nutzen, um umfangreiche Datenbank-Workloads auszuführen.