Database Reference
In-Depth Information
Das Aufkommen polyglotter Persistenz
Genau wie das Phänomen der polyglotten Programmierung gewinnt auch die poly-
glotte Persistenz zunehmend an Boden.
Bei der polyglotten Programmierung (falls Sie mit dem Thema nicht vertraut sind)
verwendet ein Team mehr als eine Programmiersprache in einem Projekt. Verglei-
chen Sie das mit der Konvention, eine einzige Allzweck-Programmiersprache für ein
Projekt zu nutzen. Das kann aufgrund der unterschiedlichen Stärken der Sprachen
nützlich sein. Ein Framework wie Scala kann für serverseitige, zustandsfreie Trans-
aktionen im Web gut geeignet sein, während sich eine Sprache wie Ruby für die
Businesslogik besser eignet. Zusammen erzeugen sie eine Synergie. Ein berühmtes
polyglottes Sprachsystem wie dieses wurde bei Twitter verwendet.
Einige der vorgestellten Datenbanken unterstützen selbst die polyglotte Program-
mierung - Riak unterstützt bei der Mapreduce-Entwicklung sowohl JavaScript als
auch Erlang und ein einzelner Request kann beide ausführen.
Ähnlich wie der sprachorientierte Cousin nutzt die polyglotte Persistenz die Stärken
verschiedener Datenbanken in einem System. Das ist das Gegenteil von der heute
üblichen Praxis, eine einzige Datenbank (üblicherweise eine relationale) zu nutzen.
Eine einfache Variante ist aber schon heute recht weit verbreitet: die Verwendung
eines Schlüssel/Wert-Speichers ( wie Redis) als Cache für die vergleichsweise lang-
samen Queries relationaler Datenbanken (wie PostgreSQL). Wie wir in den vergan-
genen Kapiteln gesehen haben, ist das relationale Modell für eine wachsende Zahl
von Problemen (z. B. der Graphentraversierung) ungeeignet. Doch selbst die neuen
Datenbanken können nur als kleine Sterne am Himmel der ganzen Anforderungen
scheinen.
Warum dieses plötzliche Interesse am Polyglotten? Martin Fowler bemerkte, a das die
Verwendung einer einzelnen zentralen Datenbank, in die verschiedene Anwendun-
gen integriert werden können, ein übliches Muster des Software-Designs war. Dieses
einstmals beliebte Muster wurde zugunsten einer Middleware-Schicht aufgegeben,
bei der mehrere Anwendungen über HTTP mit einer Service-Schicht kommunizie-
ren. Das gibt dem Middleware-Service selbst die Möglichkeit, mit einer beliebigen
Zahl von Datenbanken zu arbeiten bzw. im Falle polyglotter Persistenz mit einer
beliebigen Zahl von Datenbank-Typen.
a. http://martinfowler.com/bliki/DatabaseThaw.html
Jede Datenbank übernimmt in unserem System eine bestimmte Rolle, sie
kommunizieren aber nicht direkt miteinander. Wir verwenden das Java-
Script-Framework Node.js, um die Datenbanken zu befüllen und zwischen
ihnen zu kommunizieren sowie als einfachen Frontend-Server. Da das Ver-
binden mehrerer Datenbanken etwas Code verlangt, werden Sie an diesem
Tag wesentlich mehr Programme sehen, als bisher.
Search WWH ::




Custom Search