Verteilte Systeme Klausurvorbereitung

1. Transparenzeigenschaften

2. Kommunikationssysteme

  • ISO OSI
  • Wegwahlverfahren
    • statische Wegwahl
      • Dijkstra Algorithmus
    • adaptive Wegwahl
      • Hot-Potato-Routing
      • Backward-Learning
      • Vector distance
    • IP-Forward-Algorithmus
  • Internetprotokolle
    • IPv4 und IPv6
    • ARP
    • ICMP
    • Fragmentierung
    • TCP
      • 3-way-handshake
      • Transmission Control Block
      • Anpassung RTT
    • UDP
    • Ethernet-Frames

3. Interprozeßkommunikation

  • RPC
    • Stub → Ortstransparenz
    • RPC-Semantik → hängt vom Transportprotokoll ab
      • may be
      • at least once
      • at most once
    • Klassifikation
      • RR – request, response
      • RRA – request, response, acknowledgement
  • Sun RPC
    • XDR (Darstellungsschicht)
    • RPC-Bibliothek
    • Portmapper
    • rpcgen
  • Java RMI
    • Stub/Skeleton → Remote Reference Layer – Transport
    • basiert auf Objekt-Serialisierung
    • Registry
  • VMTP
  • Gruppenkommunikation
    • IP-Multicast
    • MBone (Truncated Reverse Path Multicasting)
    • IGMP
    • DVMRP
    • IP-in-IP-Tunneling
  • Mach
    • Microkernel
    • Tasks und Threads
    • Message Passing und Ports (global eindeutige Portadressen)
    • Copy-on-Write

4. Verteilte Dateisysteme

  • Ziele
    • Ortstransparenz
    • Performance
    • hohe Verfügbarkeit und Fehlertoleranz
    • einfache Erweiterbarkeit/Skalierbarkeit
    • Zugriffsoperationen
      • sequential Read/Write-Sharing
      • concurrent Read/Write-Sharing
  • Techniken
    • Remote Service ↔ Caching
    • zustandslos ↔ zustandsbehaftet
    • schreiben
      • write-through
      • write-on-close
      • delayed-write
    • server-initiierte ↔ client-initiierte Validierung
    • Naming – logische Dateinamen
  • NFS
    • NFS v2
      • zustandslos
      • client-initiierte Validierung mit Versionsnummern
      • write-through
    • NFS BSD
      • write-on-close bzw. alle 30s
      • TCP
    • NFS v3
      • „save asynchronouse write“
    • NFS v4
      • zustandsbehaftet
      • Mount und NLMP integriert
      • Replikation von Read-only-Daten
    • automount: amd und autofs
  • AFS
    • Venus + Vice
    • Volumes, Volume Location Database
    • logische Dateinamen
    • zustandsbehaftete Server
    • Caching mit client-initiierter Validierung
    • write-on-close
    • eigenes RPC-System
    • Volume Migration
  • Sprite
    • globales Dateisystem mit Domains
    • Caching mit client-initiierter Validierung
    • zustandsbehaftete Server
    • delayed write 30s
  • CODA
    • Replikationstransparenz
    • disconnected Operation
    • read-one-write-all
    • client-initiierte Validierung
    • client-initiierte Updates
    • Recovery Protokoll für unlösbare Konflikte

5. Synchronisationstechniken

  • Happened-Before-Relation
    • Vergangenheits-/Zukunftskegel
    • „Einführen einer totalen Ordnung“
  • zentraler Synchronisationsserver
  • Bully-Algorithmen
    • Datenkonsistenz wird nicht behandelt
    • Probleme bei Netzpartition
  • Tokenverfahren
    • Logischer Ring/Token Ring
    • !ToTem
    • Token on Demand/ Tokenwechsel auf Anforderung/ Floor Passing
  • Votierungsverfahren
    • Majority Consensus
      • LQ + SQ > S
      • 2SQ > S
      • Datenkonsistenz auch bei Partitionierung
      • Weighted Voting → mehr Stimmen für zuverlässige Server
  • NTP
  • Logische Uhren
    • Lamports logische Uhr
      • korrekt
      • nicht streng konsistent
    • abcast
    • Vektoruhr
      • streng konsistent
      • konsistenter globaler Schnitt lässt sich sofort angeben
      • kausal geordneter Multicast – cbcast
      • Ereignisse im kausalen Zusammenhang haben vergleichbare Vektoruhren
    • Komprimierte Vektoruhr
      • → Offline-Rekonstruktion der Vektorzeit
    • Matrixuhr
    • Coda Version Vector
      • erkennt Konflikte korrekt
  • Schnappschussverfahren
    • Problem: verlorene, verdoppelte, verwaiste Nachrichten
    • Marker Algorithmus
  • Fehlerquellen in Verteilten Systemen
    • Fail-Stop : 2 Zustände
    • Slowdown : 3 Zustände
    • Byzantinische Fehler : 4 Zustände
  • Verteiltes Commit-Protocol
    • Ziel: Maximal sicher
    • Recovery: System befindet sich stets in einem wohldefinierten Zustand
    • 2 Phase Commit
    • 3 Phase Commit

6. Lastverteilung

  • Lastmetriken
    • load (Glättung)
    • Geschwindigkeitsfaktor im Vergleich zur langsamsten/schnellsten Maschine
  • Lastverteilungsstrategien
    • !TopHost
    • Schwellwertverfahren
    • probabilistische Verfahren
    • Aufgabe: Selektion + Platzierung
    • empfänger- vs. sender-initiiert
    • adaptive vs. dynamische Lastverteilung
    • LSF, Condor, Mosix