Detailseite
Projekt Druckansicht

Verwaltung sehr großer Datenmengen auf direkt angebundenen NVMe Arrays

Fachliche Zuordnung Sicherheit und Verlässlichkeit, Betriebs-, Kommunikations- und verteilte Systeme
Förderung Förderung seit 2020
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 447457559
 
Zwischen 2012 und 2020 haben sich die Kapazitäten von Flash-basierten Solid-State Drives (SSDs) um einen Faktor 10 erhöht, während Hauptspeicherkapazitäten stagnierten. Auch werden moderne SSDs direkt per PCIe/NVMe angebunden, was hohe Bandbreiten ermöglicht. In einem Zusammenschluss von mehreren solcher SSDs lassen sich Bandbreiten erreichen, die in der Vergangenheit nur mit Hauptspeicher möglich waren. Eine solche Konfiguration von 4, 8 oder 16 direkt angebundenen SSDs nennen wir Directly-Attached NVMe Array (DANA).Weder Hauptspeicherdatenbanksysteme, die in den letzten Jahren Gegenstand intensiver Forschung waren, noch traditionelle Festplatten-basierte Datenbanksysteme können DANA voll ausnutzen. Während erstere prinzipiell davon ausgehen, dass die Daten im Hauptspeicher liegen, sind letztere zu ineffizient um die massive I/O Bandbreite von DANA erreichen zu können. Ziel dieses Projekts ist es eine für DANA optimierte Storage-Engine zu entwickeln, welche die Bandbreite von DANA und die speziellen Charakteristika von Flash optimal ausnutzen kann.Um dies zu erreichen, müssen alle für I/O-Operationen relevanten Schichten neu durchdacht werden. Zunächst muss es auf Datenbanksystem-Ebene möglich sein mit Hilfe von Mehrkernprozessoren Millionen von Seitenzugriffen pro Sekunde effizient zu koordinieren und zu verarbeiten. Auf Betriebssystem-Ebene sind herkömmliche I/O Schnittstellen zu ineffizient, so dass moderne Alternativen wie io_uring und SPDK zum Einsatz kommen müssen. Schließlich werden wir auch die Hardware-Ebene betrachten, da Flash-Speicher, der Grundbaustein von SSDs, ganz andere Eigenschaften als Festplatten hat. Zum Beispiel kann Flash nicht direkt überschrieben werden und hat eine begrenzte Lebensdauer. Konventionelle SSDs besitzen deshalb den Flash Translation Layer (FTL), der komplexe Logik implementiert um diese Eigenschaften vor Nutzern zu verstecken. Dies verhindert allerdings viele Optimierungen, weswegen Open Channel SSDs direkten Zugriff auf die darunterliegende Flash-Hardware ermöglichen. Die Flash-Logik wird bei Open Channel SSDs in das Datenbanksystem verschoben, welches somit beispielsweise Kontrolle über die physische Platzierung der Daten bekommt.Um optimale Leistung mit Flash zu erreichen, sollte man die drei erwähnten Schichten jedoch nicht gesondert betrachten, sondern holistisch gemeinsam entwickeln (Co-Design). Dies werden wir anhand der Integration in unsere Storage-Engine LeanStore demonstrieren.
DFG-Verfahren Schwerpunktprogramme
 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung