19.1 IBM
19.1.3 Paralleles DB2
Die Parallelisierung komplexer SQL-Anweisungen wird für DB2 zur Zeit nur in Form von E/A-Parallelität unterstützt (für DB2/MVS seit V3.1, für DB2/6000 und DB2/2 ab Version 2). Dazu können Relationen über eine Bereichspartitionierung auf einem bestimmten Attribut über mehrere Platten verteilt gespeichert werden, von denen dann die Daten parallel gelesen werden (Zugriffsparallelität). Verarbeitungsparallelität wird nicht genutzt, d.h. die Verarbeitung einer Query erfolgt nur durch einen Prozessor. Diese Beschränkung entfällt für den neuen Parallel Query Server für DB2/MVS sowie die parallele Version von DB2/6000.
Parallel Query Server
Der S/390 Parallel Query Server (PQS) ist ein Mikroprozessor-Cluster ähnlich dem Parallel Transaction Server, welches bis zu acht Rechnerknoten (48 Prozessoren) umfassen kann. Allerdings basiert PQS noch auf dem ursprünglichen Sysplex (ohne Coupling Facility). Weiterhin wird der Query-Server als dediziertes Back-End-System ausschließlich zur parallelen Anfrageverarbeitung für DB2/MVS eingesetzt (Abb. 19-2). Die Query-Verarbeitung erfolgt dabei auf einer Kopie der Datenbank, die asynchron aktualisiert wird und auf die alle Rechner des Back-End-Systems gemäß dem Shared-Disk-Prinzip Zugriff haben.
Abb. 19-2: Parallel Query Server
In der ersten Version des Parallel Query Servers können nur lesende, dynamische SQL-Anfragen parallelisiert werden. Damit erübrigen sich im Back-End-System Synchronisation sowie Kohärenzkontrolle, so daß keine Coupling Facility benötigt wird. SQL-Anfragen, die vom Benutzer gestellt bzw. von Tools erzeugt werden, gelangen über ein S/390-Front-End-System an den Query-Server; Anfrageergebnisse nehmen den umgekehrten Weg (Abb. 19-2). Das Front-End-System verwaltet die Primär-Datenbank unter Kontrolle von DB2/MVS. Es führt die Optimierung der SQL-Anfragen durch und entscheidet, ob eine parallele Bearbeitung im Backend-System sinnvoll ist. Im Back-End-System nimmt auf einem der Rechner eine spezielle Scheduling-Komponente die Zerlegung der Query in parallele Teilanfragen vor und kombiniert die Teilergebnisse.
Paralleles DB2/6000
Für DB2/6000 unter dem AIX-Betriebssystem wird künftig ebenfalls Intra-Query-Parallelität unterstützt, allerdings auf Basis eines Shared-Nothing-Ansatzes [Fe94]. Die Ausführung soll dabei auf dem Unix-Parallelrechner SP2 (Scalable POWERparallel System) von IBM erfolgen, in dem bis zu 128 RS/6000-Prozessoren eingesetzt werden können. Es wird dabei eine umfassende Parallelisierung lesender und ändernder SQL-Anweisungen sowie von Dienstprogrammen unterstützt. Daneben wird zur Erlangung hoher Transaktionsraten auch Inter-Transaktionsparallelität eingesetzt.