Schnellere Go-Interpreter: Aufholen zu C++

2025-04-05
Schnellere Go-Interpreter: Aufholen zu C++

Die SQL-Evaluierungs-Engine, die mit Vitess ausgeliefert wird, der Open-Source-Datenbank, die PlanetScale antreibt, wurde ursprünglich als ein AST-Evaluator implementiert, der direkt auf der von unserem Parser generierten SQL-AST arbeitete. Im letzten Jahr haben wir sie schrittweise durch eine virtuelle Maschine ersetzt, die, obwohl nativ in Go geschrieben, ähnliche Leistungen wie der ursprüngliche C++-Evaluierungscode in MySQL erbringt. Besonders bemerkenswert ist, dass sich die neue virtuelle Maschine immer wieder als einfacher zu warten erwiesen hat als der ursprüngliche Go-Interpreter, obwohl sie um Größenordnungen schneller ist. Lassen Sie uns die Implementierungsentscheidungen überprüfen, die wir getroffen haben, um diese überraschenden Ergebnisse zu erzielen.

Mehr lesen
Entwicklung

PlanetScale deckt die wahre Ausfallrate von EBS auf: Kein binäres Ereignis, sondern kontinuierliche Degradation

2025-03-18
PlanetScale deckt die wahre Ausfallrate von EBS auf: Kein binäres Ereignis, sondern kontinuierliche Degradation

Basierend auf seiner massiven Nutzung von Amazon EBS enthüllt PlanetScale, dass die tatsächliche Ausfallrate weit höher ist als in der AWS-Dokumentation angegeben. Der Artikel hebt hervor, dass die „Langsamkeit“ von EBS weitaus häufiger vorkommt als vollständige Ausfälle, mit häufigen Leistungsschwankungen, selbst wenn die AWS-Leistungsgarantien erfüllt werden, was zu Anwendungsausfällen führt. Diese Degradation ist nicht zufällig, sondern liegt in der Komplexität des Systems begründet. PlanetScale mindert die Probleme durch Überwachung und automatisierten Austausch von EBS-Volumes, was letztendlich zu PlanetScale Metal führte, um Probleme mit der Netzwerk-Speicherleistung zu vermeiden.

Mehr lesen

PlanetScale Metal: Den E/A-Engpass von Cloud-Datenbanken beseitigen

2025-03-13
PlanetScale Metal: Den E/A-Engpass von Cloud-Datenbanken beseitigen

Dieser Artikel untersucht die Geschichte der Entwicklung von Computerspeichertechnologien, von Magnetbändern über Festplatten bis hin zu Solid-State-Drives (SSDs), und die Herausforderungen bei der E/A-Leistung, die durch Cloud-Computing entstehen. Traditionelle Cloud-Datenbankservices verwenden in der Regel netzwerkbasierten Speicher (NAS), was zu hoher Latenz und IOPS-Beschränkungen führt. Das Metal-Produkt von PlanetScale verwendet lokale NVMe-Laufwerke, die Computing und Storage direkt verbinden, um extrem niedrige Latenz, unbegrenzte IOPS und hohe Datendauerhaftigkeit zu erreichen und so das E/A-Engpassproblem von Cloud-Datenbanken vollständig zu lösen.

Mehr lesen
Technologie

Datenbank-Zähler-Sperrkonflikt bewältigen: Das Slotted-Counter-Muster

2025-02-04
Datenbank-Zähler-Sperrkonflikt bewältigen: Das Slotted-Counter-Muster

Die Aktualisierung von Datenbankzählern in Szenarien mit hoher Gleichzeitigkeit führt häufig zu Sperrkonflikten, was zu Leistungseinbußen und sogar Deadlocks führt. Dieser Artikel stellt ein Muster namens "Slotted Counter" vor, das Sperrkonflikte effektiv mindert, indem Zähler auf mehrere Slots verteilt werden. Dieses Muster verteilt Update-Operationen auf mehrere Zeilen und beseitigt so den Engpass von Einzelzeilen-Updates und verbessert die gleichzeitige Leistung. GitHub verwendete eine ähnliche Lösung, um Zählprobleme zu lösen; die Kernidee besteht darin, Update-Operationen auf mehrere Zeilen zu verteilen und sie dann zusammenzufassen, um die endgültige Zählung zu erhalten.

Mehr lesen
Entwicklung