Verteilte Systeme - HTWG Konstanz - AIN 5

Karteikarten für das Fach Verteilte Systeme von Prof. Dr. Haase

Karteikarten für das Fach Verteilte Systeme von Prof. Dr. Haase


Konrad Grüner
Diese Lernkarten behandeln grundlegende Konzepte und Herausforderungen verteilter Systeme auf Universitätsniveau. Sie konzentrieren sich auf Themen wie Prozesse, Server, Clients, Dienste, Konsistenz und Probleme bei der Kommunikation zwischen Komponenten. Die Karteikarten sind besonders nützlich für Studierende der Informatik, die sich mit verteilten Systemen und deren Architektur auseinandersetzen, um ein tieferes Verständnis für die Funktionsweise und Fehlerbehandlung in solchen Systemen zu erlangen.
Flashcards
104
Students
6
Language
German
Category
Computer Science
Level
University
Created / Updated
06.02.2016 / 26.01.2025

Lernkarten

Was ist das Systemmodel? (Replikas)

-Daten im System = Sammlung von Objekten
-jjedes logische objekt wird durch reihe physischer objekte realisiert(Replikate)
-Replikate müssen nicht jederzeit absolut identisch sein
-replikationsintelligenz kann in objekten platzirt sein oder auüerhalb(middleware)
-->anwendungsprogrammierer können frei von überlegungen zur replikation sein

Was ist ein Konsistenzmodell?

-legt fest in weclher Reihenfolge die verteilten Schreiboperationen von lesenden Prozessen gesehen werden
-Ideal: Prozess der REadausführt liest wert des letzten write
-Aber: was wenn keine globale Uhr?
-Lösung: verschiedene Konsistenzmodelle(nicht nur strikt)

Was gibt es für Konsistenzmodelle?

-Datenzentrierte: Sicht des Datenspeichers, geegnet für parallele Schreibzugriffe
-Clientzentriere:sicht des client,weniger starke annahmen,keine gleichzeitigen updates

Was gibt es für Datenzentrierte Konsistenzmodelle?

-Strikte Konsistenz
-sequentielle Konsistenz
-Kausale Konsistenz
-Fifokonsistenz

Was ist die Strikte Konsistenz?

-Jedes Read liefert als Ergebnis den wErt der global letzten writeoperation
-->konsequentestes Konsistenzmodell
-->benötigt absolute globale Zeit
-->nicht implementierbar!

Was bedeutet Sequenteielle Konsistenz?

-Jede gültige Kobination(Reihenfolge der Operationen pro Prozess bleibt erhalten) von Read- und Write-Operationen ist akzeptabel,solange alle Prozesse dieselbe Folge sehen

-schwächeres modell, implementierbar
-zeit spielt keine rolle

-->Gummibandmetahper(Zeit spielt keine Rolle solange interne Reihenfolgen erhalten bleiben)

Was bedeutet Kausale Konsistenz?

-Nur writeoperationen die potentiell in einem kausalen Verhältnis stehen müssen bei allen Prozessen in der selben Reihenfolge gesehen werden. Für nicht in dieser Beziehung stehende Operationen ist die Reihenfolge auf unterschiedlichen Rechner gleichgültig
-->schwächer als sequentielle
--"happened before Relation

Was ist die Fifokonsistenz?

-Schreibzugriffe einzerlner Prozesse werden von allen Prozessen in korrekter Reihenfolge gesehen, Schreibzugriffe verschiedener Prozesse können in unterschiedlicher Reihenfolge gesehen werden
-->abschwächung der kausalen Konsistenz
-Implementierung muss Reihenfolge nur pro Prozess sichersteleln
Vorteil: einfach, vollständig nebenläufiges lesen/schreiben,lokaler proz nicht aufgehalten

Nachteil: schwach konsistentes Verhalten

Was für ein Anwendungsgebiet haben Clientzentrierte konsistenzmodelle?

