4. Datenallokation in VDBS und PDBSdbs.uni-leipzig.de/file/mrdbs-ws0910-kap4.pdf · Sl i Afil RliSpaltenweise Aufteilung von Relationen Definition der Fragmentierung durch Projektion
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
4. Datenallokation in VDBS und PDBSF i d All k iFragmentierung und AllokationFragmentierungsvarianten – horizontale Fragmentierungen– vertikale Fragmentierung
hybride Fragmentierung– hybride Fragmentierung
VerteilungstransparenzDatenallokation für Parallele DBSDatenallokation für Parallele DBS – Verteilgrad – Varianten der horizontalen FragmentierungVarianten der horizontalen Fragmentierung
– Zielkonflikt: Minimierung der Kommunikationskosten vs. Lastbalancierung– ggf. replizierte Speicherung von Fragmenten
FragmentierungGründe für (horizontale bzw. vertikale) Fragmentierung– Lastbalancierungg– Nutzung von Lokalität– Reduzierung des Verarbeitungsumfangs für Anfragen – Unterstützung von Parallelverarbeitung– Bessere Administrierbarkeit sehr großer Tabellen (Sicherung,
Reorganisation)Reorganisation)
Anforderungen– Vollständigkeit: jedes Datenelement muss in wenigstens einem FragmentVollständigkeit: jedes Datenelement muss in wenigstens einem Fragment
enthalten sein– Rekonstruierbarkeit: Verlustfreiheit der Zerlegung– (weitestgehende) Disjunktheit
Fragmentierungsprädikate sind so zu wählen, damit gilt– Vollständigkeit: jedes Tupel ist einem Fragment eindeutig zugeordnetg j p g g g– Fragmente sind disjunkt: Ri ∩ Rj = {} (i ≠ j))– Verlustfreiheit (Relation ist Vereinigung aller Fragmente):
R R (1 i )R = ∪ Ri (1 ≤ i ≤ n)
Vorteile– Anfragen können ggf. auf Teilmenge der Fragmente begrenzt werden g gg g g g– optimale Parallelisierbarkeit von Anfragen auf großen Tabellen
Abgeleitete horizontale FragmentierungH i l F i i T b ll S i d üb P ädikHorizontale Fragmentierung einer Tabelle S wird über Prädikate einer anderen Relation R definiert, zu der S abhängig ist i f kti l Abhä i k it ( 1) üb F d hlü li.a. funktionale Abhängigkeit (n:1) über Fremdschlüssel-Primärschlüssel-BeziehungenBeispiel: Fragmentierung von Relation KONTO analog zu KUNDEBeispiel: Fragmentierung von Relation KONTO analog zu KUNDE
Semi-Join zwischen Relationen S und R S R = π S-Attribute (S R)
– asymmetrischer Operator
Seien R R R Fragmente einer horizontalen FragmentierungSeien R1, R2, ... Rn Fragmente einer horizontalen Fragmentierung von R. Eine von R abgeleitete horizontale Fragmentierung einer Tabelle S hat die Fragmente g
Si = S Ri = S σPi (R) (1 ≤ i ≤ n)
effiziente Join-Verarbeitung zwischen R und Slokale Join D rchführ ng falls Fragmente R nd S am selben Rechner– lokale Join-Durchführung falls Fragmente Ri und Si am selben Rechner
– reduzierte Datenmengen für Suche nach Verbundpartnern
KUNDEi sei an Knoteni gespeichert;KUNDE1 zusätzlich an Knoten 5 und KUNDE4 an Knoten 6
Orts-, Replikations- und FragmentierungstransparenzUPDATE KUNDE SET FILIALE = "L" WHERE KNR = "K3"; (*Wechsel von B nach L*)( Wechsel von B nach L )
Orts- und Replikations-, keine FragmentierungstransparenzSELECT NAME INTO $Name FROM KUNDE3 WHERE KNR = "K3";
$SELECT GEBDAT INTO $Geb FROM KUNDE4 WHERE KNR = "K3";INSERT INTO KUNDE1 (KNR, NAME) VALUES ("K3", $Name)INSERT INTO KUNDE2 (KNR, GEBDAT, FILIALE) VALUES ("K3", $Geb, "L")DELETE KUNDE3 WHERE KNR "K3"
Datenallokation in PDBSä h Sh d N hizunächst: Shared Nothing
Horizontale Verteilung von Relationen über mehrere Rechner– Nutzung von Datenparallelität– Lastbalancierung
T il f b B ti d D t t ilTeilaufgaben zur Bestimmung der Datenverteilung– Festlegung des Verteilgrades einer Relation– Fragmentierung– Fragmentierung – Allokation
Bestimmung des "optimalen" Verteilgrades schwierigBestimmung des optimalen Verteilgrades schwierig– wachsende Rechneranzahl erhöht Kommunikations-Overhead und
reduziert Parallelisierungsgewinn, v.a. für kleinere Relationen– "Full Declustering" oft nicht sinnvoll– einfache Anfragen (kleine Relationen) -> wenige Partitionen
datenintensive Anfragen (große Relationen) > viele Partitionen
Bestimmung des Verteilgrades D– für jeden Anfragetyp popt bestimmen
Verteilgrad D ergibt sich aus gewichtetem Mittel (=> Kompromisslösung– Verteilgrad D ergibt sich aus gewichtetem Mittel (=> Kompromisslösung für erwartetes Lastprofil)
– besonders ineffizient für Exact-Match-Anfragen und Einzelsatzzugriffe
Hash-FragmentierungF1 F2 Fm
Satz i -> Fragment h (VAi)
H h F k i h f F i b V il ib ( B
g ( i)
Hash-Funktion h auf Fragmentierungs- bzw. Verteilattribut (z. B. Primärschlüssel) V t ilVorteile: – Einfachheit– Exact-Match-Queries auf Verteilattribut auf 1 Fragment eingrenzbar Q g g
– Equi-Joins über das Verteilattribut werden unterstützt
– keine Unterstützung für Bereichsanfragen (range queries) – Gefahr ungleichmäßiger Partitionsgrößen (-> Skew)
Bereichsfragmentierung
F1 F2 Fm
a-c d-g w z
Fragmentierung über Wertebereiche auf Verteilattribut (VA)S ifi i d h B i h ädik t
a-c d-g w-z
– Spezifizierung durch Bereichsprädikate – Fragmentierungsansatz verteilter DBS
Vorteile: – Exact-Match- sowie Range-Queries auf VA auf relevante Fragmente eingrenzbar – Unterstützung für Equi-Joins über das Verteilattribut – stabiler als Hash-Fragmentierung gegenüber ungleichmäßiger Werteverteilungstabiler als Hash Fragmentierung gegenüber ungleichmäßiger Werteverteilung
Beispiel: Kontoaufteilung über VA Kontonummer– Exact-Match-Anfragen gehen auf 1 RechnerExact Match Anfragen gehen auf 1 Rechner – Bereichsanfragen auf VA werden auf minimale Rechnerzahl begrenzt – Relationen-Scan gehen auf alle Rechner
Aber: 1 Fragment pro Rechner (m=D) beschränkt auch Parallelisierung / Lastbalancierung für Bereichsanfragen Verbesserung durch größere Anzahl von Fragmenten (m > D) -> verfeinerte Bereichsfragmentierung
Verfeinerte BereichsfragmentierungA höh F hl d l F iAnsatz: erhöhe Fragmentanzahl, so dass relevanten Fragmente im Mittel popt Rechnern zugeordnet werden können
K = Kardinalität der Tabelle– K = Kardinalität der Tabelle– s = mittlere Selektivität der Bereichsanfragen, 0 ≤ s ≤ 1– popt : optimaler Parallelitätsgrad für durchschnittliche Bereichsanfragepopt p g g– Wähle: m = popt / s (Fragmentgröße: K/m = K * s / popt
Mehrdimensionale BereichsfragmentierungZi l U ü E M h d B i h f fZiel: Unterstützung von Exact-Match- und Bereichsanfragen auf mehreren AttributenB i i l Z i A f tBeispiel: Zwei Anfragetypen
A: SELECT * FROM PERS WHERE NAME = :Z
B: SELECT * FROM PERS WHERE GEHALT BETWEEN [:X :Y]B: SELECT FROM PERS WHERE GEHALT BETWEEN [:X,:Y]
- Hash- und Bereichsfragmentierung können nur 1 Anfragetyp unterstützen (fürandere sind alle Rechner involviert))
- Mehrdimensionale Bereichsfragmentierung erlaubt, beide Anfragetypen aufTeilmenge der Fragmente zu beschränken
Allokation von FragmentenAll k i P i i bild d h R h d dAllokation: Partitionenbildung durch Rechnerzuordnung der Fragmente (SN)
Festlegung des Verteilgrades D– Festlegung des Verteilgrades D– "gleichmäßige" Aufteilung der m Fragmente unter D Rechnern: (statische)
Lastbalancierungg– analoge Partitionierung von Indexstrukturen
B l i d Z iff hä fi k i P i iBalancierung der Zugriffshäufigkeit von Partitionen– Round Robin-Zuordnung der Fragmente
(gierige Heuristik) bei stark unterschiedlichen Fragment– (gierige Heuristik) bei stark unterschiedlichen Fragment-Zugriffshäufigkeiten:
- ordne Fragmente gemäß Zugriffshäufigkeitenl h F f il ähl d ä h F i d hö h- solange noch Fragmente aufzuteilen, wähle das nächste Fragment mit der höchsten
Zugriffsfrequenz aus- ordne es dem bis dahin am geringsten ausgelasteten Knoten (Partition) zu
Datenverteilung bei SD und SEli h U hi d b SNwesentliche Unterschiede gegenüber SN
– Festlegung der Datenverteilung bezieht sich nur auf Platten, nicht auf ProzessorenProzessoren
– Datenallokation hat keinen Einfluss auf Kommunikationshäufigkeit– größere Freiheitsgrade für Verarbeitungsparallelität g g g p– Indexallokation kann unabhängig von Tabellenallokation gewählt werden
SE/SD-Datenallokation (2)A B i d V il dAnsatz zur Bestimmung des Verteilgrades– breites Declustering zur optimalen Abdeckung von Relationen-Scans
selektivere Anfragen bzw Anfragen im Mehrbenutzerbetrieb können– selektivere Anfragen bzw. Anfragen im Mehrbenutzerbetrieb können dennoch mit geringerer Parallelität bearbeitet werden
Fragmentierung analog SN möglich, z. B. über Hash- oder Bereichspartitionierung– reduzierter Datenraum für Anfragen auf Verteilattribut
- Beispiel: Bereichspartitionierung von Relation R auf Attribut A (DR=20)
(PARTITION vor_2006 VALUESLESS THAN TO_DATE('01-JAN-2006', 'DD-MON-YYYY'),PARTITION in 2006 VALUESPARTITION in_2006 VALUESLESS THAN TO_DATE('01-JAN-2007', 'DD-MON-YYYY'),PARTITION nach_2006 VALUES LESS THAN MAXVALUE) ;
DB2 für LUW: Datenallokation (SN)3 –stufige Vorgehensweise– DISTRIBUTE BY HASH - Tabellen-Partitionierung zwischen Knoten
PARTITION BY RANGE partitionsinterne Fragmentierung von Tabellen– PARTITION BY RANGE – partitionsinterne Fragmentierung von Tabellen– ORGANIZE BY DIMENSIONS – Clustering innerhalb von Fragmenten
(mehrdimensionales Clustering, MDC)
Node 1 Node 2 Node 3Node 1 Node 2 Node 3
Tabelle T1: Verteilung über 3 Partitionen (Hash) Distribute
TS1 TS2 TS1 TS2 TS1 TS2
Jan Feb Jan Feb Jan Feb Partition
North South North South North South North South North South North South
ZusammenfassungD i i i F i All k i d FDatenpartitionierung: Fragmentierung + Allokation der Fragmente Hauptziele der Fragmentierung– Reduzierung des Verarbeitungsumfangs – Reduzierung des Kommunikationsaufwandes / Unterstützung von
Lokalität (v a wichtig in VDBS)Lokalität (v.a. wichtig in VDBS)– Unterstützung von Parallelität (v.a. wichtig für PDBS)
Parallele DBS basieren auf horizontaler Fragmentierunga a e e S bas e e au o o ta e ag e t e u g– hohe Flexibilität durch Bereichsfragmentierung und Varianten – mehrdimensionale Fragmentierung: Eingrenzung des