Distributor-Modus für Peers

Ideen und Vorschläge sind willkommen.

Distributor-Modus für Peers

Beitragvon PCA42 » Mi Sep 24, 2008 3:28 pm

Beim Testen meines neuen Peers ist mir aufgefallen, dass Internet-Bandbreite oft den Ausschlag für die DHT-Fähigkeiten eines Peers macht. Auch stellt bei DSL oft der Upload ja die Grenze dar, um leistungsfähige PC's ins Netz sinnvoll einzubinden. Bei der DHT-Verteilung werden die Daten nach der aktuellen Netzdefinition an drei Peers übermittelt. Auf der anderen Seite gibt es schwache Hardware, die aber an einer guten Internet-Anbindung hängt. So auch z.B. V-Server mit brachliegenden Traffic-Reserven. Wie kann man diese beiden Seite sinnvoll zusammenbringen?

Lösung:
Die Peers mit der guten Internet-Anbindung (kurz mal D-Peer) können einen zusätzlichen Distributions-Modus anbieten. Hierbei lädt der heimische PC (im folgenden mal Home-Peer) die zu verteilenden RWI an den D-Peer hoch und gibt die möglichen Empfänger (primary DHT und reserve DHT-Target) vor. Dieser sorgt nun für die dreifache Verteilung. Im zweiten Schritt fragen die Ziel-Peers bei D-Peer die fehlenden URLs ab. Diese Anfrage wird gesammelt an den Home-Peer weitergeleitet, der nun die URLs wieder nur einmal an den D-Peer hochladen muss. Dieser kann nun die zutreffende Verteilung auf die Ziel-Peers realisieren. Nachdem der Empfang von dort an den D-Peer bestätigt wurde, kann er diesen auch an den Home-Peer bestätigen. Nach der erfolgreichen Verteilung kann der Home-Peer die betreffenden RWI löschen.

Verfeinerungen lassen sich hier sicherlich beim Caching vornehmen. Auch sollte für die D-Peers eine Traffic-Beschränkung eingerichtet werden können, damit bei V-Servern alles sicher läuft.

Auf diesem Weg kann jeder Peer die ihm zur Verfügung stehenden Resourcen optimal einbringen.

Ich bin dann mal gespannt auf eure Kommentare.
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: Distributor-Modus für Peers

Beitragvon Low012 » Mi Sep 24, 2008 3:40 pm

Nur ein erster Gedanke:

Bei so einem Szenario würde ich es bevorzugen, dass die Bestätigungen, dass alles angekommen ist, direkt von den Ziel-Peers zum Home-Peer geschickt werden. Das hätte den Vorteil, dass ein "böser" D-Peer den Home-Peer nicht einfach belügen könnte und ihn dazu bringen könnte, Daten zu löschen, die er nicht verteilt, sondern unterschlagen hat. Diese Sicherheit wird natürlich gegenüber dem ursprünglichen Vorschlag wieder durch erhöhten Traffic erkauft, aber die Bestätigungen dürften ja gegenüber den vorher verschickten Daten relativ klein sein.
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Distributor-Modus für Peers

Beitragvon PCA42 » Mi Sep 24, 2008 4:05 pm

Die Problematik der vertrauenswürdigen Peers ist ein guter Einwand, der bei dem Modell berücksichtigt werden muss. Dies kann dann ja über Checksummen im Rahmen der Bestätigung erfolgen. Die Checksummen sind wahrscheinlich eh teilweise schon implementiert (mußmaße ich mal als Code-Laie :-) ).
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: Distributor-Modus für Peers

Beitragvon Lotus » Mi Sep 24, 2008 6:37 pm

Das ist eine Gute Idee. Da ich mittlerweile auch eine Leitung mit mehr Upload habe, habe ich auch gemerkt dass es flinker geht.
Beim Sender könnte die Option über die Verbindungsgeschwindigkeit aktiviert werden. (Empfang schneller als Versand und Versandgeschwindigkeit kleiner X)

Ich habe mal eine kreative Phase gehabt:
Dateianhänge
DHT-Proxy.png
DHT-Proxy.png (4.08 KiB) 915-mal betrachtet
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Distributor-Modus für Peers

Beitragvon Orbiter » Mi Sep 24, 2008 6:58 pm

die Grundidee ist ganz gut. Leider ist der Prozess aber komplex, und mit der Idee nicht vollständig abgedeckt. Ich skizziere nochmal den DHT-Versand: das ist 2-stufig.
1. sender sendet an Zielpeer RWIs. Darin sind ja Referenzen zu URLs enthalten, die in dieser Phase _nicht_ mitgesendet werden. Der Empfänger überprüft ob er die URLs hat, und sendet in seiner Response die Liste der URL-hashes, die ihm fehlen
2. sender sendet an Zielpeer fehlende URLs mit den zugehörigen Metadaten.

im Distributor-Modus fehlt der Vorgang für das Senden der URLs. Damit diese effizient weitergegeben werden können, müsste der Sende diese an den Distributor-Peer senden. Aber wenn die Empfänger die URLs alle gar nicht anfordern, wurde zu viel Traffic erzeugt. Der Distributor-Peer müsste also erst alle Responses der Zielpeers auswerten, und eine akkumulierte URL-Liste für alle Empfänger an den Sender übermitteln, und nach Eintreffen dieser URLs dann die Zielpeers bedienen. Das ist also schon machbar, aber es ist eben ein wenig komplexer.

