3. DB-Pufferverwaltung

Größe: px
Ab Seite anzeigen:

Download "3. DB-Pufferverwaltung"

Transkript

1 . D-Pufferverwaltung Rolle der D-Pufferverwaltung in einem Datenbanksystem Ziel: Realisierung einer effizienten, seitenbasierten Verarbeitungsplattform im Hauptspeicher - größtmögliche Vermeidung von physischer Ein-/Ausgabe - Ersetzungsverfahren ohne und mit Kontextwissen INDE PERSONAL WHERE ANR = K Transaktionsprogramme, die auf die Datenbank zugreifen TA TA TA n Rolle der D-Pufferverwaltung - Ablauf des Zugriffs auf den D-Puffer Datenbanksystem (vereinfacht) - Vergleich mit ähnlicher unktionalität in etriebssystemen (S) Lokalität - Maße für Lokalität - Charakterisierung durch LRU-Stacktiefen-Verteilung Und Referenzdichtekurven Speicherzuteilung und Suche im D-Puffer Seitenersetzungsverfahren - Klassifikation von Ersetzungsverfahren - LRU, IO, CLOCK, GCLOCK, LRD, LRU-K... Stelle Seite P i bereit Gib Seite P i frei Lies Seite P i Schreibe Seite P i Transaktionsverwaltung und Zugriffspfadroutinen logische Seitenreferenzen D-Pufferverwaltung D-Puffer physische Seitenreferenzen Externspeicherverwaltung Ersetzungsverfahren Einbezug von Kontextwissen D-Caching - Klassifikation der Verfahren - DProxy - DCache Kanalprogramme Plattenzugriffe. Effelsberg, W., Härder, T.: Principles of Database uffer Management, in: ACM Transactions on Database Systems 9:, Dec. 98, pp

2 Seitenreferenzstrings Eigenschaften von D-Referenzstrings Jede Datenanforderung ist eine logische Seitenreferenz Typische Referenzmuster in DS Aufgabe der D-Pufferverwaltung: Minimierung der physischen Seitenreferenzen. Sequentielle Suche Referenzstring R = <r, r,... r i,... r n > mit r i = ( T i, D i, S i ) T i zugreifende Transaktion D i referenzierte D-Partition S i referenzierte D-Seite estimmung von Ausschnitten aus R bezüglich bestimmter Transaktionen, Transaktions-Typen und D-Partitionen sinnvoll zur Analyse des Referenzverhaltens S i S j S k S l sp.: Durchsuchen ganzer Satztypen (Relationen). Hierarchische Pfade Wie kann Referenzstring-Information verwendet werden für - Charakterisierung des Referenzverhaltens? - estimmung von Lokalität und Sequentialität? - Unterstützung einer effektiven Seitenersetzung? sp.: Suchen mit Hilfe von *-äumen. Zyklische Pfade sp.: Abarbeiten von Sets ((:n)-eziehungen), Suchen in DTT-/Datenseiten - -

3 Vergleich mit S-unktionen Sequentialität Ersetzungsalgorithmen im D-Puffer in Software implementiert Seitenersetzung in Adreßräumen bei Virtuellem Speicher ist HW-gestützt Seitenreferenz vs. Adressierung nach einem IX-Aufruf kann eine D-Seite mehrfach bis zum UNIX referenziert werden unterschiedliches Seitenreferenzverhalten andere Ersetzungsverfahren? Können Dateipuffer des S als D-Puffer eingesetzt werden?. Zugriff auf Dateipuffer ist teuer (SVC: supervisor call). D-spezifische Referenzmuster können nicht gezielt genutzt werden S-Ersetzungsverfahren sind z.. nicht auf zyklisch sequentielle oder baumartige Zugriffsfolgen abgestimmt. Normale Dateisysteme bieten keine geeignete Schnittstelle für Prefetching In DMS ist aufgrund von Seiteninhalten oder Referenzmustern eine Voraussage des Referenzverhaltens (z.. bei Tabellen-Scans) möglich; Prefetching erzielt in solchen ällen eine enorme Leistungssteigerung. Selektives Ausschreiben von Seiten zu bestimmten Zeitpunkten (z.. für Logging) nicht immer möglich in existierenden Dateisystemen DVS muß eigene Pufferverwaltung realisieren SRS weisen typischerweise Phasen von Sequentialität und Lokalität auf Sequentielle Zugriffsfolge (SZ): Zwei aufeinanderfolgende Referenzen r i und r i+ gehören zu einer sequentiellen Zugriffsfolge, falls S i+ S i = 0 oder d. h., aufeinanderfolgende Zugriffe referenzieren benachbarte D-Seiten Algorithmus - Seitenreferenzstring wird vollständig durchmustert; alternativ kann die olge der ankommenden Referenzen analysiert werden - Solange obige edingung erfüllt ist, gehören alle aufeinanderfolgenden Referenzen zu einer SZ, sonst beginnt eine neue SZ Länge einer sequentiellen Zugriffsfolge (LSZ): - LSZ ist die Anzahl der verschiedenen in SZ referenzierten Seiten - sp.:referenzstring A A D E E H enthält (AA) mit LSZ() =, (DEE) mit LSZ() = und (H) mit LSZ() = Maß für Sequentialität: - Die kumulative Verteilung der SZ-Längen LSZ(i) wird berechnet S(x) = Pr(SZ-Länge <= x) - ür obiges sp. gilt: S()=0., S()=0.67, S()=.0 ei Sequentialität Optimierung durch (asynchrones) Prefetching von D-Seiten möglich - - 6

4 Lokalität Erhöhte Wiederbenutzungswahrscheinlichkeit für gerade referenzierte Seiten (gradueller egriff) Grundlegende Voraussetzung für - effektive D-Pufferverwaltung (Seitenersetzung) - Einsatz von Speicherhierarchien Wie kann man Lokalität messen? Working-Set-Modell Referenzstring A A C A A C D E G H w = 8 Window size w t w = 8 t Working set size W W (t, w=8) = W (t, w=8) = 8 Aktuelle Lokalität: AL ( t, w ) = Wtw (, ) w Durchschnittliche Lokalität: Lw ( ) = n t = AL ( t, w ) n Relative Referenzmatrix (DOA-Last) ca Transaktionen, Million Seitenreferenzen auf ca verschiedene Seiten P P P P P P6 P7 P8 P9 P0 P P P Total TT TT TT TT TT TT6 TT TT8 TT9 TT0 TT TT Total partition size (%) % referenced

5 LRU-Stacktiefenverteilung eispiel: Ermittlung der Stacktiefen-Verteilung Wie läßt sich Lokalität charakterisieren? - LRU-Stacktiefenverteilung liefert Maß für die Lokalität (präziser als Working-Set-Ansatz) Referenzstring: A A C A A A C D E A E LRU-Stack: - LRU-Stack enthält alle bereits referenzierten Seiten in der Reihenfolge ihres Zugriffsalters estimmung der Stacktiefenverteilung: - pro Stackposition wird Zähler geführt - Rereferenz einer Seite führt zur Zählererhöhung für die jeweilige Stackposition A C D E Stacktiefen-Verteilung Wiederbenutzungswahrscheinlichkeit (%) Lokalität wahlfreie Zugriffsverteilung Stacktiefe Stacktiefe Zählerwerte entsprechen der Wiederbenutzungshäufigkeit ür LRU-Seitenersetzung kann aus der Stacktiefenverteilung für eine bestimmte Puffergröße unmittelbar die Trefferrate (bzw. ehlseitenrate) bestimmt werden - 9-0

