Der Wechsel zu disaggregierten Datenbanksystemen
Disaggregierte Systeme verbessern die Datenbankleistung und Effizienz, indem sie Ressourcen voneinander trennen.
Shahram Ghandeharizadeh, Philip A. Bernstein, Dhruba Borthakur, Haoyu Huang, Jai Menon, Sumit Puri
― 6 min Lesedauer
Inhaltsverzeichnis
- Der Bedarf an Veränderung
- Hardware-Disaggregation
- Welche Ressourcen werden getrennt?
- Wie verbinden wir die Ressourcen?
- Leistungsimpakte
- Ein Märchen von zwei Systemen
- Fungible's DPU-Ansatz
- Liqid's Composable Disaggregated Infrastructure
- Arbeitsspeicher-Disaggregation
- Disaggregierte Datenbankmanagementsysteme
- Echtzeitdatenbanken
- Die Vorteile der Disaggregation
- Zukunftsperspektiven
- Fazit
- Originalquelle
- Referenz Links
Heutzutage brauchen Anwendungen Datenbanken, die schnell sind und nicht zu teuer in der Nutzung. Von Online-Shopping bis zur Datenanalyse, die Aufgaben sind ganz unterschiedlich. Dank Cloud-Technologie können wir grosse, sperrige Datenbanken in kleinere, handhabbare Teile zerlegen. Diese Trennung hilft, Software und Hardware besser zu kombinieren.
Indem wir verschiedene Hardwaretypen wie Prozessoren, Arbeitsspeicher und Speicher verwenden, die durch schnelle Netzwerke verbunden sind, erreichen wir diese Trennung. Viele Cloud-Datenbanken fangen an, diese Methode zu nutzen, weil sie schnelle Anpassungen an den Hardware-Ressourcen ermöglichen. Wenn wir das Rechnen vom Speichern trennen, kann jeder Teil unabhängig wachsen oder schrumpfen, was es Unternehmen erleichtert, Schritt zu halten.
Der Bedarf an Veränderung
Traditionelle Datenbanksysteme verlangen oft von den Nutzern, im Voraus zu schätzen, wie viel Hardware sie brauchen. Anstatt eine bestimmte Servergrösse anzufordern, stell dir vor, du könntest einfach dein Budget und deine Leistungsziele angeben. Ein intelligentes System könnte dann die beste Technikkombination zusammenstellen, um deine Bedürfnisse zu erfüllen. Wenn die Nachfrage steigt oder fällt, kann das System seine Ressourcen entsprechend anpassen und verschiedene Speicheroptionen nutzen, um Kosten und Leistung auszubalancieren.
Hardware-Disaggregation
Traditionell leben alle Hardware-Ressourcen - Speicher, Arbeitsspeicher und Prozessoren - in einer einzigen Box, dem Server. Das Problem mit diesem Setup? Es ist, als würdest du deinen ganzen Kleiderschrank in einen kleinen Koffer quetschen. Wenn der Platz knapp wird, musst du entweder einen grösseren Koffer kaufen oder deinen aktuellen ganz ersetzen.
Durch die Trennung dieser Ressourcen können Unternehmen sie effektiver nutzen. Wenn wir über Hardware-Trennung nachdenken, sollten wir drei Hauptfragen betrachten:
- Welche Ressourcen trennen wir?
- Welches Verbindungsverfahren nutzen wir für diese Ressourcen?
- Wie beeinflusst diese Trennung die Leistung?
Welche Ressourcen werden getrennt?
Speicher ist schon seit langem getrennt mit Optionen wie Network Attached Storage (NAS) und Storage Area Networks (SAN). Die Trennung von CPUs und Arbeitsspeicher ist jedoch ein neuer Trend. Frische Methoden zur Trennung von GPUs (Grafikprozessoren, die für intensive Aufgaben verwendet werden) tauchen auf, und die Trennung von Arbeitsspeicher nimmt zu.
Wie verbinden wir die Ressourcen?
Wir können getrennten Speicher durch verschiedene Mittel verbinden, wie Fiber Channel, Ethernet oder InfiniBand. Neue Technologien wie NVMe über Fabrics helfen auch, diese Art von Verbindung zu erreichen. Der Einsatz dieser Methoden kann beeinflussen, wie effizient das System arbeitet.
Leistungsimpakte
Obwohl die Trennung von Hardware-Ressourcen normalerweise zu mehr Effizienz führt, kann sie auch die Geschwindigkeit ein wenig drosseln. Der Schlüssel ist, ein Gleichgewicht zu finden. Mit Kurzstreckenverbindungen kann man bessere Leistung erzielen, aber viele bevorzugen die Flexibilität von weitreichenden Verbindungen, auch wenn diese ein wenig langsamer sind.
Ein Märchen von zwei Systemen
Stell dir ein traditionelles, monolithisches Datenbanksystem gegen unser schickes, disaggregiertes vor. In unserem monolithischen System, wenn du mehr Speicher oder Rechenleistung brauchst, ist es wie zum Buffet zu gehen und den ganzen Tisch zu brauchen, auch wenn du nur einen Salat willst. Mit einem disaggregierten System kannst du genau das auswählen, was du brauchst, wie an einem Salatbar, wo du nur die Toppings nehmen kannst, die du willst.
Fungible's DPU-Ansatz
Hier kommt Fungible - ein Unternehmen, das Data Processing Units (DPUS) verwendet. Denk an DPUs wie die Starspieler in einem Teamsport, wo jeder eine Rolle hat. DPUs übernehmen komplexe Aufgaben, mit denen gewöhnliche CPUs und GPUs Probleme haben könnten. Fungible hat zwei Arten von DPUs entwickelt: eine kleine und eine, die ein Kraftpaket für die Schaffung eines disaggregierten Speichersystems ist.
Sie haben ein disaggregiertes Speichersystem entwickelt, das genau wie ein traditionelles funktioniert, aber ohne das Durcheinander. Sie haben auch ein GPU-System entwickelt, das es Nutzern ermöglicht, wie sie Rechenkapazität für verschiedene Aufgaben verwenden, ohne dass jede Server eine dedizierte GPU benötigt.
Liqid's Composable Disaggregated Infrastructure
Liqid geht noch einen Schritt weiter, indem sie Software hinzufügen. Sie haben etwas namens Composable Disaggregated Infrastructure (CDI), das es Nutzern ermöglicht, ihre Hardware dynamisch zu konfigurieren, wie bei einem Lego-Set, wo du bauen und umgestalten kannst, wie du es brauchst. Diese Flexibilität ist besonders hilfreich für Organisationen, die schnell massgeschneiderte Setups benötigen.
Arbeitsspeicher-Disaggregation
Einige Anwendungen, wie Online-Spiele oder Betrugserkennungssysteme, brauchen viel Arbeitsspeicher, um Daten zwischenzuspeichern. Aber Arbeitsspeicher ist nicht unendlich. Tatsächlich haben viele Server eine Menge ungenutzten Arbeitsspeicher rumliegen! Indem wir ein System schaffen, das den Arbeitsspeicher flexibler verwalten kann, können wir die Leistung für alle möglichen Anwendungen verbessern.
Stell dir eine Welt vor, in der du ungenutzten Arbeitsspeicher von nahegelegenen Servern holen kannst, wie wenn du dir eine Tasse Zucker von deinem Nachbarn leihst. Es gibt ein Projekt namens Redy, das hilft, diesen entfernten Arbeitsspeicher zu verwalten, damit alles reibungslos läuft.
Disaggregierte Datenbankmanagementsysteme
AlloyDB ist ein hervorragendes Beispiel für ein System, das mit diesen Prinzipien entworfen wurde. Es nutzt PostgreSQL, eine bekannte Datenbank, und fügt Funktionen hinzu, die es ihm ermöglichen, unabhängig zu skalieren. Stell dir AlloyDB wie ein intelligentes, schickes Outfit vor, das sich an Wetteränderungen anpassen kann.
In AlloyDB hast du eine Hauptdatenbank, die mit mehreren Lese-Pools arbeitet. Diese Lese-Pools wirken wie separate Bereiche in einer Bibliothek - sie helfen, die Dinge organisiert zu halten, sodass Leute, die Bücher (Daten) abholen, das tun können, ohne sich gegenseitig in die Quere zu kommen.
Echtzeitdatenbanken
Echtzeitdatenbanken verfolgen Informationen sofort, was sie ideal für Anwendungen macht, bei denen es wichtig ist zu wissen, was gerade passiert, wie Lebensmittelverfolgung und Social-Media-Feeds. Diese Systeme müssen jedoch eine Menge Daten verarbeiten, ohne langsamer zu werden - im Grunde jonglieren, während sie einen Marathon laufen.
Die Aggregator Leaf Tailer (ALT) Architektur ist dafür entworfen, mit diesen Herausforderungen umzugehen. Sie teilt Aufgaben zwischen dem Umgang mit eingehenden Daten, deren Indizierung und der Durchführung komplexer Abfragen auf. Denk daran wie ein gut besetztes Restaurant, in dem jeder Bereich sich auf verschiedene Aufgaben konzentriert, damit jeder seine Bestellung ohne Verzögerung bekommt.
Die Vorteile der Disaggregation
Disaggregierte Systeme bieten eine Menge Vorteile:
- Sie ermöglichen eine bessere Ressourcenzuteilung, sodass du nichts verschwendest, was du nicht brauchst.
- Sie können je nach Bedarf hoch- oder runterfahren, was dir hilft, Geld zu sparen.
- Sie verbessern die Leistung, indem sie Aufgaben trennen, die ein System blockieren können.
Zukunftsperspektiven
Wenn wir nach vorne schauen, ist die Welt des Datenbankmanagements reif für neue Ideen. Fragen tauchen auf, wie man ein System erstellt, das sich basierend auf der Arbeitslast selbst aufbaut, oder wie man verifiziert, dass diese Systeme korrekt funktionieren. Die Landschaft verändert sich, und neue Bedürfnisse werden das beeinflussen, was wir als Nächstes bauen.
Fazit
Kurz gesagt, disaggregierte Datenbankmanagementsysteme verändern die Art und Weise, wie wir über Daten nachdenken. Indem wir Dinge in kleinere, handhabbare Teile zerlegen, können wir die Leistung optimieren und sind bereit für die Zukunft. Also denk das nächste Mal an deine Datenbank: Sie muss kein Monolith sein. Sie kann so flexibel sein wie eine gute, dehnbare Hose!
Titel: Disaggregated Database Management Systems
Zusammenfassung: Modern applications demand high performance and cost efficient database management systems (DBMSs). Their workloads may be diverse, ranging from online transaction processing to analytics and decision support. The cloud infrastructure enables disaggregation of monolithic DBMSs into components that facilitate software-hardware co-design. This is realized using pools of hardware resources, i.e., CPUs, GPUs, memory, FPGA, NVM, etc., connected using high-speed networks. This disaggregation trend is being adopted by cloud DBMSs because hardware re-provisioning can be achieved by simply invoking software APIs. Disaggregated DBMSs separate processing from storage, enabling each to scale elastically and independently. They may disaggregate compute usage based on functionality, e.g., compute needed for writes from compute needed for queries and compute needed for compaction. They may also use disaggregated memory, e.g., for intermediate results in a shuffle or for remote caching. The DBMS monitors the characteristics of a workload and dynamically assembles its components that are most efficient and cost effective for the workload. This paper is a summary of a panel session that discussed the capability, challenges, and opportunities of these emerging DBMSs and disaggregated hardware systems.
Autoren: Shahram Ghandeharizadeh, Philip A. Bernstein, Dhruba Borthakur, Haoyu Huang, Jai Menon, Sumit Puri
Letzte Aktualisierung: 2024-11-02 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2411.01269
Quell-PDF: https://arxiv.org/pdf/2411.01269
Lizenz: https://creativecommons.org/licenses/by/4.0/
Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.
Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.
Referenz Links
- https://www.springer.com/gp/computer-science/lncs
- https://www.springer.com/lncs
- https://nvmexpress.org/wp-content/uploads/NVMe_Over_Fabrics.pdf
- https://www.computeexpresslink.org/
- https://www.liqid.com/resources/all
- https://rockset.com
- https://rockset.com/blog/how-rocksets-converged-index-powers-real-time-analytics/
- https://rockset.com/blog/aggregator-leaf-tailer-an-architecture-for-live-analytics-on-event-streams/
- https://engineering.fb.com/2015/03/10/production-engineering/serving-facebook-multifeed-efficiency-performance-gains-through-redesign/
- https://rocksdb.org
- https://engineering.linkedin.com/blog/2016/03/followfeed--linkedin-s-feed-made-faster-and-smarter
- https://lp.fungible.com/hubfs/Assets/Whitepapers/The-Fungible-DPU-A-New-Category-of-Microprocessor.pdf