====== Verteilte Systeme (VS) 7.5 ECTS Prüfung 01.09.2021 ====== ===== Meta Information ===== * Vorlesung: Verteilte Systeme (VS) 7.5 ECTS, SS 21 * Datum: 01.09.2021 * Prüfungsform: mündlich * Prüfer: Tobias Distler / Laura Lawniczak * Note: 1.0 * Prüfungsvorbereitung: * Zusammenfassung während des Semesters erstellt * Hab die Zusammenfassung dann genutzt, um eine Woche vorher den Stoff nochmal zu lernen * Vorlesungsvideos nochmal paar Tage vorher durchgeschaut * Evaluation * Entspannte und freundliche Atmosphere. * Zeit ist gefühlt wie im Flug vergangen * Mehr Verständnisfragen als wirklich montones Abfragen von Wissen * Fragen waren aufgrund der vorherigen Prüfungsprotokolle keine Überraschung ===== Prüfung ===== ==== Verteilte Systeme Allgemein ==== * Was sind verteilte Systeme und welche Besonderheiten gibt es? > Verteilte Systeme: * Mehrere Rechner * Verbunden mit Netzwerk * Realisieren eine Aufgabe zusammen Besonderheiten: * Komplexere Fehler durch Netzwerkfehler * Heterogenität ==== Fernaufruf ==== * Wie funktioniert der Fernaufruf? > Stub und Skeleton erklärt. Aufrufprozedur erklärt * Woher weiß der Client wohin er Nachricht schicken muss? > Server-Adresse ist in Stub enthalten * Wann komm die Adresse in den Stub? > Wenn der Server den Stub dynamisch erzeugt * Welche Probleme können bei der Umwandlung in Nachrichten auftreten? > * Heterogenität * Format muss beiden bekannt sein * Programmiersprachen mit Doppeldeutigkeiten: z.B. C char* vs. char[] * Kann man in C keine Fernaufrufe realisieren? > Doch mittels IDL. Generieren der Stubs / Skeletons aus IDL-Spezifikation für verschiedene Programmiersprachen ==== Fehlersemantiken ==== * Welche Wege gibt es Netzwerkfehler zu tolerieren? > * Maybe (Eigentlich nicht wirklich tolerierbar) * At-Most-Once * At-Least-Once * Last-of-Many * Wie läuft die Garbage-Collection bei At-Most-Once? > * Nach Zeit: Client Versuche * Timout + Puffer * Wenn andere Anfrage von selben Aufrufer * Was wenn Netzwerk Anfragen bis zu Stunden verzögert (Lösung)? > Physischer Zeitstempel beim Versenden durch Aufrufer und Fehlermeldung oder Ignorieren der Nachricht, falls Zeitstempel zu alt * Haben wir dann so genaue Uhren? > Ja durch NTP (lokal 1ms, Internet 10ms) reicht locker aus * Könnte man auch logische Uhren nutzen? > Nein, logische Uhren können nicht zur Bestimmung des Alters genutzt werden ==== Replikation ==== * Welche Arten haben wir besprochen? > Aktiv und Passive Replikation + kurze Erklärung * Was braucht man, um Auktionsservice aus der Übung aktiv zu replizieren? > Raft + deterministischer Auktionsservice * Stellt Raft die Übertragungszeit nicht sicher? > Nein nur das Mehrheit der Replikate Anfrage irgendwann bekommen. * Wie machen wir den Service deterministisch? > Anführer bestimmt Zeitstempel und verteilt diesen mit Anfragen. Überprüfungen von Geboten mittels diesem Zeitstempel und nicht mit lokaler Replikat-Zeit * Wie wird sichergestellt, dass der Commit nach Ausfall des Anführers durch andere Argumente mitbekommt? > Mehrheit muss Bestätigen bevor Leader Commit macht und Anwendungen benachrichtigt. Bei Anführerwahl können nur Replikate mit aktuellen Log Anführer werden. Dementsprechend bekommen veraltete Replikate durch neuen Anführer vom Commit mit. * Unterschiede in Anführerwahl zwischen Raft und Paxos? > * Raft: siehe Frage vorher * Paxos: * Jeder kann Anführer werden * Aktualisieren des Zustands durch Wahl-Request antworten * Besonders: Auch eigentlich vorher veraltete Replikate können neuer Anführer werden