VS - 7.5ECTS
Prüfer: Tobias Distler
Beisitzer: Michael Eischer
Die Prüfungsatmosphäre war sehr entspannt. Tobias hat die Fragen gestellt und Michael hat das Protokoll geführt. Note sehr gut.
Prinzipiell wurden nur Fragen gestellt, die bereits in anderen Prüfungsprotokollen (vs-2018-07-19, vs-2018-07-26) gelistet sind, hier aber trotzdem nochmal ein ausführlicheres Protkoll.
Allgemeines
RPC
Was sind die Komponenten eines Fernaufrufs?
Wie läuft so ein Fernaufruf ab?
Woher weiß der Stub, an wen er Requests schicken muss?
Woher kommt der Stub?
Wie geht man mit Parametern um?
gibt verschiedene Varianten (Eingabeparameter, Ausgabeparameter, Ein-Ausgabeparameter)
Besonderheit bei Referenzen
Wann könnte Objekte kopieren denn schneller sein als Fernaufrufe tätigen?
Semantiken
Wie geht man mit einem unzuverlässigen System um? Wir haben da mehrere kennengelernt
Habe mit MAYBE angefangen, da wurde nur gemeint ich darf die überspringen
AT-LEAST-ONCE
AT-MOST-ONCE (
Maybe (sollte ich gleich überspringen), At-Least-Once, At-Most-Once (wollte noch Last-Of-Many sagen wurde aber hier unterbrochen)
Wie funktioniert At-Most-Once genauer? Also wie geht man mit auf serverseite gespeicherten Antworten um?
Was macht man hier, wenn eine verzögerte Nachricht kommt, NACHDEM alles gelöscht wurde?
nicht nochmal berechnen (Verletzung der Semantik!!)
Timestamps mitsenden + vergleichen (hier ist allerdings nicht immer eindeutig, ob eine Anfrage mit altem Timestamp schon berechnet wurde → ignorieren und auf neue Anfrage warten)
Replikation
Welche Arten der Replikation kennen wir?
Wir hatten in der Übung den VSAuctionService implementiert. Was bräuchte man um diesen Dienst aktiv zu replizieren?
Gibts hier weitere Probleme?
Hier kam ich erstmal nicht darauf, aber er wollte im Endeffekt auf mögliche Quellen von Nichtdeterminismus, in diesem Fall: Timestamps beim Bieten + Auktionsdauer → Ein Replikat zum setzen/updaten der Timestamps
Mutlicast
Was ist der Unterschied zwischen zuverlässiger Multicast und uniform zuverlässiger Multicast?
Was genau bedeutet dies denn für den zuverlässigen Multicast?
Gibts da noch weitere Probleme?
Konsistenzen
Wir haben in den Übungen einen replizierten Key-Value-Storage gebaut. Welche Konsistenzen bietet und dieses System?
Warum?
Wie wäre das denn, wenn wir Leseanfragen direkt bei Replikaten ausführen könnten? Welche Konsistenzgarantien haben wir dann?
Könnte man hier Read-My-Writes bzw Monotonic Read erreichen?