NoSQL: Wie moderne Datenbanken arbeiten

Ausblick

Eine Vielzahl weiterer Protokolle und Verfahren, die leider an dieser Stelle zu kurz kommen, sind für NoSQL-Systeme ebenfalls von Bedeutung. Nicht unerwähnt bleiben soll Multiversion Concurrency Control, kurz MVCC. Mit dieser Technik können konkurrierende Datenbankoperationen effizient ausgeführt werden, denn zeitraubende Blockierungen werden vermieden, indem Transaktionen durch Versionsbildung isoliert werden. Consistent Hashing ist eine weitere Technik. Hierbei werden verteilte Hash-Tabellen eingesetzt, um den Schlüsselraum zu Partitionieren und die Daten gleichmäßig über alle Server zu verteilen. Vektoruhren sind eine wichtige Technik zur Erkennung von Konflikten, das heißt Updates, deren Reihenfolge nicht definiert ist. Das kann bei verteilten Systemen auftreten, die ohne zentrale Koordination der Schreiboperationen arbeiten. In diesem Zusammenhang sollte auch Paxos genannt werden. Während Konsensprotokolle wie 2-Phase-Commit früher oder später zum Flaschenhals in hochskalierbaren Systemen werden, sind Paxos-Protokolle aufgrund ihrer Fehlertoleranz und Skalierbarkeit besser geeignet.

Fazit

NoSQL ist nicht nur eine Technologie, sondern ein ganzer Strauß von Technologien. Neben der Skalierung auf großen Datenmengen geht es vor allem auch um die Unterstützung von semi-strukturierten Daten. Ein Softwarearchitekt sollte sich mit den Konzepten dieser Datenbanken auskennen, um in den jeweiligen Szenarien die richtige Technologie auszuwählen. Gerade bei sehr großen Datenmengen ist NoSQL wohl die einzige sinnvolle Lösung. Wichtig ist dabei, dass NoSQL keine Ablösung der relationalen Datenbanken darstellt, sondern eine Ergänzung. Schon aus strategischen Gründen sind viele Firmen an bestimmte relationale Datenbanken gebunden, sodass eine Ablösung sowieso nicht realistisch möglich wäre. Aber auf der anderen Seite ist ein „One Size Fits All“ auch bei Datenbanken kein sinnvoller Ansatz.

Eberhard Wolff (Twitter: @ewolff) arbeitet als Architecture and Technology Manager für die adesso AG in Berlin. Er ist Java Champion, Autor einiger Fachbücher und regelmäßiger Sprecher auf verschiedenen Konferenzen. Sein Fokus liegt auf Java, Spring und Cloud-Technologien.

Kai Spichale arbeitet als Senior Software Engineer beim IT-Dienstleistungs- und Beratungsunternehmen adesso AG. Er entwirft und entwickelt Unternehmensanwendungen mit allem, was die Java-Plattform zu bieten hat.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.