6 Reale LRU-Stacktiefen-Verteilungen % 0 0 LRU-Stacktiefen-Verteilung von Mix0 Länge des Strings: 066 logische Referenzen Anzahl verschiedener Seiten im String: relative Häufigkeit der Stacktiefe LRU-Stacktiefe % LRU-Stacktiefen-Verteilung von Mix0 Länge des Strings: 9997 logische Referenzen Anzahl verschiedener Seiten im String: 0 relative Häufigkeit der Stacktiefe LRU-Stacktiefe. W. Effelsberg, T. Härder: Principles of Database uffer Management, ACM Transactions on Database Systems, Vol. 9, No., Dec. 98, pp Referenzdichte-Kurven - Referenzdichte-Kurven % % TA TA TA TA TA TA Relative Häufigkeit der Seitentypen im eispiel = Daten und Indexstrukturen: 9,8 % = Adressumsetztabellen: 6, % = reispeicher-verwaltung: 0, %

7 Partitionierungsmöglichkeiten: eigener Pufferbereich pro Transaktion TA-Typ-bezogene Pufferbereiche Seitentyp-bezogene Pufferbereiche D-(Partitions)spezifische Pufferbereiche - Dynamische Pufferallokation Working-Set-Ansatz (WS) Pro Pufferpartition P soll Working-Set im Puffer bleiben; Seiten, die nicht zum Working-Set gehören, können ersetzt werden ei ehlseitenbedingung muß Working-Set bekannt sein, um Ersetzungskandidat zu bestimmen - enstergröße (Window Size) pro Partition: w (P) - Referenzzähler pro Partition: RZ (P) - letzter Referenzzeitpunkt für Seite i: LRZ (P, i) - ersetzbar sind solche Seiten, für die RZ (P) LRZ (P, i) > w (P) enstergröße kritischer Parameter Thrashing-Gefahr P: A A C A A G H A P: Referenzstring D E E - Speicherzuteilung im D-Puffer global ( gemeinsamer Pufferbereich) lokal / partitionierte Pufferbereiche statisch dynamisch gleichförmige Partitionen angepaßte Partitionen

8 Suche im D-Puffer Seitenersetzungsverfahren Sequentielles Durchsuchen der Pufferrahmen Klassifikation - sehr hoher Suchaufwand Verfahrensklassen - Gefahr vieler Paging-ehler bei virtuellen Speichern Nutzung von Hilfsstrukturen (Eintrag pro Pufferrahmen) preplanning prefetching demand fetching. unsortierte oder sortierte Tabelle Programmanalyse, physische Datenstruktu- keine Vorausaktionen. Tabelle mit verketteten Einträgen - geringere Änderungskosten Vorabuntersuchung des Datenbedarfs rierung, Clusterbildung, Verarbeitungswissen - Anordnung in LRU-Reihenfolge möglich. Suchbäume (z.. AVL-, m-weg-äume) große ehlrate, datenmodellbezogen Lokalitätserhaltung. Hash-Tabelle mit Überlaufketten - beste Lösung ungenaue Obermengen (hierarchisch), spekulative Entscheidungen im D-Puffer h (P i ) = k Grundannahme bei Ersetzungsverfahren: k P j P i P k - A A C A C A C D H Referenzen jüngste Vergangenheit nächste Zukunft Referenzverhalten ähnlich - - 6

9 Referenzverhalten und Ersetzungsverfahren ehandlung geänderter Seiten im D-Puffer Referenzverhalten in DS - typischerweise hohe Lokalität: Optimierung durch Ersetzungsverfahren - manchmal Sequentialität oder zufällige Arbeitslast (RANDOM-Referenzen) Prinzipielle Zusammenhänge, welche die ehlseitenrate bestimmen Ersetzung einer geänderten Seite erfordert ihr vorheriges (synchrones) Zurückschreiben in die D Antwortzeitverschlechterung Abhängigkeit zur gewählten Ausschreibstrategie: ehlseitenrate 00% R/R R/OPT ORCE: alle Änderungen einer Transaktion werden spätestens beim EOT in die D zurückgeschrieben ( write-through ) + i. allg. stets ungeänderte Seiten zur Ersetzung vorhanden + vereinfachte Recovery (nach Rechnerausfall sind alle Änderungen beendeter TA bereits in die D eingebracht) - hoher E/A-Overhead L/OPT L/R - starke Antwortzeiterhöhung für Änderungstransaktionen D # Rahmen im D-Puffer NOORCE: kein Durchschreiben der Änderungen bei EOT (verzögertes Ausschreiben, deferred write-back ) + Seite kann mehrfach geändert werden, bevor ein Ausschreiben erfolgt D = D-Größe in löcken (geringerer E/A-Overhead, bessere Antwortzeiten) Kombinationen: Referenzen: RANDOM RANDOM Lokalität Lokalität Ersetzung: RANDOM OPT RANDOM OPT + Vorausschauendes (asynchrones) Ausschreiben geänderter Seiten erlaubt auch bei NOORCE, vorwiegend ungeänderte Seiten zu ersetzen Synchrone D-Schreibvorgänge lassen sich weitgehend vermeiden Grenzfälle des Referenzverhaltens und der Ersetzungsverfahren zeigen Optimierungsmöglichkeiten auf - 7-8

10 Kriterien für die Auswahl der zu ersetzenden Pufferseite Least requently Used und irst-in irst-out Verfahren OPT RANDOM LU IO LRU CLOCK GCLOCK Alter - - Kriterien letzte Referenz - - Referenzhäufigkeit - - andere Kriterien Vorauswissen x --- x Algorithmus LU - Referenzzähler pro Seite wird bei jeder Seitenreferenz inkrementiert - Ersetzung der Seite mit der geringsten Referenzhäufigkeit RZ 6 Alter einer Seite wird nicht berücksichtigt! Algorithmus IO - Die älteste Seite im D-Puffer wird ersetzt - Referenzen während des Pufferaufenthaltes werden nicht berücksichtigt LRD (V) LRD (V) LRU-K - 9 Nur für strikt sequentielles Referenzierungsverhalten geeignet - 0

11 Least Recently Used (LRU) CLOCK (Second Chance) eispiel (Puffergröße ):. Referenz der Seite C A C D LRU-Stack C A D Algorithmus - Erweiterung von IO - Referenzbit pro Seite, das bei Zugriff gesetzt wird - Ersetzung erfolgt nur bei zurückgesetztem it, sonst erfolgt Zurücksetzen des its 0. Referenz der Seite E 0 A E A C 0 D C Unterscheidung zwischen Least Recently Referenced Least Recently Unfixed und annähernde erücksichtigung des letzten Referenzierungszeitpunkts t IX IX UNIX UNIX A A - -

12 Seitenersetzungsverfahren eispiel GCLOCK (Generalized CLOCK) Seitenreferenzfolge OPT LRU IO * * * * * * * * * * * * * * * * * * * * * * * * * CLOCK Algorithmus - Pro Seite wird Referenzzähler geführt (statt it) - Ersetzung nur von Seiten mit Zählerwert 0 - sonst erfolgt Dekrementierung des Zählers und etrachtung der nächsten Seite 0 0 Verfahrensparameter: - Initialwerte für Referenzzähler - Wahl des Dekrementes - Zähler-Inkrementierung bei erneuter Referenz - Vergabe von seitentyp- oder seitenspezifischen Gewichten - -