-verteilter datenspeicher der nur von wenigern prozessen geschrieben aber vielen gelsenen wird
-->keine schreib schreib konflikte, nur lese /schreib konflikte
-Häufig einsatz von Leserepllikas(Caches)

Was ist Eventual Consistency? Was sind die Probleme dabei?

bei clientzentrierten Konsistenzmodellen

-Wenn lange Zeit kein Update durchgeführt wird werden alle Replikas(Caches) nach und nach konsistent
Probleme:
-kann auftreten wen client replika wechselt
-->mobiler client updatet replika,wechselt ort, liest veraltete daten von anderer
-benutzer stellt inkonsistenz fest!
Lösung:
clientzentrierte Modelle bei denen für jeden Clent Konsistenz garantiwert wird, jedoch nicht für nebenläufigen Zugriff durch mehere Clients

Was ist monotones Lesen (Konsistenz)

-Konsistenz für monotones Lesen: wenn prozess den Wert einer Variable x liest wird jede weitere readoperation desselben prozesses denselben oder einenen neuerern WErt von x liefern
-->schreiboperationen müüssen auf anderen replikas vor dem nächsten lesen durch prozess wiederholte werden

Was bedeutet monotones schreiben? (konsistenz)

Konsistenz für monotones Schreiben: Eine Schreiboperation eines Prozesses in eine Variable x wird abgeschlossen bevor der selbe Prozess X erneut schreiben kann
-->gilt über verschiedene lokale kopien hinweg!
-Schreiboperation von P auf x1 muss auf S2 vor dem nächsten Schreiben von x durch P wiederholt werden

Was bedeutet Read Yor Writes Konsistenz?

-Ergebnis einer Schreiboperation von x wird für eine anschließende Leseoperation von x desselben Prozesses stets sichtbar ein

-ohne: pw für onlieshop geändert, zugang erst nach gewisser zeit möglich

Was bedeutet Writes Follow Reads Konsistenz?

-Eine schreiboperation eines Prozesses von x, die auf eine Leseoperation von x desselben Prozesses folgt, findet auf demselben oder einem aktuelleren WErt von x statt
->schreiboperationen diefür das Lesen von x1 relevant waren, müssen auf S2 vor dem nächsten Schreiben von x durch P wiederholt werden

was gibt es für Probleme bei der Platzierung der Replikatserver? Was für Ansätze?

-Optimierungsproblem:finde k beste von n möglichen standorten

--Qiu et al
--Radoslavov et al
--Szymaniakt et al

Wie lautet der Ansatz von Qiu et al? (replikatserver finden)

-berücksichtigt Cleintstandorte
-bestimmt entfernung von clients zu standorten(latenzzeit,bandbreite)
-platziert nach und nach server auf denjenigen verbliebenen standort der im durchschnitt allen clients am nächsten
-Aufwand: O(N²)
-->ungeeignet für Serverplatzierung im Fall von Flash Crowds, d.h. plötzlich gehäufte anfragen nach bestimmten Webseiten

Wie lautet der Ansatz von Radoslavov et al?

-ignoriert Clientstandorte
-berücksichtigt staddessen Topologie des internets
-internet aus Autonomen Systemen(AS) d.h. Systeme die dasselbe Routingprotokoll verwenden, von einer Organisation verwaltet werden
-platziert 1.server in größtem AS,auf Router mit den meisten Verknüpfungen, 2.Serverin zweitgrößtem As,..
-fpr gleichmäßig verteilte Clients genauso gut wie qiu et al
-Aufwand O(N²) -->ungeeignet für schnlelle Platzierungsberechnung

Wie lautet der Ansatz von Szymaniak et al?

-berücksichtigt Clentstandorte
-teilt Netz in Zellen auf
-sucht ClientCluster(Zellen mit vielen Clients)
-platziert Replikatserver in K größten Clustern
-Qualität hängt von Zellengröße bei Clustersuche ab
-ideale Zellengröße lässt sich aus druschn. Entfernung zwischen zwei knoten und k berechnen
-->geeignet für schnelle Platzierung bei Flash Crowds

