Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » RPC
Inhaltsverzeichnis
VS - 7.5ECTS
Prüfer: Tobias Distler Beisitzer: Michael Eischer
Fragen wurden nur von Tobias gestellt, die Atmosphäre war entspannt und die Bewertung fair. Note sehr gut.
Vieles wie bei » vs-2018-07-19 «
- Punkte 1-3 Was ist ein VS, wie baut man RPC, was für Semantiken (At-Most-Once und … - Bleiben wir gleich bei At-Most-Once!)
- Punkte 6-7 Was passiert beim Knotenausfall? Welche Art von Replikation? Probleme mit Determinismus?
Fragen bei mir:
RPC
- Parameter? Was machen bei Referenzen?
- Remote-Ref oder Call-by-Value-Result
- Was ist besser?
- Kommt drauf an: Wie viel vom Objekt wird gebraucht? Wie groß ist es? Wie oft wird auf Felder/Methoden zugegriffen?
Semantiken
- Hier wurde sich nur für At-Most-Once interessiert: Wie geht es? Was macht man mit der Garbage Collection?
- Erklärt + gesagt was gespeichert wird
- Garbage Collection: Timeout, Bestätigung, dass Ergebnis mehr gebraucht wird
- Wie lange muss der Timeout sein?
- mindestens #Versuche * Client-Resend-Timeout + etwas Zeit als Puffer
- Was machen, wenn verzögerte Nachricht kommt, nachdem ALLES gelöscht wurde?
- War ne schwere Frage. Nach kurzem Nachdenken mit „Timestamps mitsenden/vergleichen“ geantwortet.
- Geht das? Wie genau sind Uhren?
- Ja, geht. Uhren im Lan ~ 1ms, im Internet ~ 10ms genaue Synchro, vgl. Resend-Timeout → Faktor 10-100 größer
Replikation
- Aktiv, Nichtdeterminismus: Was für Probleme gibt es?
- Nebenläufigkeit, Zeit, …
- Wann und wie ist Nebenläufigkeit ein Problem?
- Kann zu unterschiedlichen Ergebnissen UND Zuständen führen
Zuverlässiger Multicast vs uniformer zuverlässiger Multicast
- uniform zuverlässig: delivered ein Knoten, delivern alle Korrekten
- zuverlässig: fehlerhafter Knoten delivered und sendet an Client, der Rest bekommt davon nichts mit → Inkonsistenz!
Konsistenzen
- Welche Konsistenzen gibt es? Was unser VSReplica für Konsistenzen?
- Aufzählung + VSReplica → strong
Dann folgten noch ein paar Verständnisfragen bzw. Nachdenkfragen:
- Wenn unser Replica direkt antwortet bei GET() senden (→ keine Synchro, ohne die anderen Replicas zu fragen), was haben dann für weak Consistency? (Vgl erst schreiben, dann lesen, erst schreiben, dann bei anderem Replica lesen)
- erst schreiben, dann lesen: read-my-write, monotonic reads, consistent prefix
- erst schreiben, dann bei anderem Replica lesen: monotonic reads, consistent prefix, ABER: kein read-my-writes weil vmtl noch nicht ausgeführt
- Wie kann man hier read-my-writes erreichen?
- „Timestamps“ wären hier logisch: wenn read höheren Timestamp als pending writes hat, dann wartet das Replicat mit ader Antwort bis write-Timestamp passt (hier war dann die Zeit vorbei, wobei die Antwort vmtl noch nicht wirklich korrekt/komplett, aber der Prüfer war soweit zufrieden mit der Antwort.)