13 Least Reference Density (LRD) Least Reference Density () Algorithmus - Wenn eine Seite ersetzt werden muß, wird die Referenzdichte aller Seiten im D-Puffer bestimmt - Referenzdichte = Referenzhäufigkeit in einem bestimmten Referenzintervall - Ersetzungskandidat ist Seite mit geringster Referenzdichte Variante : konstante Intervallgröße - Künstliches Altern von Seiten: Ältere Referenzen werden bei der estimmung der Referenzdichte geringer bewertet - Periodisches Reduzieren der Referenzzähler, um Gewicht früher Referenzen zu reduzieren - Reduzierung von RZ durch Division oder Subtraktion: Variante : Referenzintervall entspricht Alter einer Seite erechnung der Referenzdichte: Globaler Zähler GZ: Gesamtanzahl aller Referenzen Einlagerungszeitpunkt EZ: GZ-Wert bei Einlesen der Seite Referenzzähler RZ oder RZ() i RZ() i = RZ() i = K RZ() i K K (K > ) falls RZ() i K K sonst ( K > 0, K 0) Referenzdichte RD() j = RZ() j GZ EZ() j A A A C D D E A A A C D D E t t t RZ EZ RD t t t A C D E RZ(A) RZ() RZ(C) RZ(D) RZ(E) RZ() - - 6

14 LRU-K Aufzeichnung der K letzten Referenzzeitpunkte (pro Seite im D-Puffer) - Aufwendigere Aufzeichnung gewährleistet aktuelle Ersetzungsinformation; Methode benötigt kein explizites Altern über Tuning-Parameter wie LRD-V - Gegeben sei bis zum etrachtungszeitpunkt t der Referenzstring r,r,..., r t. Rückwärtige K-Distanz b t (P, K) ist die in Referenzen gemessene Distanz rückwärts bis zur K-jüngsten Referenz auf Seite P: b t (P, K) = x, b t (P, K) =, wenn r t-x den Wert P besitzt und es genau K- andere Werte i mit t-x < i t mit r i = P gab. wenn P nicht wenigstens K mal in r,r,..., r t referenziert wurde Ersetzungverfahren Einbezug von Kontextwissen Ausnutzung von Kontextwissen bei mengenorientierten Anforderungen Verbesserung in relationalen DS möglich Zugriffspläne durch Anfrage-Optimierer - Zugriffscharakteristik/Menge der referenzierten Seiten kann bei der Erstellung von Plänen vorausgesagt/abgeschätzt werden - Zugriffsmuster enthält immer Zyklen/Loops (mindestens Kontrollseite Datenseite, nested loop join etc.) - Kostenvoranschläge für Zugriffspläne können verfügbare Rahmen eispiel (K=) C A A C C A Zeit berücksichtigen - ei Ausführung wird die Mindestrahmenzahl der Pufferverwaltung mitgeteilt Hot Set: Menge der Seiten im Referenzzyklus Prinzipieller Verlauf der ehlseitenrate (SR) bei speziellen Operationen SR Zur Ersetzung genügt es, die b t (P i, K) der Pufferseiten zu berücksichtigen! - Sonderbehandlung für Seiten mit weniger als K Referenzen erforderlich Hot Points - Wie hängt LRU-K mit LRD zusammen? Approximation der Referenzdichte? LRU- (d.h. K=) stellt i. allg. beste Lösung dar - ähnlich gute Ergebnisse wie für K >, jedoch einfachere Realisierung # Rahmen - Verfahren reagiert schneller auf Referenzschwankungen als bei größeren K. O Neil, E.J., O Neil, P.E., Weikum, G.: The LRU-K Page Replacement Algorithm for Database Disk uffering. Proc. ACM SIGMOD Conf. Washington. D.C

