17 Datenverteilung in Parallelen DBS
Bei der Allokation einer Relation sind zunächst D Rechner auszuwählen, denen die Fragmente der Relation zugeordnet werden. Dies ist für D=N trivial, anderenfalls erfolgt die Auswahl mit Hinblick auf eine Lastbalancierung, so daß auf jeden Rechner möglichst gleich viele Zugriffe entfallen. Wenn von einer Gleichverteilung der Zugriffe ausgegangen werden kann, genügt es hierzu, jedem Rechner in etwa gleich viele Tupel zuzuweisen. Anderenfalls müssen die Zugriffshäufigkeiten explizit berücksichtigt werden (s. [CABK88]). Bei der Auswahl der Rechner können auch weitere Faktoren eine Rolle spielen, z.B. wenn zur Unterstützung der Join-Verarbeitung zusammengehörige Fragmente verschiedener Relationen derselben Partition zugewiesen werden sollen. Die Zuordnung der M Fragmente unter den D ausgewählten Prozessoren ist für M=D wiederum trivial. Für M>D, was bei einer Bereichsfragmentierung sinnvoll sein kann, genügt i.a. eine Round-Robin-artige Zuordnung (ähnlich wie in Abb. 17-4).
Die Verteilung einer Relation über D Rechner verlangt auch eine analoge Partitionierung von Indexstrukturen. Dabei wird pro Partition ein eigener Teilindex geführt, der alle Schlüsselwerte enthält, die in den Sätzen des jeweiligen Knotens vorkommen. Die Verwendung und Wartung dieser Indexstrukturen ist damit wie für zentralisierte DBS möglich.