offene Frage:
- wie wird ein Distributor-Peer bestimmt? Ernennt der sich selber dazu durch den User oder sollte man das durch Analyse der Upload-Geschwindigkeit machen? Vielleicht beides, mit einem Veto durch jeden Empfänger, der dem Distributor seinen Status-Flag in seiner Peer-Liste wegnehmen kann, wenn die Geschwindigkeit nicht passt.
Orbiter
 
Beiträge: 5799
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Distributor-Modus für Peers

Beitragvon DanielR » Mi Sep 24, 2008 9:07 pm

Orbiter hat geschrieben:wie wird ein Distributor-Peer bestimmt? Ernennt der sich selber dazu durch den User oder sollte man das durch Analyse der Upload-Geschwindigkeit machen?

Ich würd sagen, das macht man manuell. Z.B. stell ich meinen V-Server als D-Peer für meinen Laptop-Peer ein. Dann darf auch nur dieser Peer Daten an den Distributor senden. Ich stell mir das wie einen Proxy vor: Ich schicks an den D-Peer und dieser schickts weiter an normale Peers. Nur dass ich das DHT nur an einen schicke und der D-Peer an z.B. 3 andere. Evtl. könnte auch der D-Peer die "Nachbarn" ermitteln?
DanielR
 
Beiträge: 395
Registriert: Di Feb 12, 2008 2:22 pm

Re: Distributor-Modus für Peers

Beitragvon DanielR » Mi Sep 24, 2008 9:16 pm

Hab jetzt auch mal gemalt. Also eigentlich ist der D-Peer kein so besonderer Peer. Der benutzende Peer sendet nur einfach DHT (statt z.B. an 3 andere) und der D-Peer nimmt alles entgegen, auch wenn es nicht für ihn ist/in seinen HashBereich fällt (wird das überhaupt geprüft?).
Dateianhänge
d-peer.jpg
d-peer.jpg (14.43 KiB) 867-mal betrachtet
DanielR
 
Beiträge: 395
Registriert: Di Feb 12, 2008 2:22 pm

Re: Distributor-Modus für Peers

Beitragvon DanielR » Mi Sep 24, 2008 9:18 pm

Nachtrag: Kann man nicht allgemein für "schwache" Peers die Anzahl der Kopien reduzieren. Z.B. alle Juniors senden nur an einen Peer und nur die Seniors verteilen unter sich "gleichmäßig"?
DanielR
 
Beiträge: 395
Registriert: Di Feb 12, 2008 2:22 pm

Re: Distributor-Modus für Peers

Beitragvon PCA42 » Mi Sep 24, 2008 9:32 pm

So, hab das ganze nochmal aufgedröselt und dabei auch das Problem der Vertrauenswürdigkeit des Verteilers mit einbezogen. Ohne diesen Umstand kann man das sicher erheblich vereinfachen.

1.Schritt: Ursprungs-Peer
RWI für Verteilung festlegen
Hash für RWI-Paket ermitteln
RWI einmal an Verteiler-Peer übergeben

2.Schritt: Verteiler-Peer
Ziel-Peers ermitteln
RWI an die Ziel-Peers jeweils übergeben

3.Schritt: Ziel-Peers
fehlende URLs ermitteln
Hash für URL-Liste erstellen
Hash für RWI und Hash für URL-Liste aus Ursprungs-Peer -> Bestätigung für den erfolgreichen RWI-Transfer über den Verteiler
URL-Liste an Verteiler-Peer

4.Schritt: Verteiler-Peer
URL-Liste für jeden Peer merken
URL-Liste ohne Prüfung auf Doppel an Ursprungs-Peer weitergeben

5.Schritt: Ursprungs-Peer
pro Ziel-Peer URL-Listen mit den in Schritt 3 übermittelten Hash abgleichen
benötige URLs laden
pro Ziel-Peer Hash über die zutreffenden URLs ermitteln
doppelte URLs entfernen
URLs an Verteiler-Peer übergeben

6.Schritt: Verteiler-Peer
URLs mit der in Schritt 4 gespeicherten Liste aufteilen
pro Ziel-Peer Übermittlung der passenden URLs

7.Schritt: Ziel-Peers
für empfange URLs Hash ermitteln
Hash an Ursprungs-Peer übergeben -> Bestätigung für den erfolgreichen URL-Transfer

8.Schritt: Ursprungs-Peer
nach der Bestätigungen aus Schritt 7 in der Transfer komplett
RWIs löschen
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: Distributor-Modus für Peers

Beitragvon Lotus » Do Sep 25, 2008 6:48 pm

@DanielR:
Die Idee den D-Peer die Peers bestimmen zu lassen haben wir schon so ähnlich. Bei einem Index Transfer, werden die Wörter auf dem Zielpeer jedoch erst einmal in die Datenbank aufgenommen bevor sie weitergereicht werden (davor sitzt ein kleiner DHT Cache).
Ich würde es grundsätzlich wichtig finden, dass der Ausgangs-Peer direkt von den empfangenden Peers eine Rückmeldung bekommt. Sonst kann der Zwischenpeer machen was er will.

DanielR hat geschrieben:Nachtrag: Kann man nicht allgemein für "schwache" Peers die Anzahl der Kopien reduzieren. Z.B. alle Juniors senden nur an einen Peer und nur die Seniors verteilen unter sich "gleichmäßig"?

Ja, so ist das schon. :)
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg


Zurück zu Wunschliste

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron