220184

Plätze 6 und 5: Solid State Drives und NoSQL-Datenbanken

29.01.2010 | 09:11 Uhr |

Platz 6: Solid State Drives

SSDs (Solid-State-Laufwerke) kennt man schon seit dem letzten Jahrhundert, aber vor Kurzem haben wir eine Explosion von neuen Produkten und einem dramatischen Rückgang der SSD-Preise erleben dürfen. In der Vergangenheit wurden die SSDs vor allem für Anwendungen verwendet, die die höchstmögliche Leistung zu verlangen. Heute werden Sie immer vielseitiger eingesetzt, etwa als externer Zwischenspeicher, um die Leistung von Anwendungen zu verbessern. Betrachtet man jedes einzelne Gigabyte, sind SSDs noch viel teurer als die klassische Festplatte - aber sie sind billiger als der interne Server-Speicher.

Im Vergleich zu Festplatten sind SSDs nicht nur schneller (beim Schreiben und Lesen), sie unterstützen auch höhere Übertragungsraten und verbrauchen weniger Strom. Auf der anderen Seite haben SSDs eine begrenzte Lebensdauer, da jede Zelle in einer SSD nur eine begrenzte Anzahl von Schreibvorgängen erlaubt.

Es gibt zwei Arten von SSDs: Single-Level (SLC) und Multilevel (MLC). SLCs sind schneller als MLCs und halten zehnmal länger (und, wie Sie sich vorstellen können, kostet sie viel mehr). Die Ausdauer bei dauerndem Schreibzugriff war bisher eine große Bremse für den Durchbruch des SSDs. Aber die Verbesserung dieser Werte und die Ausnutzung von eingebautem DRAM-Cache machen diese Laufwerke immer attraktiver. Einige Hersteller erhöhen die Lebensdauer der Laufwerke, indem Sie mehr als die angegebene Kapazität einbauen und mit bestimmten Algorithmen die Daten auf die zusätzlichen Zellen verteilen.

Die Preisentwicklung hat aber die größte Schubkraft auf diesem Markt. Ein 32-GB-SSD hat vor fünf Jahren ungefähr 1000 Euro gekostet, heute sind es unter 100 Euro. Obwohl dies immer noch etwa 46 mal so teuer ist wie ein SATA-Laufwerk (in Euro pro Gigabyte), ist der Preisverfall immens. SSDs werden gerade bei den zukünftigen Technologien (etwa Cloud Computing) eine wichtige Rolle spielen. Insbesondere wenn die aktuellen Probleme, etwa die fehlende Langlebigkeit, gelöst werden, steht dem Durchbruch nichts mehr im Wege.

Platz 5: NoSQL-Datenbanken

Der Datenstrom ist überall und so groß wie nie zuvor. Und die Zeiten, in denen "SQL" und "Datenbank" gleichbedeutend waren, verblassen schnell. Zum Teil, weil die alten Datenbankstrukturen nicht angemessen mit der Flut von Daten aus Web-2.0-Anwendungen umgehen können.

Die größten Websites spucken Terabytes an Daten aus, die wenig Ähnlichkeit mit den Zeilen und Spalten von Zahlen aus der Buchhaltung haben. Stattdessen werden die Details des Website-Verkehrs in Dateien gespeichert und durch Cron-Jobs spät in die Nacht ausgewertet. Zur Nutzung und Auswertung dieser Daten braucht man geeignete Verfahren - dazu wäre auch eine herkömmliche Datenbank in der Lage, wenn sie nicht so überladen mit Mechanismen wäre, die die Daten letztlich als konsistente „Masse“ belässt.

Sicher, man kann alles anpassen und mit viel Arbeit in eine relationale Datenbank pressen, aber das bedeutet gleichzeitig, dass Sie für anspruchsvolle Mechanismen bezahlen, die eigentlich für die Buchhaltung entwickelt wurden. Wenn bestimmte Daten nicht die besonderen Funktionen der Top-Datenbanken benötigen, dann gibt es auch keinen Grund, für diese Leistung Geld auszugeben und die Konsequenzen (Anforderungen) der dafür benötigten Strukturen auf sich zu nehmen.

Die Lösung? Entkommen sie diesen oft ungewollten Zwängen und folgen Sie einem neuen Ansatz: NoSQL. Einfache NoSQL-Datenbanken arbeiten mit einfachen Schlüssel-Wert-Paaren, die durch Attribute verbunden werden. Es gibt keine Tabelle mit leeren Spalten und keine Problem damit, neue Ad-hoc-Tags oder Werte zu den Elementen hinzuzufügen. Transaktionen sind optional.

Die heutige NoSQL-Lösungen umfassen Project Voldemort, Cassandra, Dynamite, HBase, Hypertable, CouchDB und MongoDB. Es scheinen jeden Tag neue hinzuzukommen. Jeder Ansatz bietet auf leicht unterschiedliche Weise Zugang zu den Daten. CouchDB zum Beispiel erfordert, dass die Suchanfrage als einen JavaScript-Funktion geschrieben wird. MongoDB nutzt „Sharding“, eine große Datenbank wird von Anfang an in Teilstücke zerlegt und über mehrere Server verteilt.

Einfache Schlüssel-Wert-Paare sind nur der Anfang. Neo4J zum Beispiel bietet eine grafische Datenbank, die Abfragen wie in einem Netzwerk ermöglicht. Wenn Sie die Namen aller Hunde der Freunde eines Freundes erfahren wollen, benötigt die Abfrage nur ein paar Zeilen Code.

Das Anspruchsvolle ist es, die erforderlichen Funktionen zu erhalten und diejenigen auszuschließen, die man nicht benötigt. Project Cassandra zum Beispiel folgt dem "eventually consistent"-Modell. Neo4J erfordert die Erweiterung Lucene oder ein anderes Indizierungs-Paket, wenn Sie Daten nach Namen oder nach Inhalten durchsuchen wollen, weil Neo4J nur dafür ausgelegt ist, das Netzwerk selbst zu durchsuchen.

Alle diese neuen Projekte sind die neusten Versuche, durch die Abkehr von zu hohen Anforderungen wieder einfach hohe Geschwindigkeiten in Datenbanken zu ermöglichen. Schauen Sie sich hier auch nach speziellen Anpassungen um, die die entsprechenden Regeln vereinfachen und gleichzeitig die Abwärtskompatibilität und einfache Bedienung ermöglichen. Sie dürfen eine neue Ära der Datenverarbeitung erwarten, die wie nichts ist was wir zuvor erlebt haben.

PC-WELT Marktplatz

220184