tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
663
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Duellking Duellking ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Beiträge
    162
    Tag zusammen,
    ich habe folgendes Problem. Ich habe einen Zahlenbereich:
    von 0000000000000000 bis 1999999999999999

    Nun habe ich XXX Clients.

    Es können dauerhaft Clients hinzukommen oder UNERWARTET verschwinden.

    Nun muss dieser Zahlenbereich auf die Clients aufgeteilt werden. Hat jemand einen Vorschlag, wie man das am besten verteilen kann?
    Vorallem: Wie soll vorgegangen werden, sobald sich ein neuer Client meldet oder ein Client unerwartet sich nicht mehr meldet? Dann muss der Zahlenbereich des weggefallenen Clients neu auf andere Clients verteilt werden.
     

  2. #2
    Technoblade Technoblade ist offline Mitglied Gold
    Registriert seit
    Feb 2009
    Beiträge
    193
    Zu aller erst benötigt man natürlich sowas wie einen Heartbeat. Also immer Meldungen von den Clients ob sie noch da sind oder nicht und natürlich eine Zuteilung welcher Client welchen Zahlenbereich behandelt.
    Fällt dann ein Client weg so hast du recht. Dann muss sein Zahlenbereich auf andere verteilt werden. Davon ausgegangen, dass immer wieder neue hinzukommen kannst du den Zahlenbereich "aufbewahren"für einen Client der demnächst hinzu stoßen wird. Sollte keiner hinzu stoßen kannst du den Zahlenbereich auch einem Client überlassen der als nächstes mit seinem fertig wird.

    Ein weiteres Problem ist, dass sollte ein Client wegfallen auch dessen Ergebnisse weg sind. Um das zu verhindern sollte man jeden zu vergebenden Zahlenraum nochmals in kleinere Zahlenräume unterteilen von denen dann zwischendurch immer die Ergebnisse abgeliefert werden.

    Die schweren Fälle einer solchen Anwendung sind natürlich Start, Ende und Zeiten in denen sich wenige Clients beteiligen. Zum Start ist vor allem die Frage entscheidend wie viele Clients sich vermutlich beteiligen werden. Weiß man dies nicht, so sollten die Zahlenbereiche so gewählt werden, dass diese in absehbarer Zeit (z.B. 5 min) abgearbeitet werden können. Dadurch lässt sich ein einzelner Client gut auslasten und sollten weitere hinzukommen so kann man diese auch auslasten.
    Was das Ende betrifft, so sollte, sobald dieses absehbar ist, also alle Zahlenbereiche verteilt sind und die Fertigstellung nahe rückt keine weitere Aufsplittung der Zahlenbereiche erfolgen, da es praktisch überflüssig ist jedem Client nur noch eine einzelne Zahl zuzuweisen die er zu bearbeiten hat. Für dieses Szenario wäre der Overhead größer als die Beschleunigung durch weitere Clients.

    Für den Fall, dass sich viel zu wenige Clients beteiligen würde ich so vorgehen wie im Startzustand, da die Zustände praktisch identisch sind: zu wenige Teilnehmer und es ist ungewiss wie viele noch kommen werden.

    Über den Fall, dass so viele Clients zusammenkommen, dass nicht genügend Zahlbereiche vorhanden sind mache ich mir zu dieser Uhrzeit mal keine Gedanken mehr.
     

  3. #3
    Traveller Traveller ist offline Mitglied Bronze
    Registriert seit
    May 2010
    Ort
    Sonneberg (Thüringen)
    Beiträge
    29
    Lies das Skript zu deiner Vorlesung, das ist Uni-Schiss.
     

  4. #4
    Duellking Duellking ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Beiträge
    162
    Hat inzwischen jemand eine Idee zur Lösung?
     

  5. #5
    Traveller Traveller ist offline Mitglied Bronze
    Registriert seit
    May 2010
    Ort
    Sonneberg (Thüringen)
    Beiträge
    29
    Die Antwort von Technoblade gibt eine Menge Ideen zur Lösung. Kostenloses consulting gibts hier nicht, streng mal selbst deine Birne an.
     

Ähnliche Themen

  1. Verteiltes System (Multithreading)
    Von wpb im Forum Java
    Antworten: 0
    Letzter Beitrag: 13.10.09, 09:49
  2. Rechnen
    Von Sasser im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 29.04.09, 18:15
  3. InDesign CS2 - Verteiltes Arbeiten
    Von UnoDosTres im Forum Desktop Publishing (DTP)
    Antworten: 2
    Letzter Beitrag: 02.05.06, 03:32
  4. Scriptlets: Verteiltes if-else
    Von Der Held im Forum Java
    Antworten: 2
    Letzter Beitrag: 04.11.05, 15:58
  5. Verteiltes Rechnen
    Von Grimreaper im Forum Smalltalk
    Antworten: 2
    Letzter Beitrag: 18.06.03, 13:53