Überlegungen zum Verlust von Daten im Cache bei der Verwendung von Oplocks
Wenn ein Prozess über ein exklusives Oplock für eine Datei verfügt und ein zweiter Prozess versucht, die Datei zu öffnen, muss der erste Prozess die zwischengespeicherten Daten ungültig machen und Schreibvorgänge und Sperren leeren. Der Client muss dann das Opflock und den Zugriff auf die Datei aufgeben. Wenn während dieses Spülvorgangs ein Netzwerkfehler auftritt, gehen die Daten im Cache möglicherweise verloren.
-
Möglichkeit zum Datenverlust
Jede Anwendung mit Daten, die im Cache gespeichert sind, kann diese Daten unter den folgenden Umständen verlieren:
-
Die Verbindung wird über SMB 1.0 hergestellt.
-
Es hat einen exklusiven Auplock auf der Datei.
-
Es wird gesagt, dass entweder das oplock brechen oder die Datei schließen.
-
Während des Flushing des Schreib-Caches generiert das Netzwerk- oder Zielsystem einen Fehler.
-
-
Fehlerbehandlung und Schreibabschluss
Der Cache selbst hat keine Fehlerbehandlung - das tun die Anwendungen. Wenn die Anwendung einen Schreibvorgang in den Cache macht, ist der Schreibvorgang immer abgeschlossen. Wenn der Cache wiederum über ein Netzwerk auf das Zielsystem schreibt, muss davon ausgegangen werden, dass der Schreibvorgang abgeschlossen ist, weil die Daten verloren gehen.