Motivation. Überblick. Motivation. Sequentielle Verfahren

Ähnliche Dokumente
Algorithmen und Datenstrukturen Suchbaum

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

Tutorium Algorithmen & Datenstrukturen

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Breiten- und Tiefensuche in Graphen

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Unterscheidung: Workflowsystem vs. Informationssystem

Bayeux. Dirk Ewerlin

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit:

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Binärbäume. Prof. Dr. E. Ehses,

Grundlagen verteilter Systeme

Moderne Methoden der KI: Maschinelles Lernen

Software ubiquitärer Systeme

CBLOCK: An Automatic Blocking Mechanism for Large-Scale De-duplication Tasks. Cathleen Ramson, Stefan Lehmann LSDD SS

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung

2. Lernen von Entscheidungsbäumen

Algorithmen und Datenstrukturen 2

OSEK/VDX NM (Network Management)

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Internet Routing. SS 2012 Grundlagen der Rechnernetze Internetworking

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007

Algorithmen & Datenstrukturen 1. Klausur

Datenstrukturen & Algorithmen

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Suchen und Sortieren

Programmieren I. Kapitel 7. Sortieren und Suchen

Laptop a location aware peer-to-peer overlay network Chi-Jen Wu, De-Kai Liu and Ren-Hung Hwang

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Algorithmen und Datenstrukturen

Grundsätzliches. Grundsätzliche Überlegungen zu Netzwerken Stand : Juli 2006

Überblick. Lineares Suchen

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

SS 2005 FAU Erlangen Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner

Programmiertechnik II

Vorlesung "Verteilte Systeme" Wintersemester 2000/2001. Verteilte Systeme. Empfänger Kommunikationssystem. Netzwerk

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D

9 Verteilte Verklemmungserkennung

IT-Systemelektroniker Arbeitskunde

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

PIWIN II. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler II. Vorlesung 2 SWS SS 08

Kommunikation. Sitzung /11. Dezember 2015

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Inhalte Informatik. I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen

Kapiteltests zum Leitprogramm Binäre Suchbäume

Wasserfall-Ansätze zur Bildsegmentierung

Gegeben Zieladresse, finde Nachbarknoten, an den Paket zu senden ist ("Routing-Tabelle")

Maximizing the Spread of Influence through a Social Network

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

9: Verteilte Algorithmen

8. Uninformierte Suche

Rechnernetze I. Rechnernetze I. 1 Einführung SS Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Graphen: Datenstrukturen und Algorithmen

Verteilte Systeme SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 7.

Suchen und Sortieren (Die klassischen Algorithmen)

Strategie zur Verfolgung einzelner IP-Pakete zur Datenflussanalyse

Primitive Datentypen

Prof. Dr. Th. Letschert CS5001. Verteilte Systeme. Master of Science (Informatik) - Formalisierungen, Logische Zeit - Th Letschert FH Gießen-Friedberg

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany Stammbaum. Stammbaum. Stammbaum

Übung Programmierung WS 2007/08 - Blatt 5

16. All Pairs Shortest Path (ASPS)

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

2 Java: Bäume. 2.1 Implementierung von Bäumen. 2.2 Implementierung eines binären Suchbaums. 2.3 Traversierung von Bäumen

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

OSEK/VDX Network Management

Datenzentrisches Routing und Directed Diffusion

Visualisierung paralleler bzw. verteilter Programme

Internet Routing. Grundprinzipien Statisches Routing Dynamisches Routing Routingprotokolle Autonome Systeme

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Künstliche Intelligenz Maschinelles Lernen

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Das Briefträgerproblem

Dienstgüte in Mobilen Ad Hoc Netzen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

WS 2009/10. Diskrete Strukturen

Kap. 4.2: Binäre Suchbäume

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

368 4 Algorithmen und Datenstrukturen

Zusammenschlüsse in verteilten Systemen. Überblick. Virtual Synchrony. Gruppenkommunikation

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Beispiel droidremoteppt

Architektur verteilter Anwendungen

Verteilte Systeme CS5001

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