15 Hot Set -Modell Seitenersetzung bei virtuellem Speicher Hot Point: abrupte Veränderung in der SR, z.. verursacht durch Schleife beim Verbund virtueller Speicher Hauptspeicher Hot Set Size (HSS): größter Hot Point kleiner als der verfügbare D-Puffer Anfrage-Optimierer berechnet HSS für die verschiedenen Zugriffspläne (Abschätzung der #Rahmen) D P SP virtuell SP real eispiel: P Kosteneinheiten/0 0 SELECT * ROM AT X, PERS Y WHERE X.ANR = Y.ANR AND... Magnetplatte Magnetplatte H S P 0 PERS in äußerer Schleife AT in äußerer Schleife Index-Scan für beide Relationen Page ault: P i (P ) in SP virtuell, aber nicht in SP real (HSP) Database ault: 0 0 # Rahmen P i (P ) nicht in SP virtuell, Seitenrahmen für P i jedoch in SP real Anwendungscharakteristika - erücksichtigung der HSS in den Gesamtkosten - Auswahl abhängig von verfügbarer D-Puffergröße - indung zur Laufzeit möglich Double Page ault: P i (P ) nicht in SP virtuell, ausgewählter Seitenrahmen nicht in SP real - 9-0

16 D-Caching D-Caching () Ziel: Unterstützung von Web-basierten D-Anwendungen - durch Abwicklung von D-(Teil-)Anfragen im Cache in AW-Nähe Anfrageergebnis-Caching (query result caching) On-demand Caching bei vorhandenen passenden Satzmengen - Im D-Cache muß Vollständigkeit (und Aktualität) der eingelagerten Satzmengen gewährleistet werden Wichtige Caching-Verfahren - Deklaratives Caching erfordert E-Metadaten, um den Cache dynamisch zu laden (Caching mehrerer QRs in gemeinsamen Tabellen) - On-demand Caching verwendet E-Metadaten und Hinweise der TA, um Daten dynamisch in den Cache zu füllen oder zu ersetzen Web- Server rowser-anforderungen von Clients Applikations- Server Applikations- Server D- Cache D- Cache ront-end-(e) D-Server D-Caching in der Nähe des Applikations-Servers Kunden WHERE Region= West Applikationslogik D- Server Kunden WHERE Region= Ost ack-end-(e) D-Server Ansätze - Replikation DA definiert, was im Cache zu halten ist E-Tabellen spiegeln die entsprechenden E-Tabellen wider Volle D- oder Tabellen-Replikation ist meist nicht wünschenswert - Materialisierte Sichten DA spezifiziert Sichtdefinitionen für Sichten, die im Cache gehalten werden sollen separate E-Tabelle für jede Sicht Was sind die richtigen Sichten? Wie läßt sich eine dynamische Anpassung des Cache-Inhalts an die TA-Last erreichen? Deklaratives und/oder On-demand Caching - eide egriffe werden in der Literatur zur Klassifikation verwendet - keine strikte Unterscheidung, Verfahrensübergänge fließend - eide Verfahren sind dynamisch und wollen adaptiv sein - Es werden E-Metadaten und Hinweise gebraucht (deklarativ), um zu wissen, was im Cache zu speichern ist - Werden zu speichernde Daten nicht im Cache gefunden, wird die Anfrage in der E-D beantwortet. Zugleich werden die entsprechenden Daten in den Cache geladen, damit die Anfrage beim nächsten Mal im Cache beantwortet werden kann (on-demand) - eschleunigung des lesenden D-Zugriffs - (bislang noch) Weiterleitung von Änderungsanweisungen zum E - Konsistenzprobleme -. Materialized Views werden (in IM-Publikationen) auch Automated Summary Tables (AST) oder Materiakized Query Tables (MQT) genannt.. Wir behalten die englischen eigriffe Cache, Cache Key, Cache Group usw. bei -

17 D-Caching () DProxy D-Caching Was ist zu entscheiden? - Was soll im Cache gehalten werden und wozu? Anfrageergebnisse (einzelne Tabellen/Sichten): Sie lassen Anfragen zu, die Untermengen als Ergebnis haben! Cache Groups (Cache-Gruppen), die aus mehreren zusammenhängenden Tabellen bestehen. Sie erlauben die Abwicklung von Anfragen mit einfachen Prädikaten und n Verbunden im Cache - Wie wird es spezifiziert? Liste von Anfragen Alle Anfragen, die eine spezifizierte Tabelle/Sicht betreffen Spezifikation von Cache Groups durch sog. Cache Constraints; das sind Cache Keys und Referential Cache Constraints (RCCs) - Wann werden Daten in den Cache geladen? vorab (statisch) on-demand; d. h., nachdem spezifizierte Daten nachgefragt wurden nach Analyse des edarfs? - Sind überlappende Daten im Cache zugelassen? Überlappende Sichten oder Cache Groups mit gemeinsamen Tabellen werden disjunkt gespeichert Problem: Caching + Replikation! - Wann werden Daten im Cache aktualisiert? zeitgleich zu ihrer Aktualisierung in der E-D? Relevante Änderungen werden innerhalb einer Zeitspanne δ propagiert irgendwann - Wann werden Daten im Cache ersetzt bzw. invalidiert? nie bei Speichermangel im Cache nach Ablauf eines Zeitintervalls ohne Referenzen - DProxy-Ansatz - Daten werden persistent in den E-D-Servern gespeichert - Als Hinweise sind zu spezifizieren: common schema tables - Daten, die im Cache gehalten werden, sind durch eine Liste von Anfragen in einem Cache-Index beschrieben Jede Anfrage liefert genau eine Tabelle zurück! - Aus Gründen der Speicherplatzeffizienz und zur Vermeidung von Replikation im Cache werden Anfrageergebnisse, wenn möglich, in derselben E-Tabelle gespeichert: Anfragen über dieselbe E-Tabelle Verbund-Anfragen über dieselbe Menge von E-Tabellen Sonst entstehen Replikate im Cache! - Anfragen für eine E-Tabelle beziehen sich auf unterschiedliche Spalten Anfragen können in ihrem Ergebnis überlappen ei Anfragen, die nicht alle Spaltenwerte zurückliefern, sind die Spalten mit NULL ( fake NULL values) aufzufüllen Wie lassen sich echte NULL-Werte darstellen?. Amiri, K., Park, S., Tewari, R., Padmanabhan, S.: DProxy: A Self-managing Data Cache for Edge-of-Network Web Applications, in: Proc. CIKM 00, pp

18 DProxy () DProxy () Anwendungsbeispiel - Vereinfachtes D-Schema eines Web-uchhändlers (nach TPC-W-enchmark) CUSTOMER ORDER ORDER_LINE ITEM C_ID C_UNAME C_PASSWD C_NAME C_LNAME C_ADDR_ID C_PHONE C_ C_SINCE C_LAST_VISIT C_LOGIN C_EXPIRATION C_DISCOUNT C_ALANCE C_YTD_PMT C_IRTHDATE C_DATA O_ID O_C_ID O_DATE O_SU_TOTAL O_TAX O_TOTAL O_SHIP_TYPE O_SHIP_DATE O_ILL_ADDR_ID O_SHIP_ADDR_ID O_STATUS OL_ID OL_O_ID OL_I_ID OL_QTY OL_DISCOUNT OL_COMMENT AUTHOR A_ID A_NAME A_LNAME A_MNAME A_DO A_IO I_ID I_TITLE I_A_ID I_PU_DATA I_PULISHER I_SUJECT I_DESC I_RELATED[-] I_THUMNAIL I_IMAGE I_SRP I_COST I_AVAIL I_STOCK I_ISN I_PAGE I_ACKING I_DIMENSION Verfahrensaspekte - elegung der ursprünglich leeren item-tabelle im Cache nach Einfügung der Ergebnisse von Q und Q - Anfragen werden so umgeschrieben, daß sie den Primärschlüssel i_id enthalten. So lassen sich Zeilenduplikate vermeiden E-item i_id i_cost i_srp NULL 8 60 NULL Retrieved by Q SELECT i_cost, i_srp ROM item WHERE i_cost ETWEEN AND 6 Retrieved by Q SELECT i_srp ROM item WHERE i_srp ETWEEN AND 0 Inserted by consistency protocol E-item-Tabelle hat 8 Spalten mit i_id als Primärschlüssel - Mögliche Anfragen hinsichtlich Kosten und Verkaufspreis (srp: suggested retail price) auf Tabelle item Q A : SELECT i_avail, i_cost ROM item WHERE i_cost < Q : SELECT i_avail, i_cost ROM item WHERE i_cost > Q N : SELECT i_srp, i_cost ROM item WHERE i_srp ETWEEN 0 AND 6 - Vor Einfügen vom Q -Ergebnis ist zu prüfen, ob E-item mit Spalten zu erweitern ist Optimierung: Definition einer umfassenden Tabelle mit Vorabwissen - Speicherung verschiedener Anfragen in einer E-Tabelle erzeugt unbelegte Spaltenwerte (NULL-Werte). Spätere Cache-Anfrage darf sie nicht benutzen - Einfügen von i_id=0 muß als Duplikat erkannt werden - - 6

19 DProxy () DProxy () Verfahrensaspekte (orts.) - Enthaltenseinstypen von Anfragen vollständig enthalten in einem früheren Anfrageergebnis (Sicht von Cache-Prädikat Q i ) Verfahrensaspekte (orts.) - Aktualisierung Wo wird aktualisiert? enthalten in der Vereinigung von mehreren früheren Ergebnissen (Sichten von Q i und Q j ) nur teilweise enthalten in einer oder mehreren im Cache gehaltenen Sichten Applikations- Server D- Cache D- Server - Komplexer Matching-Algorithmus Prädikate der im Cache gehaltenen Daten sind in einem Index gespeichert Enthaltensein von Q : Ergebnis von Q ist enthalten in dem von Q A, wenn das WHERE-Prädikat von Q das von Q A für alle möglichen Werte von item logisch impliziert Q.wherep => Q A.wherep äquivalent zur Anweisung Q.wherep AND (NOT (Q A.wherep)) ist nicht erfüllbar (i_cost < AND NOT (i_cost > )) Applikations- Server D- Cache ront-end-(e) D-Server ack-end-(e) D-Server Alle D-Caching-Ansätze sind nur sinnvoll, wenn sich die D-Daten nur langsam verändern δ-konsistenz wird gewährleistet: Relevante Änderungen in E-item werden nach E-item innerhalb einer Zeitspanne δ propagiert. i_id = {770, 880} wurden später in die E-D eingefügt. Cache-Prädikat Q verlangt das Propagieren dieser Sätze in die E-D - Ersetzung oder Invalidierung olglich ist Q nicht in Q A enthalten Ersetzung von Q darf nur i_id = {0, 60} aus E-item entfernen i. allg. sehr komplex, da Satzmengen, die durch überlappende Prädikate beschrieben werden, zu entfernen sind - 7-8

20 DCache DCache () DCache-Ansatz - Es sollen Anfragen mit einfachen Prädikaten und n Verbunden im Cache unterstützt werden. Das setzt voraus, daß der Cache-Mgr garantieren kann, daß bei einer Anfrageauswertung alle Sätze, die ein gegebenes Prädikat erfüllen, sich in der betreffenden E-Tabelle befinden daß in den n E-Tabellen alle zugehörigen Verbundpartner gespeichert sind Neue Herausforderung für Caching! - Wie wird die erste Anforderung spezifiziert? Hinreichende Schema-Information von allen E-Tabellen, von denen eine horizontale Partition als E-Tabelle gespeichert werden soll Einführung sog. Cache Keys (CK) Cache Key - kann für eine E-Tabelle spezifiziert werden - bezieht sich auf eine Spalte und dient als üllpunkt - besitzt die Eigenschaft bereichsvollständig (domain complete, DC) - Mechanismen zur Einschränkung sind lebenswichtig (~ Stoppwortliste) Definition: ereichsvollständigkeit einer Spalte Wenn ein Spaltenwert im Cache gefunden wird, garantiert der Cache-Mgr, daß alle Sätze mit diesem Wert sich im Cache befinden. UNIQUE-Spalten sind somit immer bereichsvollständig olglich wird die Auswertung eines Prädikats <ColName> = <value> durch eine solche Spalte unterstützt! eispiel - Tabelle CUST habe u. a. zwei UNIQUE-Spalten (U) Cnr und Cid sowie zwei Spalten CType und CLocation vom Typ NON UNIQUE (NU) - Im Cache seien für CUST CType und Cnr als Cache Keys deklariert - elegung im E: E_CUST Cnr CType CLocation Cid silver silver platinum unspec. gold gold... S LA SJ LA SJ S... NULL d07 a a07 a b - Im Cache sei die zugehörige Tabelle E-CUST zunächst leer. Eine Anfrage mit CType = gold wird im E ausgewertet und führt zu folgender elegung von E-CUST: E_CUST Cnr CType CLocation Cid... 6 gold gold SJ S - Erneute Anfragen mit CType = gold oder Cnr = oder Cnr = 6 werden im Cache ausgewertet, weil die Spalten DC sind und die Werte im Cache gefunden werden - Achtung: Cid ist eine U-Spalte und deswegen implizit DC. olglich wird eine Anfrage mit Cid = a im Cache ausgewertet, da der Wert a im Cache gefunden wird. Eine Anfrage mit diesem Prädikat hätte jedoch nicht zum Laden des Cache geführt, da Cid kein Cache Key ist - Cache-elegung nach einer Anfrage mit Cnr = 789 a b E_CUST Cnr CType CLocation Cid.... Altinel, M., ornhoevd, Ch., Krishnamurthy, S. Mohan, C., Pirahesh, H., Reinwald,.: Cache Tables: Paving the Way for an Adaptive Database Cache, in. Proc. VLD, erlin, gold gold silver silver SJ S NY LA - 0 a b NULL d07

21 DCache () DCache () CK-Regel - ür eine E-Tabelle dürfen n Cache Keys deklariert werden. - Höchstens ein Cache Key darf die Eigenschaft NU besitzen E_CUST Cnr CType CLocation Cid... 6 gold gold SJ S a b Cache Groups (orts.) - Zusammenhang zwischen E-Tabellen Wichtigste älle: eziehungen zwischen Primär-/remdschlüssel oder Owner-Member U->NU: Wenn ein PS-Wert im Cache gefunden wird, garantiert der Cache-Mgr, daß alle Sätze mit dem gleichen S-Wert im Cache sind Warum muß diese Einschränkung eingeführt werden? NU->U: Wenn ein S-Wert im Cache gefunden wird, ist der zugehörige Satz mit dem gleichen PS-Wert auch da Cache Groups - Wie wird der Zusammenhang zwischen E-Tabellen spezifiziert? Referential Cache Constraints beziehen sich auf Paare von Spalten (in der Regel verschiedener Tabellen) und sind vom Typ U->U, U->NU, NU->U, NU->NU (oder :, :n, n:, n:m) Alle Sätze im Cache erfüllen alle spezifizierten RCCs, d. h., wenn z.. NU->NU (oder U->NU) zwischen den Spalten A und von Tabelle S bzw. T spezifiziert ist, wird garantiert, daß alle T-Sätze mit einem Wert (=v i ) sich im Cache befinden, sobald ein S-Satz mit dem Wert (A=v i ) dort ist - Verknüpfung von Tabellen im Cache durch RCCs E-Tabelle mit einem Cache Key ist Wurzel-Tabelle einer Cache Group Sie kann mit anderen E-Tabellen ohne Cache Key über RCCs verknüpft sein So lassen sich Cache Groups bilden, die Verbundoperationen und, im all von NU->NU, Kreuzprodukte im Cache unterstützen edingung läßt sich nicht einschränken, da bei einem Verbund alle Verbundpartner da sein müssen! - -

22 DCache () Zusammenfassung Prinzip - Definition einer Cache Group über drei Tabellen A,, C und mit A.ck als Cache Key - Wertbasiertes Tabellenmodell im Cache: RCCs sind A.id->.id (U->NU) und A.cl->C.cl (NU->NU) RCCs können, müssen aber keine entsprechenden eziehungen in der E-D besitzen ck Referenzmuster in DS sind Mischformen - sequentielle, zyklische, wahlfreie Zugriff - Lokalität innerhalb und zwischen Transaktionen - bekannte Seiten mit hoher Referenzdichte Ohne Lokalität ist jede Optimierung der Seitenersetzung sinnlos (~ RANDOM) Suche im Puffer durch Hash-Verfahren id A U NU NU cl Speicherzuteilung: - global alle Pufferrahmen für alle Transaktionen (Einfachheit, Stabilität,...) - lokal Sonderbehandlung bestimmter TAs/Anfragen/ D-ereiche NU NU C ehandlung geänderter Seiten: NOORCE, asynchrones Ausschreiben Was passiert, wenn ein Anfrageprädikat A.ck = value bei leerem Cache ausgewertet wird? eispiel - Als E-D werde die des Web-uchhändlers verwaltet (mit ähnlichen Namen) - Cache Group: MC entspricht (U->NU)- und OC (NU->U)-eziehung CK: HAS_ORDER-MC Oid CType n CUST ORDER Cid HAS_ORDER-OC n Cid Iid ITEM n Aid AUTHOR WRITES-OC Aid Seitenersetzungsverfahren - zu genaue Verfahren sind schwierig einzustellen ( instabil) - Nutzung mehrerer Kriterien: Alter, letzte Referenz, Referenzhäufigkeit - CLOCK ~ LRU, aber einfachere Implementierung - GCLOCK, LRD, LRU-K relativ komplex - LRU- guter Kompromiß; vorletzter Referenzzeitpunkt bestimmt Opfer Erweiterte Ersetzungsverfahren - Nutzung von Zugriffsinformationen des Anfrage-Optimierers - Hot Set -Modell Double-Paging sollte vermieden werden HAS-MC HAS-OC n n n Oid ORDER_LINE Iid IS_ORDERED-OC D-Caching - will Skalierbarkeit und Leistungsverhalten bei Web-Anwendungen verbessern - Ansätze wie DProxy und DCache müssen Praxistauglichkeit noch erweisen - -

3. DB-Pufferverwaltung

3. DB-Pufferverwaltung . DB-Pufferverwaltung Rolle der DB-Pufferverwaltung in einem Datenbanksystem Ziel: Realisierung einer effizienten, seitenbasierten Verarbeitungsplattform im Hauptspeicher - größtmögliche Vermeidung von

Mehr

3. DB-Pufferverwaltung

3. DB-Pufferverwaltung . DB-Pufferverwaltung Ziel: Realisierung einer effizienten, seitenbasierten Verarbeitungsplattform im Hauptspeicher - größtmögliche Vermeidung von physischer Ein-/Ausgabe - Ersetzungsverfahren ohne und

Mehr

3. DB-Pufferverwaltung

3. DB-Pufferverwaltung . DB-Pufferverwaltung Ziel: Realisierung einer effizienten, seitenbasierten Verarbeitungsplattform im Hauptspeicher - größtmögliche Vermeidung von physischer Ein-/Ausgabe - Ersetzungsverfahren ohne und

Mehr

3. DB-Pufferverwaltung

3. DB-Pufferverwaltung 3. DB-Pufferverwaltung Rolle der DB-Pufferverwaltung 1 - Ablauf des Zugriffs auf den DB-Puffer - logische und physische Seitenreferenzen Speicherzuteilung im DB-Puffer Suche im DB-Puffer Seitenersetzungsverfahren

Mehr

4. DBS-Pufferverwaltung

4. DBS-Pufferverwaltung 4. DBS-Pufferverwaltung llgemeine Charakteristika blauf des Pufferzugriffs Referenzstrings, Stacktiefenverteilung Speicherzuteilung im Puffer Suche im Puffer Schreibstrategien (Force vs. Noforce) Lesestrategien

Mehr

3. Speichersystem / Pufferverwaltung

3. Speichersystem / Pufferverwaltung 3. Speichersystem / Pufferverwaltung Dateiverwaltung Direkte vs. indirekte Seitenzuordnung Segmentkonzept direkte vs. indirekte Einbringstrategien DB-Pufferverwaltung: Grundlagen allgemeine Merkmale Speicherzuteilung

Mehr

3. Speichersystem / Pufferverwaltung

3. Speichersystem / Pufferverwaltung 3. Speichersystem / Pufferverwaltung Dateiverwaltung Direkte vs. indirekte Seitenzuordnung Segmentkonzept Indirekte Einbringstrategien DB-Pufferverwaltung: Grundlagen Allgemeine Charakteristika Speicherzuteilung

Mehr

3. Speichersystem / Pufferverwaltung

3. Speichersystem / Pufferverwaltung 3. Speichersystem / Pufferverwaltung Dateiverwaltung Direkte vs. indirekte Seitenzuordnung Segmentkonzept Indirekte Einbringstrategien DB-Pufferverwaltung: Grundlagen Allgemeine Charakteristika Speicherzuteilung

Mehr

3. Speichersystem / Pufferverwaltung

3. Speichersystem / Pufferverwaltung 3. Speichersystem / Pufferverwaltung Dateiverwaltung Direkte vs. indirekte Seitenzuordnung Segmentkonzept Indirekte Einbringstrategien DB-Pufferverwaltung: Grundlagen Allgemeine Charakteristika Speicherzuteilung

Mehr

Implementierung von Datenbanksystemen

Implementierung von Datenbanksystemen Implementierung von Datenbanksystemen Kapitel 3: Teile dieses Foliensatzes beruhen auf ähnlichen Vorlesungen, gehalten von Prof. Dr. T. Härder am Fachbereich Informatik der Universität Kaiserslautern und

Mehr

Realisierung eines Dateisystems. Blockzuordnung bei Magnetplatten

Realisierung eines Dateisystems. Blockzuordnung bei Magnetplatten Übersicht 0 Aufbau des Speichersystems Dateien und Blöcke Realisierung eines Dateisystems Blockzuordnung bei Magnetplatten Kontrolle der E/A Operationen Segmente und Seiten Aufgaben und Eigenschaften Seitenabbildung

Mehr

4 Systempuffer (Buffer Pool) Prof. Dr.-Ing. Wolfgang Lehner

4 Systempuffer (Buffer Pool) Prof. Dr.-Ing. Wolfgang Lehner 4 Systempuffer (Buffer Pool) Prof. Dr.-Ing. Wolfgang Lehner > Gliederung Arbeitsweise und Eigenschaften Dienste eines Systempuffers Suche im DB-Puffer Einsatz von Seitenreferenzstrings Working-Set Modell

Mehr

Rückblick: Architektur und Hintergrundspeicher

Rückblick: Architektur und Hintergrundspeicher Rückblick: Architektur und Hintergrundspeicher Prototypische Architektur eines RDBMS Speicherhierarchie mit Zugriffslücke (10 5 ) zwischen Primär- und Sekundärspeicher (z.b. HDD) RAIDs zur Erhöhung der

Mehr

Übungsblatt 3 Lösungsvorschläge

Übungsblatt 3 Lösungsvorschläge rof. Dr.-Ing. Dr. h. c. T. Härder Fachbereich Informatik Arbeitsgruppe Datenbanken und Informationssysteme niversität Kaiserslautern Übungsblatt 3 Lösungsvorschläge für die freiwillige Übung nterlagen

Mehr

4. Datenbank-Caching. Informationsintegration. Globales Szenario (N. Mattos) Information Integration

4. Datenbank-Caching. Informationsintegration. Globales Szenario (N. Mattos) Information Integration 4. Datenbank-aching Motivation nterschied: DB-Pufferverwaltung und DB-aching Klassifikation von DB-aching-Verfahren DBProxy: Einsatz von materialisierten Sichten DBache: Einsatz von ache Groups Das neue

Mehr

Query Result Caching. Optimierung des Datenbankzugriffs

Query Result Caching. Optimierung des Datenbankzugriffs Query Result Caching Optimierung des Datenbankzugriffs Andreas Hubmer 19.11.2012 Inhalt Problemstellung Tabellen-Cache DBProxy Objekt-Cache 1 st -/2 nd -Level Cache Query Cache 2 Problemstellung Application-

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

DB IIb, Implementierung von Datenbanken

DB IIb, Implementierung von Datenbanken DB IIb, Implementierung von Datenbanken Alexander Hinneburg WS 2008/2009 Inhaltsverzeichnis 1 Organisation 1 2 Architektur eines DBS 2 2.1 Anforderungen an DBS..................................... 2 2.2

Mehr

Betriebssysteme Kap J, Teil C: Paging, Pagereplacement

Betriebssysteme Kap J, Teil C: Paging, Pagereplacement Betriebssysteme Kap J, Teil C: Paging, Pagereplacement 1 Welche Seite soll ausgelagert werden? Ein- / Auslagern benötigt Zeit Kontextwechsel erforderlich» Wechsel zu einem BS-Prozess, welcher für das Management

Mehr

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität Datenbanken Unit 4: Das Relationale Modell & Datenintegrität 15. III. 2016 Outline 1 Organisatorisches 2 SQL 3 Relationale Algebra Notation 4 Datenintegrität Organisatorisches Erster Zwischentest: nach

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher

Mehr

Vorlesung "Verteilte Systeme" Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Vorlesung Verteilte Systeme Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19. Verteilte Systeme 19. Distributed Shared Memory Sharing!! No Sharing! Sharing? Evolution der Berechnungsmodelle Vergangenheit Gemeinsamer Speicher Einzelrechner Gegenwart Nachrichtenkommunikation Verteilte

Mehr

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1 Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet

Mehr

Grob-Struktur des Prozessor-Speichersystems

Grob-Struktur des Prozessor-Speichersystems 2.3.2 Speicherstruktur (1) Grob-Struktur des Prozessor-Speichersystems Chipsatz (Erklärung s. später, Folie 104) 22.4.-27.5.2013, Folie 52 2.3.2 Speicherstruktur (2) Zugriff Prozessor zumeist auf schnelle

Mehr

Teil 2: Speicherstrukturen

Teil 2: Speicherstrukturen Inhalt Teil 2: Speicherstrukturen Hauptspeicher Cache Assoziativspeicher Speicherverwaltungseinheit ( Memory Management Unit ) 1 Virtueller Speicher Trennung von virtuellem Adreßraum (mit virtuellen Adressen)

Mehr

Performance in der Oracle Datenbank von Anfang an

Performance in der Oracle Datenbank von Anfang an Performance in der Oracle Datenbank von Anfang an Marco Mischke, 26.04.2018 DOAG Regional Agenda Tabellen Indizes Ausführungspläne SQL vs PL/SQL Tabellen Zu 99% werden Standard Strukturen zur Speicherung

Mehr

2.3 Prozessverwaltung

2.3 Prozessverwaltung Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären

Mehr

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22 Cache Grundlagen Schreibender Cache Zugriff SS 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.

Mehr

Physischer DB-Entwurf

Physischer DB-Entwurf Physischer DB-Entwurf Prof. Dr. T. Kudraß 1 Überblick Ausgangslage: Konzeptuelles und externes Schema sind erstellt: ER Modell, Schemaverfeinerung und Definition von Sichten Nächster Schritt: Physischer

Mehr

Domänen: Grundtypen, alle vordefiniert, z.b. INTEGER ~ integer NUMERIC (p,s) p: precision, s: scale (nach,) etc.

Domänen: Grundtypen, alle vordefiniert, z.b. INTEGER ~ integer NUMERIC (p,s) p: precision, s: scale (nach,) etc. Kapitel 6 Relationale DB-Sprache SQL SEQUEL: Structured English Query Language, 70er Jahre SQL: System R, SQL/DS, TransBase, Oracle... ANSI Standards 1, 2, 3 6.1 Daten-Definitionssprache DDL Domänen: Grundtypen,

Mehr

Speicherverwaltung (Swapping und Paging)

Speicherverwaltung (Swapping und Paging) Speicherverwaltung (Swapping und Paging) Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente 750k 0 Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente

Mehr

Mehrwegbäume Motivation

Mehrwegbäume Motivation Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung

Mehr

Hash-Verfahren. Einführung

Hash-Verfahren. Einführung Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.

Mehr

Hash-Verfahren. Prof. Dr. T. Kudraß 1

Hash-Verfahren. Prof. Dr. T. Kudraß 1 Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.

Mehr

Methodik zur Optimierung in Datenbanken. Anja Rommel, 14-INM

Methodik zur Optimierung in Datenbanken. Anja Rommel, 14-INM Methodik zur Optimierung in Datenbanken Anja Rommel, 14-INM 03.07.2015 Gliederung 1. Einleitung 2. Motivation und Ziele 3. Phasen der Optimierung 3.1. Phase 1: Optimierung des DB-Schemas und Anwendungsoptimierung

Mehr

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG SODA Die Datenbank als Document Store Rainer Willems Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG vs No Anforderungskonflikte Agile Entwicklung Häufige Schema-Änderungen Relationales

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 10. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Suchverfahren für große Datenmengen bisher betrachtete Datenstrukturen

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 22.05.09 11-1 Heutige große Übung Ankündigung

Mehr

5.1 Verteilung von Aktualisierungshinweisen

5.1 Verteilung von Aktualisierungshinweisen 5.1 Verteilung von Aktualisierungshinweisen Verteilung von Nachrichten über eine Aktualisierung lokaler Datenspeicher erfährt, dass Aktualisierung stattfand z.b. Invalidierungsnachricht vgl. erste DSM-Implementierung

Mehr

Übung 14. Tutorübung zu Grundlagen Datenbanken (Gruppen DO-T24 / DO-T31 WS 2016/2017)

Übung 14. Tutorübung zu Grundlagen Datenbanken (Gruppen DO-T24 / DO-T31 WS 2016/2017) Übung 14 Tutorübung zu Grundlagen Datenbanken (Gruppen DO-T24 / DO-T31 WS 2016/2017) Dennis Fischer dennis.fischer@tum.de http://home.in.tum.de/fischerd Technische Universität München Fakultät für Informatik

Mehr

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle

Mehr

Aufbau Datenbanksysteme

Aufbau Datenbanksysteme Aufbau Datenbanksysteme Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Speichersystem c Ingo Claßen, Martin Kempa Softwarearchitektur

Mehr

5. Aufgabenblatt Speicherverwaltung

5. Aufgabenblatt Speicherverwaltung Faculty of Computer Science Institute for System Architecture, Operating Systems Group Betriebssysteme und Sicherheit, WS 0/. Aufgabenblatt Speicherverwaltung Geplante Bearbeitungszeit: drei Wochen Aufgabe.

Mehr

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset. Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für

Mehr

Integriertes Seminar Datenbanken und Informationssysteme. Was sind Peer-to-Peer Systeme? Wie kann man diese effizient nutzen?

Integriertes Seminar Datenbanken und Informationssysteme. Was sind Peer-to-Peer Systeme? Wie kann man diese effizient nutzen? Integriertes Seminar Datenbanken und Informationssysteme P2P-Computing Lehrgebiet Datenverwaltungssysteme Prof. Dr. Dr. h.c. Härder Prof. Dr. Deßloch Björn Jung b_jun@informatik.uni-kl.de Technische Universität

Mehr

Anfragebearbeitung. Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1

Anfragebearbeitung. Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1 Anfragebearbeitung Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1 Ablauf der Anfrageoptimierung Deklarative Anfrage (SQL) Scanner Parser Sichtenauflösung Algebraischer Ausdruck

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2014W Übungsgruppen: Mo., 12.01. Mi., 14.01.2015 Aufgabe 1: Cache-Adressierung Ein Prozessor mit einer Adresslänge von 20 Bit

Mehr

Verteilte Systeme. Replikation & Konsistenz I. Prof. Dr. Oliver Haase

Verteilte Systeme. Replikation & Konsistenz I. Prof. Dr. Oliver Haase Verteilte Systeme Replikation & Konsistenz I Prof. Dr. Oliver Haase 1 Überblick Replikation & Konsistenz I Ziele von Replikation Replikationsmodelle datenzentriert Client-zentriert Replikation & Konsistenz

Mehr

Virtueller Speicher WS 2011/2012. M. Esponda-Argüero

Virtueller Speicher WS 2011/2012. M. Esponda-Argüero Virtueller Speicher WS / Virtuelle Speicher Bis jetzt sind wir davon ausgegangen, dass Prozesse komplett im Hauptspeicher gelagert werden. Speicherreferenzen sind nur logische Adressen, die dynamisch in

Mehr

Praktische SQL-Befehle

Praktische SQL-Befehle Praktische SQL-Befehle Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Nested Selects Inserts Updates Views Triggers Constraints Functions Voraussetzung: Laptop + MySQL/

Mehr

Replikation in einem homogenen strukturierten Chord Peer-to-Peer Netz

Replikation in einem homogenen strukturierten Chord Peer-to-Peer Netz INSTITUT FÜR KOMMUNIKATIONSNETZE UND RECHNERSYSTEME Prof. Dr.-Ing. Dr. h. c. mult. P. J. Kühn Replikation in einem homogenen strukturierten Chord Peer-to-Peer Netz VFF IND/IKR-Workshop Andreas Reifert,

Mehr

Partitionierungsstrategien für Data Vault

Partitionierungsstrategien für Data Vault ierungsstrategien für Data Vault Dani Schnider Trivadis AG Zürich/Glattbrugg, Schweiz Einleitung Während das Laden von Tabellen in Data Vault in der Regel nicht zeitkritisch ist, stellt uns das effiziente

Mehr

Aufgabe 1: Min-Hashing

Aufgabe 1: Min-Hashing Aufgabe 1: Min-Hashing In dieser Aufgabe geht es darum, Kunden auf Grund ihrer bestellten Teile zu vergleichen. Kunden werden im TPC-H-Schema etwa durch die Spalte c_custkey in der Tablle customer identifiziert,

Mehr

Aufgabe 1 Sicherheit. Klausur Betriebssysteme und Sicherheit, Name: Matrikel-Nr.: Studiengang: 7 Punkte

Aufgabe 1 Sicherheit. Klausur Betriebssysteme und Sicherheit, Name: Matrikel-Nr.: Studiengang: 7 Punkte Klausur etriebssysteme und Sicherheit, 31.07.2014 1 2 3 4 5 6 7 6 7 6 8 8 42 Aufgabe 1 Sicherheit 7 Punkte a) Nennen Sie die drei Haupt-Schutzziele in der atensicherheit! 1 P b) Nennen Sie einen Vorteil

