Datenbank: Github partitioniert zentralen MySQL-Cluster für halbe Last

Die technische Grundlage von Github war lange eine einfache Webanwendung. Vor allem für die zentrale MySQL-Datenbank brachte das viele Probleme.

Artikel veröffentlicht am ,
Github muss seine Technik im laufenden Betrieb verbessern.
Github muss seine Technik im laufenden Betrieb verbessern. (Bild: Github)

"Vor mehr als 10 Jahren begann Github.com wie viele andere Webanwendungen dieser Zeit - basierend auf Ruby on Rails - mit einer einzigen MySQL-Datenbank zum Speichern der meisten Daten", heißt es in einem aktuellen Blogbeitrag des Engineering-Teams von Github. Die zentrale MySQL-Datenbank sorgte dabei mit dem folgenden Wachstum des Code-Hosting-Dienstes jedoch für immer mehr Probleme, so dass sich das Team dazu entschied, den Aufbau grundsätzlich zu ändern.

Stellenmarkt
  1. IT-Inhouse Consultant (m/w/d)
    Elkamet Kunststofftechnik GmbH, Biedenkopf
  2. Fachinformatiker (m/w/d)
    Textil-Service Mecklenburg GmbH, Parchim
Detailsuche

"So haben wir beispielsweise damit begonnen, Daten für einige Funktionen (wie den Status) in separaten MySQL-Datenbanken zu speichern, wir haben Read-Replicas hinzugefügt, um die Last auf mehrere Rechner zu verteilen, und wir haben begonnen, ProxySQL zu verwenden, um die Anzahl der Verbindungen zu unseren primären MySQL-Instanzen zu reduzieren".

Der zentrale MySQL-Cluster blieb dabei aber zunächst weiter bestehen. Darin gespeichert wurden etwa die Profile der Nutzer, Repositories, Github-Issues oder auch Pull Requests. Dazu heißt es jedoch: "Wir hatten Mühe, die Größe unserer Datenbanksysteme angemessen zu halten und mussten immer wieder auf neuere und größere Maschinen umsteigen, um sie zu vergrößern."

Die Lösung für Github war hier die Partitionierung der Datenbank. Doch "bevor Datenbanktabellen physisch verschoben werden können, müssen wir sicherstellen, dass sie virtuell im Anwendungslayout getrennt sind", heißt es in dem Blog. Dazu haben die Beteiligten die Tabelle zunächst gruppiert und die Grenzen mit Hilfe von Lintern durchgesetzt. Die Linter erkennen dabei SQL-Abfragen und auch Transaktionen, die über die Gruppengrenzen hinweggehen und verhindern diese. Durch eine intelligente Wiederverwendung der MySQL-Replikation konnten die Daten letztlich auch physisch getrennt werden.

Versionsverwaltung mit Git: Praxiseinstieg (mitp Professional)
Golem Akademie
  1. Python kompakt - Einführung für Softwareentwickler
    28.-29. Oktober 2021, online
  2. Linux-Systeme absichern und härten
    8.-10. November 2021, online
  3. PostgreSQL Fundamentals
    6.-9. Dezember 2021, online
Weitere IT-Trainings

Das Ergebnis der Arbeit ist für Github von großem Vorteil. So habe das Team zwar ein weiteres Wachstum der Zugriffe auf die Datenbanktabellen inzwischen auf rund 1,2 Millionen Abfragen pro Sekunde verzeichnet. Doch dank der Arbeit an der Partitionierung konnte die durchschnittliche Last auf jedem der Hosts etwa halbiert werden, wie es in dem Blogpost heißt. Zusätzlich zu der Partitionierung setzt das Entwicklungsteam inzwischen auch auf das sogenannte Sharding. Details dazu sollen folgen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
4700S Desktop Kit im Test
AMDs Playstation-5-Platine ist eine vertane Chance

Mit dem 4700S Desktop Kit bietet AMD höchstselbst die Hardware der Playstation 5 für den PC an. Das Board ist aber eine Sache für sich.
Ein Test von Marc Sauter

4700S Desktop Kit im Test: AMDs Playstation-5-Platine ist eine vertane Chance
Artikel
  1. Vappeby: Ikea plant Lautsprecher-Lampe mit Spotify Tap
    Vappeby
    Ikea plant Lautsprecher-Lampe mit Spotify Tap

    Ein Eintrag bei der FCC zeigt, dass Ikea einen neuen Bluetooth-Lautsprecher mit Spotify Tap plant - der zudem als Lampe verwendet werden kann.

  2. SUV mit Elektroantrieb: Tesla liefert neues Model X mit eckigem Lenkrad aus
    SUV mit Elektroantrieb
    Tesla liefert neues Model X mit eckigem Lenkrad aus

    Tesla hat die ersten Model X mit dem neuen Lenkrad, quer eingebautem Display und Falcon-Wings-Türen ausgeliefert.

  3. Internet im Van: Mein perfekt funktionierendes Wald-Office
    Internet im Van
    Mein perfekt funktionierendes Wald-Office

    In meinem Büro auf Rädern gibt es sechs Internetverbindungen. Sieben, wenn Starlink dazukommt. Habe ich damit das beste Internet Australiens?
    Eine Anleitung von Geoffrey Huntley

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Cyber Week: Bis zu 360€ auf Gaming-Monitore & bis zu 22% auf Be Quiet • LG-TVs & Monitore zu Bestpreisen (u. a. Ultragear 34" Curved FHD 144Hz 359€) • Bosch-Werkzeug günstiger • Dell-Monitore günstiger • Horror-Filme reduziert • MwSt-Aktion bei MM: Rabatte auf viele Produkte [Werbung]
    •  /