Anfang des Inhaltsbereichs

Funktionsdokumentation Synchronisation der lokalen Puffer  Dokument im Navigationsbaum lokalisieren

Verwendung

Die Tabellenpuffer befinden sich lokal auf jedem Applikationsserver des Systems. Damit entsteht die Notwendigkeit, dass die Pufferverwaltung Änderungen an gepufferten Objekten auf allen Applikationsservern des Systems nachziehen muss. Die folgende Abbildung zeigt das Basismodell der Beziehung zwischen einem Programm, einem Tabellenpuffer im Applikationsserver und der Datenbank.

Diese Grafik wird im zugehörigen Text erklärt

Funktionsumfang

Wird eine gepufferte Tabelle modifiziert, so wird sie im Puffer des Applikationsservers, von dem aus die Änderung durchgeführt wurde, synchron aktualisiert. Die netzweite Puffersynchronisation, d. h. die Synchronisation der Puffer aller anderen Applikationsserver, erfolgt mittels eines asynchronen Verfahrens.

Nach jeder Modifikation einer gepufferten Tabelle werden Einträge in eine zentrale Datenbanktabelle (DDLOG) geschrieben. Diese Einträge werden von jedem Applikationsserver in festen Zeitabständen gelesen.

Werden Einträge gefunden, die eine Änderung der von diesem Server gepufferten Daten anzeigen, so werden diese Daten invalidiert. Bei einem erneuten Zugriff auf die Daten werden diese dann direkt von der Datenbank gelesen.

Um zu verhindern, dass eine Tabelle permanent in den Puffer geladen und dort sofort wieder invalidiert wird, kann die Tabelle nach dem Invalidieren erst nach Ablauf einer Wartezeit wieder in den Puffer geladen werden.

Dieses Verfahren hat gegenüber einem synchronen Verfahren (jede Änderung an gepufferten Daten eines Servers wird sofort allen anderen Servern über das Netz bekannt gegeben) den großen Vorteil, die Netzlast des Systems gering zu halten. Würden die Puffer sofort nach jeder Änderung synchronisiert, müsste jeder Server jede Änderung an einer gepufferten Tabelle allen anderen Servern über das Netz mitteilen. Dies wirkt sich negativ auf die Performance aus.

Der Nachteil des Verfahrens gegenüber der synchronen Aktualisierung besteht darin, dass die Daten während der Zeitspanne zwischen zwei Synchronisationen nicht aktuell sind.

Hinweis

Das asynchrone Verfahren zur Puffersynchronisation schränkt die Zahl der Tabellen ein, die gepuffert werden können. Sie müssen bei der Einstellung der Pufferung für eine Tabelle folgende Punkte beachten:

        Es sollten nur solche Tabellen gepuffert werden, auf die sehr selten schreibend zugegriffen wird (die also meistens nur gelesen werden) oder für die temporäre Inkonsistenzen nicht von Bedeutung sind.

        Tabellen, deren Einträge sich oft verändern, dürfen nicht gepuffert werden. Ansonsten findet ein ständiges Invalidieren und Neuladen statt, was sich negativ auf die Performance auswirkt.

Achtung

Bei zentralen Systemen mit nur einem Applikationsserver ist es nicht notwendig, die Tabelle DDLOG mit den Modifikationen der gepufferten Tabellen zu füllen. Die Anweisungen INSERT DDLOG können ausgeschaltet werden, indem Sie den Profilparameter 'rdisp/bufrefmode' to 'sendoff,exeauto' setzen.

Siehe auch:

Beispiel zur Puffersynchronisation

 

 

 

Ende des Inhaltsbereichs