Mehr

Optimierung von Datenbanken

Optimierung von Datenbanken Optimierung von Datenbanken Vortrag in Datenbanken II Bettina Keil 19. Juni 2008 Optimierung von Datenbanken 1/17 Gliederung Motivation Optimierung von Datenbanken 2/17 Motivation Performancesteigerung:

Mehr

Datenbanken Unit 5: Datenintegrität und funktionale Abhängigkeit

Datenbanken Unit 5: Datenintegrität und funktionale Abhängigkeit Datenbanken Unit 5: Datenintegrität und funktionale Abhängigkeit 23. IV. 2018 Outline 1 Organisatorisches 2 Relationale Algebra Notation 3 Datenintegrität 4 Funktionale Abhängigkeit 5 SQL Outline 1 Organisatorisches

Mehr

Korrekturen und Ergänzungen zur ABAP-Referenz

Korrekturen und Ergänzungen zur ABAP-Referenz Korrekturen und Ergänzungen zur ABAP-Referenz S. 41, zweiter Absatz In den Kapiteln 9 bis 41 beschreiben wir die... S. 147, 6.3.3.1 Neue Überschrift: Typen für Datenreferenzvariablen S. 148, 6.3.3.2 Neue

Mehr

Datenstrukturen und Algorithmen. Vorlesung 5