Was gibt es für 3 verschiedene Arten von Replikaten?

-Permanente Replikate
-Server initiierte Replikate
-Client initiierte Replikate

Was sind Permanente Replikate?

-Grundlegende Menge von REpliakten, meist beim Deesing eines Datenspeichers schon angelegt
-entweder transparent repliziert(client merkt nix von)
oder mirroring (client scuht bewusst replikation aus)
-meist geringe Anzahl

Was sind server initiierte Replikate?

-kurzfristing initiiert bei hohem Bedarf, meist in der Netzregion wo bedarf auftritt
-schwierig: wann und wo sollen replikate erzeugt werden?
-Algorithmen verwenden dazu: name gesuchter dateien, anzahl/Herkunft Requests
-kann permanente Replikas ersetzen wenn garantiert, dass jedes Datum immer von mindestens einem Server vorrätig gehalten

Was sind Clientinitiierte Replikate?

-meist als (Client)cache bezeichnet
-management des chaches dem client überlasse,server kümmert sich nicht um Konsistenzerhaltung
-Zweck: Verbesserung Datenzugriffszeiten
-daten meist für begrenzte Zeit gespeichert
-Cache meist auf Clientmaschine üplaziert oder in näche vieler Clients(z.b. im LAN)

Was bedeutet Propagieren von Updates?

-Client führt Update generell auf einer Replika durch
-das update muss an alle anderen Replikas weitergegeben werden
-verschiedene design gesichtspunkte für entsprechende Protokolle:
-was wird zu den anderen Replikaten propagiert?
-pull,push oder leases eingesetzt?
-unicast oder multicast?

Was wird propagiert?

-Benachrichtigung das Update vorliegt
-->invalidation Protocols
-->wenig Bandbreite
-->gut wenn viele SChreib vs wenig lese operationen
-Transferiere Änderungsoperation zu anderen Servern
-->geringe Bandbreite
-->mehr rechenleistung auf Servern

Was bedeutet Push? (Replika propaganda)
Terminologie: Server= änderung vorgenommen, client: server der weiteres replikat beherrbergt oder Client

-Updates werden auf Initaitive des Servers verteilt
-Clients schicken keine Requests nach Daten
-Server muss Liste aller Clientcaches für jedes Datum aktuell halten
-Gut wenn hoher grad an konsistenz notwendig oder viele lese vs wenig schreiboperationen

Was bedeutet Pull? (Replikapropaganda)
Terminologie: Server= änderung vorgenommen, client: server der weiteres replikat beherrbergt oder Client

-Server/clients fragen nach neuen Updates für Daten
-oft von Clientchaches verwendet
-gut bei wenig lese vs viele schreiboperatioen oder wenn geringe Kohärenz erfoderlich
-längere Antwortzeiten bei Cache Miss

Was bedeutet Leases?(Replikaprpaganda)
Terminologie: Server= änderung vorgenommen, client: server der weiteres replikat beherrbergt oder Client

-Hybrid aus Push and Pull
-lease hat bestimmte Laufzeit
-während Laufzweit überträgt Server Änderung per Push
-danach muss client änderungen per pull abholen
-client kann neuen lease beantragen
-erlaubt dynamisches umschalten zwischen pull und push
-kriterien für lease-laufzeit:
-->änderungshäufigkeit: änderung selten: langes lease
-->Nachfragehäufigkeit: client fragt oft nach -->langes lease
-->serverlast: serverlast gering -->lange Leases

Was bedeutet Unicast? (replikaverteilung)

-sende Nachricht mit demselben Inhalt an jeden Replikaserver
-->besser zu pull, wo immer nur ein Server nach einer neuen Version eines Datums fragt

Was bedeutet Multicast? (replikapropaganda)

