1 Motivation ★ Replikation ◆ redundandes Vorhalten von Daten auf verschiedenen Knoten ■ Performanz, Skalierbarkeit ◆ lokaler Zugriff effizienter ◆ Aufteilung der Zugriffe auf viele Knoten F Replikation und Konsistenz ◆ z.B. Web-Caches ■ Verfügbarkeit ◆ solange ein Knoten zugreifbar, sind Daten verfügbar ◆ z.B. DNS-Server ■ Fehlertoleranz ◆ Maskierung von Knotenausfällen ◆ impliziert Konsistenz der Daten Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F 1 Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] 1.1 Probleme F 4 ■ Replizierter Code ◆ Konsistenz der Daten ◆ z.B. Implementierung mathematischer Funktionen ◆ Schreiboperationen wirken nur lokale ◆ problemlos, da unveränderlich ◆ zusätzliche Maßnahmen notwendig ■ Replizierte Daten ▲ Konsistenzsicherung ◆ unveränderliche Daten: problemlos ◆ zusätzliche Operationen ◆ veränderliche Daten: problematisch ◆ zusätzliche Interaktionen ◆ z.B. replizierte Variable für den Firmengewinn ◆ Beeinträchtigung der Performanz • Schreiboperation nicht atomar für alle Replikate durchführbar (im Gegensatz zu lokalem nichtrepliziertem Speicher) ▲ Nebenläufigkeit ◆ Konsistenzsicherung durch Nebenläufigkeit erschwert ◆ z.B. mehrere nebenläufige Schreibzugriffe von verschiedenen Knoten auf mehrere Replikate Verteilte Betriebssysteme Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. 2 1.2 Was wird repliziert? ▲ Redundante Daten 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm F Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F 3 • nebenläufige Lese- und Schreibzugriffe u.U. inkonsistent, weil Aktualisierungen verspätet erfolgen (im Gegensatz zu lokalem nichtrepliziertem Speicher) Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] 1.2 Was wird repliziert? (2) 2 Datenzentrierte Konsistenzmodelle ■ Replizierte Objekte ■ Traditioneller Konsistenzbegriff ◆ Objekte kapseln Daten und Operationen (Code) ◆ Zugriff auf gemeinsamen Speicher ◆ Datenzugriff nur über Operationen ◆ Zugriff auf verteilten gemeinsamen Speicher ◆ Replikation veränderlicher Objektdaten problematisch ◆ Zugriff auf verteilte gemeinsame Datenbanken ◆ aber: Operationen sind systemweit einzige Zugriffspunkte ◆ Zugriff auf verteilte gemeinsame Dateien • leichtere Eingriffsmöglickeiten für Konsistenzmaßnahmen ■ Verallgemeinerung • Konsistenzmaßnahmen betreffen nur Objektimplementierung nicht Aufrufer ◆ verteilter Datenspeicher ◆ jeder Prozess/Zugreifer hat lokale Kopie des Datenspeichers Prozesse lokale Kopien Datenspeicher Kommunikationsnetz nach Tanenbaum, van Steen Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F 5 Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F 6 Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. 2 Datenzentrierte Konsistenzmodelle (2) 2.1 Strenge Konsistenz ■ Konsistenzmodell ■ Vertrag (Strict Consistency) ◆ Vertrag zwischen Prozesse und Datenspeicher ◆ Lesezugriff auf ein Datum liefert den Wert des letzten Schreibzugriffs. • Zugriffsregeln für Prozesse ■ Natürliche Definition für Monoprozessoren • Eigenschaften der beim Lesezugriff zurückgegebenen Daten (z.B. Wert des letzten Schreibzugriffs) ◆ im Verteilten System nicht natürlich ◆ Modell schränkt mögliche Werte beim Lesezugriff ein ▲ Problem ◆ benötigt globalen Zeitbegriff: in der Regel unmöglich • wenig Einschränkungen: leicht zu nutzendes Modell – aber meist nur ineffizient implementierbar ◆ Lese-Schreib-Konflikte, Schreib-Schreib-Konflikte zwischen nebenläufigen Operationen (ähnlich wie bei Transaktionen) • starke Einschränkungen: schwer zu nutzendes Modell – aber meist auch effizient implementierbar • Reihenfolge nicht eindeutig, falls Zeitsynchronisation zu schlecht • Speicherzugriff in der Regel kürzer als beste Abweichung bei Synchronisation Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F 7 Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F 8 2.1 Strenge Konsistenz (2) 2.1 Strenge Konsistenz (3) ■ Beispiel mit strikter Konsistenz ■ Erweiterung der Implementierung von C.2.9 virtueller Adressraum ◆ Implementierung eines verteilten gemeinsamen Speichers nach Abschnitt C.2.9 • keine Replikation ◆ Einführung von replizierten Speicherseiten • Lesezugriff holt Seite, löscht sie aber nicht beim Besitzer • auf beiden Seiten werden Schreibzugriffe gesperrt – Seite wird read-only eingetragen – Schreibzugriffe führen zu Unterbrechung ◆ Behandlung von Schreibzugriffen • Invalidieren aller anderen Replikate – Knoten müssen Einträge und Seite löschen 0 1 2 3 4 5 6 7 8 Kacheln im 0 Hauptspeicher 0 0 0 1 1 0 2 0 0 3 8 0 4 0 5 3 0 Read-Only 0 Präsenzbit physikalische Adresse SKT 2 1 1 1 0 5 1 0 0 0 0 3 1 3 0 2 5 4 0 0 1 0 1 1 1 1 0 Kacheln im 0 Hauptspeicher 0 0 4 0 1 0 2 5 0 3 2 0 4 7 0 5 6 0 0 • lokale Seite muss schreibbar gemacht werden logische Adresse • Schreibzugriff wird wiederholt ◆ Ergänzung des Read-Only-Bits in der Seitenkacheltabelle Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F 9 Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. 2.1 Strenge Konsistenz (4) 2.1 Strenge Konsistenz (5) ■ Ablauf beim Lesen SKT 0 2 1 1 1 1 2 0 3 5 1 4 0 5 0 6 Lesen (1) 0 7 0 8 3 1 logische Adresse F 10 ■ Ablauf beim Lesen (fortges.) Kacheln im 0 Hauptspeicher 0 0 0 1 1 0 2 0 0 3 8 0 4 0 5 3 0 0 SKT 3 0 2 5 4 0 0 1 0 1 1 1 1 0 Kacheln im 0 Hauptspeicher 0 0 4 0 1 0 2 5 0 3 2 1 4 7 0 5 6 0 0 Seite nur lesbar setzen (3) virtueller Adressraum virtueller Adressraum SKT 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F SKT 2 1 1 1 0 5 1 0 0 0 0 3 1 Kacheln im 0 Hauptspeicher 0 0 0 1 1 0 2 0 0 3 8 0 4 5 0 5 3 0 0 eintragen in Speicher (5) logische Adresse Anfrage (2) Verteilte Betriebssysteme 0 1 2 3 4 5 6 7 8 11 SKT 3 0 2 5 4 0 0 1 0 1 1 1 1 0 Kacheln im 0 Hauptspeicher 0 0 4 0 1 0 2 5 0 3 2 1 4 7 0 5 6 0 0 Antwort mit Seite (4) Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F 12 2.1 Strenge Konsistenz (6) 2.1 Strenge Konsistenz (7) SKT 0 2 1 1 1 1 2 0 3 5 1 4 0 5 4 1 6 Lesen (7) 0 7 0 8 3 1 ■ Ablauf beim Schreiben Kacheln im 0 Hauptspeicher 0 0 0 1 1 0 2 0 0 3 8 1 4 5 0 5 3 0 eintragen 0 in SKT (6) logische Adresse SKT 3 0 2 5 4 0 0 1 0 1 1 1 1 0 Kacheln im 0 Hauptspeicher 0 0 4 0 1 0 2 5 0 3 2 1 4 7 0 5 6 0 0 virtueller Adressraum virtueller Adressraum ■ Ablauf beim Lesen (fortges.) logische Adresse Replikation Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] SKT 0 2 1 1 1 1 2 0 3 5 1 4 0 5 4 1 6 Schreib. (1) 0 7 0 8 3 1 F 13 Kacheln im 0 Hauptspeicher 0 0 0 1 1 0 2 0 0 3 8 1 4 5 0 5 3 0 0 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm 2.1 Strenge Konsistenz (9) virtueller Adressraum SKT Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. F 14 3 0 5 4 0 0 1 0 1 0 1 1 0 ◆ nur ein Prozess/Knoten/Zugreifer kann zu einem Zeitpunkt schreiben Kacheln im 0 Hauptspeicher 0 0 4 0 1 0 2 0 3 2 0 4 7 0 5 6 0 0 ◆ jedoch: drastisch ineffizient ■ Darstellung der Zugriffe zweier Prozesse P1 [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] W(x)a P2 R(x)a P1 schreibt Datum a mit Wert x Bestätige (4) Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm 5 4 ■ Implementierung streng konsistent Kacheln im 0 Hauptspeicher 0 0 0 1 1 0 2 0 0 3 8 0 4 5 0 5 3 0 0 Seite schreibbar setzen (5) logische Adresse 0 [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] 2.1 Strenge Konsistenz (8) 0 1 2 3 4 5 6 7 8 3 Kacheln im 0 Hauptspeicher 0 0 4 0 1 0 2 0 3 2 0 4 7 0 5 6 0 0 Seite löschen (3) Verteilte Betriebssysteme Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. SKT 2 1 1 1 0 5 1 0 4 1 Schreib. (6) 0 0 3 1 0 0 1 0 1 0 1 1 0 Invalidiere (2) Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. ■ Ablauf beim Schreiben (fortges.) SKT t P2 liest Wert x für Datum a ◆ Beispiel zeigt strenge Konsistenz F 15 Verteilte Betriebssysteme 2003-2004, Franz J. Hauck, Vert. Sys., Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. [2003w-VBS-F-Repl.fm, 2003-12-02 22.21] F 16