Datenstrukturen und Algorithmen. Vorlesung 5 Datenstrukturen und Algorithmen Vorlesung 5 Inhaltsverzeichnis Vorige Woche: Sortierte Listen Zyrkuläre Listen Verkettete Listen auf Arrays Heute betrachten wir: Skip Listen ADT Set ADT Map Iterator ADT

Mehr

Cache Blöcke und Offsets

Cache Blöcke und Offsets Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich

Mehr

Extreme Performance mit Oracle Times Ten

Extreme Performance mit Oracle Times Ten Extreme Performance mit Oracle Times Ten Agenda 1. Architektur und Übersicht 2. Details der Caching-Technologie 3. Skalierbarkeit, Antwortzeiten, Benchmarkergebnisse 4. Times Ten für die Oracle-Datenbank

Mehr

4.3 R-Bäume (I) Idee. basiert auf der Technik überlappender Seitenregionen verallgemeinert die Idee des B + -Baums auf den 2-dimensionalen Raum

4.3 R-Bäume (I) Idee. basiert auf der Technik überlappender Seitenregionen verallgemeinert die Idee des B + -Baums auf den 2-dimensionalen Raum 4.3 R-Bäume (I) Idee basiert auf der Technik überlappender Seitenregionen verallgemeinert die Idee des B + -Baums auf den 2-dimensionalen Raum Geo-Informationssysteme 98 4.3 R-Bäume (I) Definition Ein

