!--a11y-->
Beispiel zur Puffersynchronisation 
Das folgende Beispiel zeigt, wie die lokalen Puffer des Systems synchronisiert werden. Wir gehen von einem System mit zwei Applikationsservern aus, die wir im folgenden als Server1 und Server2 bezeichnen.
Ausgangssituation: Beide Server haben bisher noch nicht auf Sätze der vollständig gepufferten Tabelle TAB zugegriffen. Die Sätze der Tabelle sind deshalb noch nicht in den lokalen Puffern der beiden Server enthalten.
Zeitpunkt 1: Server 1 liest Sätze aus der Tabelle TAB auf der Datenbank.
Zeitpunkt 2: Die Tabelle TAB wird vollständig in den lokalen Puffer von Server 1 geladen. Zugriffe von Server 1 auf die Daten der Tabelle TAB laufen nun über den lokalen Puffer dieses Servers.
Zeitpunkt 3: Server 2 greift auf Sätze der Tabelle zu. Da sich die Tabelle noch nicht im lokalen Puffer von Server 2 befindet, werden die Sätze direkt von der Datenbank gelesen.
Zeitpunkt 4: Die Tabelle TAB wird in den lokalen Puffer von Server 2 geladen. Damit greift auch Server 2 beim nächsten Lesen über seinen lokalen Puffer auf Daten aus TAB zu.

Zeitpunkt 5: Server 1 löscht Sätze aus der Tabelle TAB und aktualisiert die Datenbank.
Zeitpunkt 6: Server 1 schreibt einen Eintrag in die Synchronisationstabelle.
Zeitpunkt 7: Server 1 aktualisiert seinen lokalen Puffer.

Zeitpunkt 8: Server 2 greift auf die gelöschten Datensätze zu. Da sich die Tabelle TAB in seinem lokalen Puffer befindet, erfolgt der Zugriff über diesen lokalen Puffer.
Server 2 findet also die Sätze, obwohl diese in der Datenbanktabelle nicht mehr vorhanden sind!
Würde der gleiche Zugriff von einem Anwendungsprogramm auf Server 1 ausgeführt, so würde dieses Programm erkennen, daß die Sätze nicht mehr vorhanden sind. Zu diesem Zeitpunkt hängt das Verhalten eines Anwendungsprogramms also davon ab, auf welchem Server es läuft!

Zeitpunkt 9: Der Synchronisationszeitpunkt ist erreicht. Beide Server sehen in der Synchronisationstabelle nach, ob eine der Tabellen in ihrem lokalen Puffer inzwischen von einem anderen Server verändert wurde.
Zeitpunkt 10: Server 2 stellt fest, daß die Tabelle TAB in der Zwischenzeit von Server 1 verändert wurde. Server 2 invalidiert deshalb die Tabelle in seinem lokalen Puffer. Der nächste Zugriff von Server 2 auf Daten der Tabelle TAB geht deshalb über die Datenbank. Server 1 muß die Tabelle in seinem Puffer nicht invalidieren, da er selbst der einzige Änderer der Tabelle TAB ist. Server 1 greift also beim nächsten Zugriff auf Sätze der Tabelle TAB erneut über seinen lokalen Puffer zu.

Zeitpunkt 11: Server 2 greift erneut auf Sätze der Tabelle TAB zu. Da TAB im lokalen Puffer von Server 2 invalidiert ist, erfolgt der Zugriff über die Datenbank.
Zeitpunkt 12: Die Tabelle wird erneut in den lokalen Puffer von Server 2 geladen. Die beiden Server und die Datenbank sind nun wieder konsistent bzgl. ihrer Informationen zur Tabelle TAB.