IP routing und traceroute

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR

Rechnernetze I. Rechnernetze I. 4 LAN Switching SS Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Präfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel

Datenstrukturen und Algorithmen SS07

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

1 topologisches Sortieren

Modul 3: Grundlegende Begriffe

Übungen zur Android Entwicklung

Transkript:

Überblick Motivation Wahlalgorithmen Motivation Grundlagen Chang-Roberts-Algorithmus Wellenverfahren Adoptionsverfahren Problem: Wahl eines Anführerknotens szenarien Koordinierung verteilter Aktionen Erzeugung systemweit eindeutiger Token Anlässe Initialisierung im Rahmen des Systemstarts Neukonfigurierung als Reaktion auf Fehler Verwandtes Problem: Bestimmung einer maximalen Knoten-ID Anforderungen Eindeutigkeit: Zu jedem Zeitpunkt ist maximal ein Knoten der Anführer Terminierung: Bestimmung des Anführers erfolgt in endlicher Zeit Zusätzliche Kriterien (e) Deterministischer Wahlalgorithmus Benachrichtigung aller Knoten über das Ende bzw. Ergebnis der Wahl c td VS (SS) Wahlalgorithmen Motivation Systemmodell Verteiltes System mit potenziell sehr vielen Knoten Knoten Gesamtzahl aller Knoten ist unbekannt Jeder Knoten hat eindeutige ID Nicht alle Knoten sind kontinuierlich Teil des Systems Unterschiedliche Netztopologien Ring Baum Beliebige Strukturierung Nicht jeder Knoten ist notwendigerweise mit jedem anderen verbunden Herausforderungen Wie kann eine Wahl in nicht vollvermaschten Systemen realisiert werden? Wie lässt sich die Effizienz durch Wissen über die Netztopologie steigern? Wie wählt man einen Anführer in Systemen mit komplexer Netztopologie? c td VS (SS) Wahlalgorithmen Motivation c td VS (SS) Wahlalgorithmen Motivation Sequentielle Verfahren Tiefensuche auf Bäumen public class VSNode { private final int id = [ID des lokalen Knotens]; private final List<VSNode> children = [Liste der Kindknoten]; public int findmaxid() { int maxid = id; for(vsnode child: children) { int childmaxid = child.findmaxid(); if(maxid < childmaxid) maxid = childmaxid; } return maxid; } } Tiefensuche auf beliebigen Topologien () Ein Initiatorknoten empfängt ein Token über eine virtuelle Kante k init Empfang des Tokens durch Knoten i über eine Kante k Erstmaliger Empfang: Eintrag von i ins Token, merken der Kante k first := k Weitergabe des Tokens an einen Nachbarn, der das Token noch nicht hatte Falls kein solcher Nachbar existiert: Senden des Tokens über Kante k first Terminierung, sobald Initiator das Token über die Kante k init sendet c td VS (SS) Wahlalgorithmen Grundlagen