Mehr

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

4. Objektrelationales Typsystem Kollektionstypen. Nested Table Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Gefädelte

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken 31. V. 2016 Outline 1 Organisatorisches 2 SQL 3 OLTP, OLAP, SAP, and Data Warehouse OLTP and OLAP SAP 4 Objekt-relationale Datenbanken Beispiel

Mehr

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

Universität Augsburg, Institut für Informatik Wintersemester 2008/2009 Prof. Dr. W. Kießling 03. Februar Semesterklausur

Universität Augsburg, Institut für Informatik Wintersemester 2008/2009 Prof. Dr. W. Kießling 03. Februar Semesterklausur Universität Augsburg, Institut für Informatik Wintersemester 2008/2009 Prof. Dr. W. Kießling 03. Februar 2009 Dr. A. Huhn, M. Endres, T. Preisinger Datenbanksysteme I Semesterklausur Hinweise: Die Bearbeitungszeit

Mehr

Datenbanken: Indexe. Motivation und Konzepte

Datenbanken: Indexe. Motivation und Konzepte Datenbanken: Indexe Motivation und Konzepte Motivation Warum sind Indexstrukturen überhaupt wünschenswert? Bei Anfrageverarbeitung werden Tupel aller beteiligter Relationen nacheinander in den Hauptspeicher