-sende nur eine Nachricht, überlasse dem Netz die verteilung
-->effizienter als unicast (insofern implementiert=
-->meist mit pushprotokollen verbunden, server als multicastgruppe organisiert

Was gibt es für Arten von Konsistenzprotokollen?

-datenzentrierte Konsistenzprotokolle
-Clientzentrierte Konsistenzprotokolle

Was gibt es für Datenzentrierte Konsistenzprotokolle?

-wei Ansätze:
urbildbasierte Protokolle
-->remote-write-protokolle
-->local-write-protokolle
protokolle für relizierte schreibvorgänge
-aktive replikation
-quorum basiert

Was sind Urbildbasierte Protokolle?

-wenn alle writeoperationen immer nur an eine Kopie gehen, kann man unterscheinen ob die Primärkopie
-immer am selben entfernten Platz bleibt: Remote Write Protokolle
-zu de schreibenden Client verlagert: Local Write Protokolle

WAs sind Remote-Write-Protokolle?

-alle Updates auf einem entfernten Urbildserver
-Leseoperationen auf lokalen Kopien
-Wenn client Datum x ändern möchte:
-->lokaler Server S leitet Änderung an Urbildserver U weiter
-->U macht änderung, informiert alle Kopien
-->Jede Kopie macht Änderung, sendet ACK an U
-->Nachdem alle ACKs eingetroffen: U sendet ACK an S

Problem: Performance(darum non-blocking Update -->achtung: fehlertoleranz!)
-beste umsetzung für sequentielle Konsistenz

Was sind Local-Write-Protokolle?

-Jeder Prozess, der ein Update ausführen will, lokalisiert das urbild und bwegt dieses an seinen eigenen platz
-gutes Modell auch fpr mobile benutzer:
-->hole urbild ab, breche verbindung ab, arbeite, baue später veindung wieder auf, keine zwischenzeitliche änderung durch andere prozesse,andere prozesse können weiterhin lesen

Was sind replizierte SChreibvorgänge?

-writeoperationen können auf belibeigen Replikaten ausgeführt werden
-muss entschieden werden welches richtiger wert eines datums
Zwei Ansätze:
-aktive replikation: operation an alle Replikas weitergeben
-Quorumbasiert: abgestimmt, mehrheit gewinnt

Was ist aktive Replikation?

-Jede Replika besitzt Prozess der Updates durchführt
-Updates meist als Operation propagiert
-wichtigestes Problem: alle updates auf allen Replikas in selber Reihenfolge!
-->multicast mit toater Ordnung benötigt(z.b. LamportUhr)
- skaliert schlecht

-alternativ: zentraler Prozess, übernimmt Sequentalisierung

Was bdeutet Quorum basierte Protokolle?

-Clients müssen vor Lese/Schreiboperation Erlaubnis meherer Server einholen

Was sind Clientzentrierte Konsistenzprotokolle?

-Jeder schreibvorgang W bekommt global eindietuge id
-pro clientc zwei Reihen von schreibvorgängen überwachen
-->Lesevorgangsreihe: Schreibvorgänge(aller)die für Lesevorgänge von C relevant
-->Schreibvorgangsreihe: Schreibvorgänge von C

Wie läuft ein Clientzentriertes Konsistenzprotokll ab?
(konsistenzerhaltungsprotokolle fr konsistenz für monotones lesen, monotones schreiben,readyourwrites,wiritesfollowreads) nach diesem SChema
: Lese- oder Schreiboperation
Lese oder Schreibvorgangsreihe

-Sobald client c lokale Operation auf Server S durchfprt bekommt S Cs
-S prüft ob alle relevanten Operationen aus lokal durchgeführt wurden
-Falls nein: kontaktiert S die Server die fehlende Pperationen aus durchgefphrt haben und hold diese nach oder die Operation wird an einen solchen Server delegiert
-Nach erfolgter Operation wird diese ggf. in Reihe aufgenommen

Was umfasst Sicherheit?

-Vertraulichkeit(Confidentially) : System gibt Infos nur an autorisierte Parteien (lesender Zugriff)

-Integrität(Integrity): System lässt Änderungen nur durch autorisierte Parteien zu (schreibender Zugriff)

Lernen