www.wikidata.de-de.nina.az
Der Pufferpool ist der Pufferspeicher eines Datenbankmanagementsystems DBMS Haufig verwendete Teile einer Datenbank werden im Arbeitsspeicher zwischengelagert Dadurch kann die Anzahl von Zugriffen auf die Festplatte und damit die dafur benotigte Zeit reduziert werden Inhaltsverzeichnis 1 Konzept des Pufferpools 2 Funktionsweise 3 Anforderungen an den Pufferpool 4 Verschiedene Pufferpool Umsetzungen 4 1 Force No Force 4 2 Steal No Steal 4 3 Kombinationen 5 Konfiguration 6 EinzelnachweiseKonzept des Pufferpools BearbeitenDer Pufferpool ist ein Cache der Teile einer Datenbank im Arbeitsspeicher zwischenlagert Dabei werden die Lokalitatseigenschaften der Prozesse ausgenutzt welche auf die Datenbank zugreifen Die Geschwindigkeit kann so gegenuber dem direkten Festplattenzugriff deutlich gesteigert werden Funktionsweise BearbeitenEin DBMS verwaltet die Informationen der Datenbank in Dateneinheiten fester Grosse Diese werden als Seiten oder Pages bezeichnet In einer Seite konnten z B mehrere Zeilen einer Tabelle enthalten sein Auf dem Festspeicher werden Daten blockweise gespeichert Die Grosse einer Seite ist meist ein Vielfaches der Grosse eines Datenblockes der Festplatte Die Verdrangungsstrategie entscheidet welche Seite im Pufferpool ersetzt wird falls eine Seite von der Festplatte in den Pufferpool geladen werden soll In der Regel kommt LRU Least Recently Used zum Einsatz Anforderungen an den Pufferpool BearbeitenDie vier ACID Eigenschaften definieren die Anforderungen an Transaktionen Insbesondere die beiden Eigenschaften Atomaritat und Dauerhaftigkeit haben Auswirkungen auf den Pufferpool Die Isolation ist nicht Aufgabe des Pufferpools Diese muss uber Locking Algorithmen erreicht werden Bei dem Betrieb eines DBMS konnen viele Probleme auftreten welche dazu fuhren dass der Arbeitsspeicher verlorengeht So zum Beispiel Ausfalle der Stromversorgung defekte Computerkomponenten Softwarefehler etc Geht der Arbeitsspeicher verloren so verliert man den Pufferpool und insbesondere all jene Seiten welche verandert aber noch nicht zuruck auf die Festplatte geschrieben wurden Gehorten diese Daten zu einer erfolgreich beendeten Transaktion ist die ACID Anforderung der Dauerhaftigkeit nicht erfullt Ausserdem darf dabei die ACID Eigenschaft der Atomaritat nicht verletzt werden Die Anderungen an der Datenbank von Transaktionen welche zum Zeitpunkt des Ausfalls nicht erfolgreich abgeschlossen waren mussen vollstandig ruckgangig gemacht werden konnen Verschiedene Pufferpool Umsetzungen BearbeitenDie Art wie ein Pufferpool implementiert wird kann sich von DBMS zu DBMS stark unterscheiden Fur einige Methoden und Strategien werden im Zusammenhang mit dem Pufferpool spezielle Begriffe eingesetzt 1 Force No Force Bearbeiten Die Force Methode ist eine einfache Methode um die Dauerhaftigkeit von Transaktionen zu gewahrleisten Dazu werden am Ende einer Transaktion wahrend des commit Prozesses alle Seiten welche wahrend der Transaktion verandert wurden auf die Festplatte geschrieben Die Verwendung der Force Methode fuhrt somit dazu dass fur jede verandernde Transaktion relativ langsame Schreiboperationen notwendig sind Entsprechend gibt es die No Force Methode Dabei brauchen am Ende einer Transaktion keine Seiten auf die Festplatte geschrieben zu werden Verandern mehrere Transaktionen dieselbe Seite so braucht diese nicht jedes Mal gespeichert zu werden Die Leistung des DBMS kann somit erhoht werden Allerdings bietet No Force keine garantierte Dauerhaftigkeit diese muss anderweitig sichergestellt werden Steal No Steal Bearbeiten Mit der No Steal Methode kann auf einfache Weise die Atomaritat der Transaktionen gewahrleistet werden Solange die Transaktion noch aktiv ist werden die veranderten Seiten der Transaktion nicht auf die Festplatte ubertragen Alle Veranderungen geschehen ausschliesslich im Pufferpool Bei einem Ausfall geht der Pufferpool verloren und die Veranderungen aller laufenden Transaktionen mit ihm Dies kommt einem Rollback dieser Transaktionen gleich Auf der Festplatte befinden sich somit nur Seiten vollstandiger Transaktionen Die Atomaritat ist somit gewahrleistet Die No Steal Methode hat den Nachteil dass viele Seiten im Pufferpool blockiert sind Denn wenn die Anderungen nicht auf die Festplatte ubertragen werden durfen kann die Seite auch nicht aus dem Pufferpool entfernt werden um einer anderen Seite Platz zu machen Der Platz im Pufferpool kann dadurch schnell an seine Grenzen kommen Die Menge der Daten welche in einer Transaktion verandert werden kann ist durch die Grosse des Pufferpools beschrankt Die meisten Veranderungen mussen aber spater sowieso in den Sekundarspeicher geschrieben werden da Abbruche von Transaktionen die Ausnahme darstellen Diese Seiten im Pufferpool zu halten ist deshalb meistens unnotig Entsprechend erlaubt die Steal Methode Seiten laufender Transaktionen auf die Festplatte zu schreiben Man stiehlt einer laufenden Transaktion sozusagen einen Platz im Pufferpool Der Pufferpool kann dadurch effizienter genutzt werden Die Atomaritat ist aber nicht mehr gewahrleistet und muss anders umgesetzt werden Kombinationen Bearbeiten In der Praxis wird meist die Kombinationen Force und No Steal oder No Force und Steal verwendet Force und No Steal ist einfach umzusetzen erreicht aber nicht die Leistung von No Force und Steal Insbesondere konnen bei Force und No Steal keine zwei Transaktionen auf derselben Seite im Pufferpool arbeiten Bei den grossen DBMS Systemen wird aus diesem Grund meist No Force und Steal verwendet auch wenn dieses aufwendiger in der Entwicklung ist Ein bekannter Algorithmus um die ACID Eigenschaften trotz No Force und Steal zu erhalten ist ARIES Algorithms for Recovery and Isolation Exploiting Semantics Dieser basiert auf einem Protokoll welches sowohl das Wiederherstellen als auch das Ruckgangigmachen von Veranderungen ermoglicht um nach einem Ausfall wieder einen den ACID Eigenschaften entsprechenden Stand zu erhalten Konfiguration BearbeitenDie meisten DBMS bieten Moglichkeiten den Pufferpool auf die eigenen Bedurfnisse anzupassen Der wichtigste Parameter ist die Grosse des Pufferpools Je mehr Seiten er aufnehmen kann desto schneller kann mit der Datenbank gearbeitet werden allerdings steigt auch der Bedarf an Arbeitsspeicher Bei einigen DBMS konnen auch die Methoden zur Erhaltung der ACID Eigenschaften manipuliert werden Insbesondere Systeme welche die No Force und Steal Methoden verwenden bieten meistens eine Moglichkeit an um eine Datensicherung im laufenden Betrieb zu ermoglichen Dabei werden die ACID Eigenschaften auch erhalten wenn vom Festspeicher eine Kopie erstellt wird wahrend das DBMS lauft Dies wird als Hot Backup bezeichnet Einzelnachweise Bearbeiten Theo Harder und Erhard Rahm Datenbanksysteme Konzepte und Techniken der Implementierung 2 Auflage 2001 Abgerufen von https de wikipedia org w index php title Pufferpool amp oldid 222917684