Mehr

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente Lage zweier Segmente Prüfung auf Schnittfreiheit Formeln zum Geradenschnitt Feststellen des

Mehr

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente! Lage zweier Segmente! Prüfung auf Schnittfreiheit! Formeln zum Geradenschnitt! Feststellen

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Einführung in die STL

Einführung in die STL Einführung in die STL Fimberger Lucia lfimberg@cosy.sbg.ac.at Nidetzky Marion mnidetzk@cosy.sbg.ac.at Was ist die STL? Abkürzung für Standard Template Library Eine generische Bibliothek Ist kaum objektorientiert,

Mehr

Übungsblatt 8 Lösungsvorschläge

Übungsblatt 8 Lösungsvorschläge Prof. Dr. T. Härder Fachbereich Informatik Arbeitsgruppe Datenbanken und Informationssysteme Universität Kaiserslautern Übungsblatt 8 Lösungsvorschläge für die freiwillige Übung Unterlagen zur Vorlesung:

Mehr

Performance Verbesserung BIRT-BERICHTE

Performance Verbesserung BIRT-BERICHTE ClassiX Software GmbH Performance Verbesserung der BIRT-BERICHTE Tipps zur Performance Verbesserung der Berichte unabhängig von der Engine Jana Fischereit 21.01.2013 1 Inhalt 2 Allgemeine Aussagen... 2

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 24.01.2013 Online Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

Programmiertechnik II

Programmiertechnik II Sortieren: Einfache Algorithmen Sortieren Abstrakte Operation geg: Menge von items (Elemente) jedes Element besitzt Sortierschlüssel Schlüssel unterliegen einer Ordnung eventuell sind doppelte Schlüssel

Mehr

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR #7 Terminchaos Nächste Vorlesungen: 27. 5. Vertretung durch Prof. Fekete 3. 6. Exkursionswoche 10. 6. Vertretung durch N.N. 17. 6. back to normal... Experiment Durchlaufe zwei gleichgrosse Arrays: Sortierte

Mehr

Physische Datenorganisation

Physische Datenorganisation Physische Datenorganisation Speicherhierarchie Hintergrundspeicher / RAID ( B-Bäume Hashing R-Bäume ) Kapitel 7 1 Überblick: Speicherhierarchie Register Cache Hauptspeicher Plattenspeicher Archivspeicher

Mehr

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1

Informatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss

Mehr

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)

Mehr

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp 5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries

Mehr

Abschluss Einblick und Ausblick

Abschluss Einblick und Ausblick Abschluss Einblick und Ausblick Prof. Dr. T. Kudraß 1 Benutzer Komponenten eines DBMS (Überblick) I/O-Prozessor Output-Generierung Parser für selbst. oder eingebettete Kommandos Precompiler Autorisierungs-Kontrolle

Mehr

2. Architektur verteilter Datenbanksysteme

2. Architektur verteilter Datenbanksysteme 2. Architektur verteilter Datenbanksysteme Verteilte Datenbank, kurz DDB (engl. distributed database): eine Sammlung logisch zusammengehöriger Datenbanken, welche über Rechnerknoten ( Sites ) verteilt

Mehr

Kapitel 1 Grundlagen. Skript zur Vorlesung: Datenbanksysteme II Sommersemester Vorlesung: PD Dr. Peer Kröger

Kapitel 1 Grundlagen. Skript zur Vorlesung: Datenbanksysteme II Sommersemester Vorlesung: PD Dr. Peer Kröger LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2016 Kapitel 1 Grundlagen Vorlesung: PD Dr. Peer Kröger http://www.dbs.ifi.lmu.de/cms/datenbanksysteme_ii

Mehr

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Konzepte von Betriebssystemkomponenten Referat am 24.11.2003 Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Gliederung Adressräume Page Faults Demand Paging Copy

Mehr

10. Datenbank Design 1

10. Datenbank Design 1 1 Die Hauptaufgabe einer Datenbank besteht darin, Daten so lange zu speichern bis diese explizit überschrieben oder gelöscht werden. Also auch über das Ende (ev. sogar der Lebenszeit) einer Applikation

Mehr

6. Datendefinition in SQL

6. Datendefinition in SQL 6. Datendefinition in SQL Datendefinition Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) CREATE VIEW / DROP VIEW Problemfälle

Mehr