Ich habe heute nur von Robert Martin gehört, und es scheint, dass er eine bemerkenswerte Figur in der Software-Welt ist. Ich meine also nicht, dass mein Titel so aussieht, als wäre es ein Klick-Köder oder ich stecke ihm Worte in den Mund, aber das ist einfach wie ich das, was ich von ihm hörte, mit meiner begrenzten Erfahrung und meinem begrenzten Verständnis interpretierte.
Ich habe mir heute ein Video (zur Softwarearchitektur) mit einem Vortrag von Robert C. Martin angesehen, und in der zweiten Hälfte des Videos stand das Thema Datenbanken im Mittelpunkt.
Nach meinem Verständnis der Äußerungen schien es, als würde er sagen, dass SSDs den Nutzen von Datenbanken ( erheblich ) verringern .
Um zu erklären, wie ich zu dieser Interpretation gekommen bin:
Er diskutierte, wie das Abrufen von Daten mit Festplatten / rotierenden Festplatten langsam ist. In diesen Tagen verwenden wir jedoch SSDs, bemerkte er. Er beginnt mit "RAM kommt" und erwähnt dann RAM-Datenträger, sagt dann aber, dass er ihn nicht RAM-Datenträger nennen kann, und greift daher einfach auf RAM zurück. Bei RAM brauchen wir die Indizes nicht, da jedes Byte die gleiche Zeit benötigt, um abgerufen zu werden. ( Dieser Absatz wird von mir umschrieben )
Daher macht es keinen Sinn, RAM (wie im Computerspeicher) als Ersatz für DBs (wie ich seine Aussage interpretiert habe) vorzuschlagen, weil das heißt, alle Datensätze werden im Arbeitsspeicher während der Lebensdauer einer Anwendung verarbeitet ( es sei denn, Sie ziehen bei Bedarf von einer Datenträgerdatei)
Also habe ich mich mit RAM beschäftigt, er meint SSD. In diesem Fall, so sagt er, verringern SSDs den Nutzen von Datenbanken. Er sagt sogar: "Wenn ich Oracle wäre, hätte ich Angst. Das Fundament, warum ich existiere, verdunstet."
Nach meinem kleinen Verständnis von SSDs sind SSDs im Gegensatz zu HDDs, bei denen es sich O(n)
um Suchzeiten handelt (glaube ich), nahe O(1)
oder fast zufällig. Also, sein Vorschlag war interessant für mich, weil ich noch nie so darüber nachgedacht habe. Als ich vor einigen Jahren zum ersten Mal in Datenbanken eingeführt wurde, als ein Professor die Vorteile gegenüber dem regulären Dateisystem beschrieb, kam ich zu dem Schluss, dass die Hauptaufgabe einer Datenbank im Wesentlichen darin besteht, ein sehr indiziertes Dateisystem zu sein (sowie Optimierungen, Caching, gleichzeitiger Zugriff, etc). Wenn also keine Indizes in SSD benötigt werden, macht diese Art von Datenbanken weniger nützlich.
Ungeachtet dessen fällt es mir schwer zu glauben, dass sie weniger nützlich sind, da jeder DBs als Hauptanwendungspunkt anstelle des reinen Dateisystems verwendet und das Gefühl hat, er sei zu stark vereinfacht die Rolle von Datenbanken.
Hinweis : Ich habe bis zum Ende zugesehen, um sicherzustellen, dass er nichts anderes gesagt hat.
Als Referenz: 42:22, wenn das gesamte Thema der Datenbank auftaucht, 43:52, wenn er mit "Warum haben wir überhaupt Datenbanken ? " Beginnt.
Diese Antwort besagt, dass SSDs DBs erheblich beschleunigen. In dieser Frage wird gefragt, wie die Optimierung geändert wird.
Für TL; DR ist meine Frage, ob das Aufkommen einer weit verbreiteten SSD-Nutzung auf dem Servermarkt (ob in Kürze oder bereits geschehen) den Nutzen von Datenbanken verringert.
Es schien so, als wollte der Moderator vermitteln, dass man mit SSDs die Daten auf der Festplatte speichern kann und sich keine Gedanken darüber machen muss, wie langsam der Abruf sein würde, da bei älteren HDDs wie bei SSDs die Suchzeiten in der Nähe sind O(1)
(Ich glaube). Wenn dies zutrifft, verliert dies hypothetisch einen der Vorteile: die Indizierung, da der Vorteil, über Indizes für schnellere Suchzeiten zu verfügen, entfällt.
O(1)
keine Rolle spielen. Für die Anwendungsfälle, die eine DB bereitstellt, reicht es nicht aus , sie einfach zu erfassenAuf der Grundlage Ihres Beitrags scheint die eindeutige Meldung zu lauten, dass die RDBMS-Suchzeitoptimierungen durch Hardware ersetzt werden, wodurch die E / A-Zeit vernachlässigbar wird.
Das ist absolut richtig. SSD auf Datenbankservern in Kombination mit hohem (tatsächlichem) RAM verkürzt das Warten auf E / A erheblich. Die Indizierung und Zwischenspeicherung von RDBMS ist jedoch nach wie vor von Nutzen, da selbst Systeme mit diesem riesigen E / A-Segen E / A-Engpässe aufgrund von Abfragen mit schlechter Leistung aufweisen können und werden, die durch eine schlechte Indizierung verursacht werden. Dies ist normalerweise nur bei Anwendungen mit hoher Auslastung oder schlecht geschriebenen Anwendungen der Fall.
Der Schlüsselwert für RDBMS-Systeme im Allgemeinen ist Datenkonsistenz, Datenverfügbarkeit und Datenaggregation. Die Verwendung einer Excel-Tabelle, einer CSV-Datei oder einer anderen Methode zum Speichern einer "Datenbank" bietet keine Garantie.
SSD schützt Sie nicht vor dem Ausfall Ihres Primärservers (Netzwerk, Betriebssystembeschädigung, Stromausfall). SSD schützt Sie nicht vor einer schlechten Datenänderung. SSD macht es nicht schneller, Analysen auszuführen, als sie nur zu haben.
quelle
Onkel Bob sprach wahrscheinlich von In-Memory-Datenbanken wie Redis oder Gemfire . In diesen Datenbanken ist wirklich alles in der Datenbank im RAM enthalten. Die Datenbank kann zunächst leer und mit kurzlebigen Daten (die als Cache verwendet werden) abgelegt werden.
Dies wird immer beliebter, da der Arbeitsspeicher immer billiger wird und es möglich ist, ein Terabyte an Daten in einer speicherinternen Cluster-Datenbank zu speichern. Es gibt viele Anwendungsfälle, in denen es aufgrund der Geschwindigkeit, mit der ein sofortiger Zugriff auf Dinge möglich ist, wertvoll ist, RAM zu verwenden, anstatt sogar eine schnelle Festplatte wie SSD. Sie können für einige davon sogar weiterhin SQL verwenden, wenn dies sinnvoll ist.
Warum sollte dies Oracle Sorgen machen? Daten wachsen und es ist unwahrscheinlich, dass RDBMSes verschwinden. Im Laufe der Jahre hat Oracle jedoch viel Entwicklungszeit aufgewendet, um das Abrufen von Daten auf sich drehenden Datenträgern wirklich schnell zu machen. Oracle muss sich auf eine völlig andere Speicherebene einstellen. Sie sind mit Oracle Database In Memory einer anderen Konkurrenz ausgesetzt als in der Vergangenheit. Überlegen Sie, wie viel Zeit Sie aufgewendet haben, um sicherzustellen, dass das Abfrageoptimierungsprogramm die richtigen Strategien basierend auf dem Layout der Elemente auf der Festplatte auswählt.
quelle
Community Wiki-Beitrag, der Antworten sammelt, die ursprünglich als Fragenkommentare hinterlassen wurden
Ich würde genau das Gegenteil sagen. Da die Lese- / Schreibgeschwindigkeit so hoch ist, können Sie jetzt mit einer GPU-beschleunigten Datenbank (z. B. BlazingDB oder Alenka ) Zahlen noch schneller verarbeiten. Jetzt können Sie noch komplexere Abfragen schneller ausführen. Jetzt können Abfragen, die nicht einmal ausgeführt werden sollten, mit einer angemessenen Geschwindigkeit ausgeführt werden. Je komplexer und je mehr Daten, desto besser geht es Ihnen - Cybernard
Während Bob Martin schon lange dabei ist und seine Meinungen im Allgemeinen zu hören sind (wenn nicht sogar zuzustimmen mit :-), denke ich, dass er in diesem Fall in die Menge "Der Tod relationaler Datenbanken liegt vor uns" eintaucht (von denen Ich bin assoziiertes Mitglied :-). Für einige Dinge unter bestimmten Umständen kann ein wenig überzeugendes Argument sein, dass nicht-relationale Datenbank - Technologien einen Vorteil bieten. Allerdings bietet IMO, das relationale Modell, das in vielerlei Hinsicht fehlerhaft ist, immer noch das derzeit beste Allzweck-Datenbankmodell. YMMV. - Bob Jarvis
Der Hauptgrund für die Verwendung von Datenbanken liegt nicht darin, dass Festplatten langsam sind (ursprünglich wurde dies als Grund dafür angeführt, keine Datenbanken zu verwenden), sondern darin, dass Daten kompliziert sind . Der Hauptzweck einer Datenbank besteht darin, dass mehrere Apps / Benutzer in der Lage sind , die richtigen Daten zu finden und sie sogar kontrolliert gleichzeitig zu ändern. Das schnell zu tun, ist nur ein sekundäres Ziel von Datenbanken. - RBarryYoung
RDBMS wird nicht so schnell verschwinden. Sie sind die beste Wahl für einige Arten von Anwendungen, und NoSQL (Mongo usw.) ist die beste Wahl für andere. Pferde für Kurse. - sh1rts
Die Datenbank hilft beim Organisieren von Daten. Es war ohnehin nicht wirklich für den schnellen Zugriff auf Daten ausgelegt. - JI Xiang
quelle