Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » RPC   (Übersicht)

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.)