Erzeugung eines virtuellen Baums beim Systemstart Chang-Roberts-Algorithmus Vorbereitung Ermittlung einiger Adressen anderer Knoten für Verbindungsaufbau : Nutzung einer Registry Verbindungsaufbau Verwaltung eines lokalen Levels Wurzelknoten des Baums hat Level 0 Elternknoten: Nachbar mit kürzester Distanz zum Wurzelknoten Wiederholung der Auswahl bei Abbruch der Elternverbindung private int level = -; private VSNode parent = null; public void connect(list<vsnode> nodes) { for(vsnode node: nodes) { // Verbindungsaufbau boolean connected = [Aufbau der Verbindung]; if(!connected) continue; // Bestimmung des Elternknotens if((level < 0) (level > node.level)) { level = node.level + ; parent = node; } } } c td VS (SS) Wahlalgorithmen Grundlagen Voraussetzungen Anordnung aller Knoten in einem (logischen) unidirektionalen Ring Definition einer totalen Ordnung auf Knoten-IDs (z. B. ID [,...,n]) Bestimmung des aktiven Knotens mit der höchsten ID Start des Wahlalgorithmus Annahme: Alle Knoten starten Algorithmus zur selben Zeit Jeder Knoten sendet eigene Knoten-ID im Ring weiter Jeder Knoten wird wählbar Empfang einer ID i Literatur Falls i > eigene ID Falls i < eigene ID Falls i = eigene ID Knoten sendet i weiter und ist nicht mehr wählbar Nachricht ignorieren Falls Knoten wählbar, dann ist er als Anführer gewählt Sonst: Nachricht ignorieren Ernest Chang, Rosemary Roberts An improved algorithm for decentralized extrema-finding in circular configurations of processes Communications of the ACM, ():,. c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus

c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus

Analyse Bemerkungen Einfacher Algorithmus auf Basis eines einfachen Systemmodells Teilnehmer müssen die Gesamtzahl aller Knoten n nicht kennen Mögliche Erweiterung Anführer sendet nach seiner Wahl eine Benachrichtigung durch den Ring Sauberes Beenden des Wahlalgorithmus auf allen Knoten möglich Korrektheit Eindeutigkeit Nachricht mit einer bestimmten ID wird von genau einem Knoten erzeugt Knoten mit höchster ID leitet nur seine eigene Nachricht weiter Ein Knoten wird nur gewählt, wenn seine ID von allen weitergereicht wurde Terminierung Die Nachricht mit der größten ID wird von jedem Knoten weitergereicht Nach n Schritten kommt die größte ID wieder beim Ursprungsknoten an Achtung: Terminierung ist bei Ausfällen von Knoten nicht sichergestellt c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus Komplexität Annahmen bei der Analyse der Zeitkomplexität Bearbeitungsdauer von Nachrichten ist vernachlässigbar Nachrichten kommen innerhalb einer maximalen Nachrichtenlaufzeit an Bester Fall: Knoten sind den IDs nach aufsteigend angeordnet n Nachrichtenlaufzeiten n + (n ) = n Nachrichten O(n) Schlimmster Fall: Knoten sind den IDs nach absteigend angeordnet n Nachrichtenlaufzeiten n i= i = n (n+) Nachrichten O(n ) Durchschnittlicher Fall Annahme: Alle (n )! möglichen ID-Verteilungen gleichwahrscheinlich n Nachrichtenlaufzeiten Nachrichtenaufwand: O(n log n) (siehe [Chang et al.]) c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus Initiierung Veränderte Startbedingung Gleichzeitiger Start des Algorithmus auf allen Knoten unrealistisch Ein Knoten startet den Algorithmus durch Senden seiner ID Andere Knoten beteiligen sich erst, nachdem sie eine Nachricht erhalten Zeitkomplexität Bester Fall Knoten mit höchster ID initiiert Wahl n Nachrichtenlaufzeiten Schlechtester Fall Knoten mit höchster ID wacht als Letzter auf (n ) + n = n Nachrichtenlaufzeiten Optimierung Unterdrückung der eigenen Nachricht, falls Aufwecken durch größere ID Reduzierung der im besten Fall erforderlichen Nachrichten auf n c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus 0

Variante Wellenverfahren Veränderte Architektur: Bidirektionaler Ring Unterschiede zur Standardvariante Start: Jeder Knoten bestimmt die Senderichtung der eigenen ID zufällig Jeder Knoten speichert die höchste ID i max, die er bisher gesehen hat Unterdrückung einer neu empfangenen ID i, falls i < i max Senderichtung der Weiterleitung abhängig von bisheriger Senderichtung einer ID Bemerkungen Geringere Anzahl erforderlicher Nachrichten im Durchschnittsfall Schlimmster Fall Geringere Auftrittswahrscheinlickeit Nachrichtenaufwand weiterhin O(n ) c td VS (SS) Wahlalgorithmen Chang-Roberts-Algorithmus Algorithmus Baumstruktur Ungerichtete Kanten Keine Zyklen Vergleich zur Wahl auf Ringen Kommunikation mit unterschiedlich vielen Nachbarknoten Potenzial für Divide-and-Conquer-Ansätze Wellenverfahren Explorationswelle Echowelle Informationswelle Literatur Friedemann Mattern Verteilte Basisalgorithmen Springer-Verlag,. durchläuft den Baum bis zu den Blättern kommt zurück und bestimmt die höchste ID teilt allen Knoten das Ergebnis mit c td VS (SS) Wahlalgorithmen Wellenverfahren Dedizierte Initiatorknoten senden Explorernachrichten an alle ihre Nachbarknoten Blattknoten senden bei Empfang einer Explorernachricht die eigene ID als Echonachricht zurück Innere Knoten mit k Kanten Weiterleitung der ersten Explorernachricht in alle übrigen Richtungen i i 0 Nach Erhalt von Echonachrichten auf k Kanten: Senden einer Echonachricht e mit dem Maximum aller bisher bekannten IDs über die verbleibende Kante b a max(a,b,c) c Falls Empfang einer weiteren Echonachricht e : Höchste ID im Netz ist Maximum der IDs von e und e x y c td VS (SS) Wahlalgorithmen Wellenverfahren c td VS (SS) Wahlalgorithmen Wellenverfahren

0 0 c td VS (SS) Wahlalgorithmen Wellenverfahren c td VS (SS) Wahlalgorithmen Wellenverfahren 0 0 c td VS (SS) Wahlalgorithmen Wellenverfahren c td VS (SS) Wahlalgorithmen Wellenverfahren

0 0 c td VS (SS) Wahlalgorithmen Wellenverfahren c td VS (SS) Wahlalgorithmen Wellenverfahren 0 0 c td VS (SS) Wahlalgorithmen Wellenverfahren c td VS (SS) Wahlalgorithmen Wellenverfahren

0 0 c td VS (SS) Wahlalgorithmen Wellenverfahren Adoptionsverfahren für beliebige Topologien c td VS (SS) Wahlalgorithmen Wellenverfahren Grundprinzip wie bei Wahl auf Bäumen: Explorations- und Echowelle Nachrichten Explorernachrichten beinhalten ID des korrespondierenden Initiators Echonachrichten tragen Initiator-ID der zugehörigen Explorernachricht Verwaltung von IDs an Knoten und Kanten Speicherung der höchsten einem Knoten bekannten Initiator-ID (ID i ) Elternkante: Kante, über die Explorernachricht mit ID i empfangen wurde Markierung der Sendekante einer Explorernachricht mit Initiator-ID 0 Empfang einer Explorernachricht x über Kante k mit Markierung m Falls ID x = ID m Kante k ist nicht Teil des virtuellen Baums Falls ID x < ID m Ignorieren der eintreffenden Explorernachricht x Falls ID m < ID x ID i Aktualisierung von m, Senden von x über k Falls ID m ID i < ID x Adoption: k wird neue Elternkante Weiterleitung von x über bisherige Elternkante c td VS (SS) Wahlalgorithmen Adoptionsverfahren c td VS (SS) Wahlalgorithmen Adoptionsverfahren

0 0 c td VS (SS) Wahlalgorithmen Adoptionsverfahren c td VS (SS) Wahlalgorithmen Adoptionsverfahren 0 0 c td VS (SS) Wahlalgorithmen Adoptionsverfahren c td VS (SS) Wahlalgorithmen Adoptionsverfahren

0 0 c td VS (SS) Wahlalgorithmen Adoptionsverfahren c td VS (SS) Wahlalgorithmen Adoptionsverfahren 0 0 c td VS (SS) Wahlalgorithmen Adoptionsverfahren c td VS (SS) Wahlalgorithmen Adoptionsverfahren

0 0 c td VS (SS) Wahlalgorithmen Adoptionsverfahren c td VS (SS) Wahlalgorithmen Adoptionsverfahren 0 0 c td VS (SS) Wahlalgorithmen Adoptionsverfahren c td VS (SS) Wahlalgorithmen Adoptionsverfahren

0 0 c td VS (SS) Wahlalgorithmen Adoptionsverfahren c td VS (SS) Wahlalgorithmen Adoptionsverfahren