eMule MOD - Development Alles zum Thema MOD Entwicklung. Fragen, Wünsche, Ideen zu neuen Features. |
22. October 2005, 12:27
|
#16 | Board Profi
Registriert seit: 22.05.2005
Beiträge: 1.116
|
Zitat:
Zitat von MaxUpload Auch soll es keine neuen Anfragen ins Netz geben solange im Cache noch gültige (Gültigkeitsdauer nicht überschritten,Client noch verfügbar....keinesfalls QR-Rankings oder ähnliches) Quellen verfügbar sind.
Erst wenn es im Cache keine brauchbaren Quellen mehr gibt und noch Bedarf da ist werden neue Quellen gesucht. Sollten dabei mehr Quellen als benötigt gefunden werden landen diese wieder im Cache.....usw. ...usw. ...usw. . | Hierin stimme ich mit dir überein ... bis auf die Gültigkeit und den Begriff "brauchbare Quelle" für Quellen im cache. Was kann denn schlimstenfalls bei Verwendung von Quellen aus dem cache passieren? Man bekommt einen timeout oder error, da die Quelle das file nicht mehr shared ... also nichts anderes wie jetzt auch schon bei der ein oder anderen Quelle, die man von Servern oder XS bekommt. Zitat:
Zitat von aalerich Ich frage doch alle 29 Minuten die Server nach neuen Quellen. Alle 29 Minuten bekomme ich also von allen Servern in meiner Liste den aktuellsten Stand. Was ich vor z.B. zwei Stunden in meinen Cache geschrieben habe ist dann doch völlig bedeutungslos, es ist veraltet. | Das könnte man sich komplett sparen, wie auch XS, solange noch Quellen im cache sind. Und was heist "veraltete" Quellen? Abhängig von der filegröße des dls, Wenn ich jetzt Quelle für dieses file bin, dann bin ich sicher auch noch in mehreren Stunden/Tagen immer noch Quelle für diesen dl. Aber was kann denn im extremsten Fall passieren? Das alle Quellen im cache für einen dl bei ihrer Nutzung einen timeout oder error liefern (da nicht mehr Quelle) und man dann nur für diesen dl neue Quellen über server und/oder XS für den cache sucht. In meinen Augen auf alle Fälle effektiver, als alle 29 Minuten 90% der Quellen wegzuwerfen. Zitat:
Zitat von aalerich Mit Kad und Quellenaustausch bekomme ich permanent aktuelle Daten gemeldet. Brauche ich eine neue Quelle kann ich sie aus diesen Meldungen nehmen | Könntest das etwas erleutern? Wäre jetzt sehr hilfreich! Unter welchen Gesichtspunkten braucht ein dl denn neue Quellen? Ich könnte mir in Hinblick auf ein AutoHL vorstellen, wenn ein dl unterdurchschnittlich viele Quellen hat oder viele Quellen mit NNP oder full, wobei der NNP Fall mit vorsicht zu geniesen ist, könnte ja ein neues Release sein. Zitat:
Zitat von aalerich Sinnvoll wäre höchstens (wie im Xtreme ja gelöst), daß ich die vom Server gemeldeten, von mir aber nicht genutzten Quellen auf eine Liste der nicht abzufragenden Quellen setze. Das ist aber kein Cache. Man könnte diese Liste jetzt natürlich nehmen und bei Ausfall einer akzeptierten Quelle (z.B. derjenige geht offline) eine aus der Liste quasi wieder freigeben und abfragen. Nur: Lohnt das? Gemeldet bekomme ich diese Quelle und nach einer Stunde wird sie von Xtreme ohnehin wieder freigegeben. Im allerschlimmsten Falle nutze ich diese Quelle also rund eine Stunde später als möglich. | Aber genau so hab ich die Funktion des cache verstanden. Lediglich, solange noch Quellen auf der Liste stehen, werden keine neuen Quellenanfragen bei servern oder clients gestartet. Und ich denke schon, das sich das lohnt. Zitat:
Zitat von aalerich Wenn ich 10 000 potenzielle Quellen habe bin ich in die andere Richtung potenzielle Quelle für diese 10 000 Klienten. Nutze ich 5 000 davon nicht frage ich sie nicht ab und reduziere dadurch meinen Overhead ebenso wie den der nicht Abgefragten, die ja nicht antworten müssen. So weit, so gut. Nur fliegen meine Daten ja über Server, Kad und Quellenaustausch im Netzwerk umher. Die von mir nicht genutzten 5 000 Quellen bekommen mich also als Quelle für sich selbst gemeldet und fragen mich ab. Und ich antworte. Ich nutze daher nur 5 000 Quellen, verursache aber Overhead für diese 5 000 plus halben Overhead (halt nur aus meiner Sicht Uploadrichtung) für die nicht genutzten 5 000 Quellen. Genutzt werden also 5 000 Quellen bei einem Overhead für 7 500 Quellen. | Was hat das denn mit einem cache oder AutoHL zu tun? Was du da beschreibst, ist ganz normales Verhalten, wie es jetzt tagtäglich passiert. Man hat selbst z.B. nur 300 Quellen für einen dl, aber z.B. 800 clients dafür in der Warteschlange. Zitat:
Zitat von aalerich Ich halte den Cache für eine nutzlose Funktion mit minimalem zusätzlichen Overhead. | Genau das Gegenteil ist der Fall. Anfragen nach neuen Quellen finden nicht, wie du beschreibst, kontinuierlich statt, sondern nur dann, wenn man wirklich welche braucht. Zitat:
Zitat von aalerich Jedes Hardlimit aber bedeutet eine drastische Erhöhung des Overheads im Netzwerk. | Gut, alle eMule versionen arbeiten aktuell so. Bei erreichen des Hard Limits droppen sie Quellen und ersetzen sie durch Neue. Ein cache und AutoHL ändert daran nichts. Zitat:
Zitat von aalerich Die Hälfte aller möglichen Quellen nicht zu nutzen bedeutet 50% mehr Overhead für Fragen/Antworten. Z.B., wenn ich bei Standard-DSL Dateien mit insgesamt 8 000 Quellen bestelle und mittels Hardlimit nur 4 000 nutze erzeuge ich Overhead, als würden meine Bestellungen ohne Hardlimit 6 000 Gesamtquellen haben. Da kann ich doch gleich bei 6 000 Quellen anstehen, es kommt overheadmäßig aufs selbe raus. Nur daß ich in letzterem Falle eben auch die 6 000 Quellen nutze. Ich nutze also 2 000 Quellen mehr und dementsprechend besser wird mein Download sein. Sind 6 000 Quellen aber zuviel überfordere ich mein Muli dank Hardlimit, obwohl ich ja nur 4 000 Quellen nutze... | Sorry, aber das ist doch nicht richtig! Nur bei Quellen, für die ich in der Queue stehe, erzeugen Overhead. Die Quellen im cache erzeugen Null Overhead. Und wenn dein System 8000 Quellen verkraftet, dann werden auch alle 8000 Quellen genutzt.
EDIT/ Zitat:
Zitat von drfreak2004 edit : was sagt ornis+ und co dazu ?! | Frag ihn! Zitat:
Zitat von Xman Ein source-chache ist nach meinem Codeverständnis also sehr sinnvoll. Gültigkeitsdauer könnte so zwischen 15 Minuten und einer Stunde liegen... würde mal mit 30 Minuten anfangen... und dann den Code optimieren und das ganze durchberechnen/testen. | Warum so kurz? Die clients ändern doch i.a. nicht so häufig ihre Verbindungsdaten und/oder verschwinden so schnell als Quelle.
__________________ Official eMule@Boinc Teams - Seti, Predictor, Climateprediction and Einstein
Geändert von seppl12 (22. October 2005 um 12:33 Uhr)
|
| |
22. October 2005, 12:52
|
#17 | Board Methusalem
Registriert seit: 31.05.2004
Beiträge: 2.800
| Soweit wie ich das bisher verstand wird jeder Server in meiner Liste alle 29 Minuten von mir nach Quellen gefragt, die mit ihm verbunden sind. Früher waren das mal 15 Minuten, z.B. der vorlost arbeitet noch so.
Quellenaustausch: Zitat:
Zitat von offizielle FAQ Bei gut verbreiteten Dateien wird alle 10 Minuten ein zufällig ausgewählter Client aus den zur Verfügung stehenden Quellen nach weiteren Quellen gefragt. Ist eine Datei selten (weniger als 40 Quellen), so wird in diesem Intervall bei jedem Client nach seinen Quellen gefragt. | Kad wird alle 60 Minuten befragt, mit längerer Laufzeit aber wohl nur noch alle 90 Minuten.
Ich glaube einfach nicht, daß die paar Minuten Zeitgewinn durch einen Cache sich bemerkbar machen. Es geht ja um eine oder vielleicht zwei Quellen, die dann eben ein paar Minuten früher oder halt später befragt werden; es geht um Einzelfälle. Ernsthaft schaden kann so ein Cache auch nicht, mir wäre nur jeder Programmieraufwand zu hoch.
Unabhängig davon bleibt natürlich das Hardlimit, auf das dieser Cache aufsetzt...
Mit freundlichen Grüßen
aalerich
Nachtrag @ seppl: Zitat:
Zitat von seppl12 Und was heist "veraltete" Quellen? | Das heißt, daß die Datei nicht mehr unter der gespeicherten IP/Portkombination verfügbar ist. Zitat:
Zitat von seppl12 Unter welchen Gesichtspunkten braucht ein dl denn neue Quellen? | Das können eben erwähnte Quellen sein, ebenso auch Quellen, die Chunks anbieten, die ich inzwischen von anderen bekommen habe, die also zu NNS wurden. Auch können bisher nicht genutzte Quellen urplötzlich zu sehr wertvollen Quellen werden indem sie z.B. einen seltenen Chunk bekommen haben. Bleiben diese Quellen unabgefragt im Cache... Eine solche Quelle wäre besser als die Masse der zur Zeit genutzten, diese wären in gewisser Weise veraltet und eine Neubeschaffung/Überprüfung der Quellen wäre sinnvoll. Es gibt auch die Möglichkeit, daß eine wertvolle Quelle eben online gegangen ist... Zitat:
Zitat von seppl12 Lediglich, solange noch Quellen auf der Liste stehen, werden keine neuen Quellenanfragen bei servern oder clients gestartet. Und ich denke schon, das sich das lohnt. | Das senkt den Overhead, keine Frage. Es wird aber auch zu einer spürbaren Senkung des Downloads führen. Sinn dieses Caches soll aber eigentlich das Gegenteil sein. Zitat:
Zitat von seppl12 Zitat:
Zitat von aalerich Wenn ich 10 000 potenzielle Quellen habe bin ich in die andere Richtung potenzielle Quelle für diese 10 000 Klienten. Nutze ich 5 000 davon nicht frage ich sie nicht ab und reduziere dadurch meinen Overhead ebenso wie den der nicht Abgefragten, die ja nicht antworten müssen. So weit, so gut. Nur fliegen meine Daten ja über Server, Kad und Quellenaustausch im Netzwerk umher. Die von mir nicht genutzten 5 000 Quellen bekommen mich also als Quelle für sich selbst gemeldet und fragen mich ab. Und ich antworte. Ich nutze daher nur 5 000 Quellen, verursache aber Overhead für diese 5 000 plus halben Overhead (halt nur aus meiner Sicht Uploadrichtung) für die nicht genutzten 5 000 Quellen. Genutzt werden also 5 000 Quellen bei einem Overhead für 7 500 Quellen. | Was hat das denn mit einem cache oder AutoHL zu tun? Was du da beschreibst, ist ganz normales Verhalten, wie es jetzt tagtäglich passiert. Man hat selbst z.B. nur 300 Quellen für einen dl, aber z.B. 800 clients dafür in der Warteschlange. | Das ist so nicht richtig. Zu Beginn eines Downloads bin ich keine Quelle, finde aber selbst Unmengen davon. Im Laufe der Zeit verkehrt sich das ins Gegenteil; ich bin Quelle für immer mehr andere und finde selbst gleichzeitig immer weniger für mich nützliche Quellen. Die Gesamtzahl derer, die mit mir zu tun haben bleibt gleich. Anfangs entsteht der Hauptteil des Overheads durch meinen Wunsch herunterzuladen, später durch den Wunsch anderer, von mir herunterzuladen. Durch ein Hardlimit verschiebe ich diese Relation zu meinen eigenen Ungunsten, da fast von Anfang an ein großer Teil des Overheads durch Downloadwünsche anderer verursacht wird. Der springende Punkt ist: Das Hardlimit orientiert sich an meinem Downloadwunsch. Es nimmt keine Rücksicht auf den Overhead, der durch Anfragen an mich entsteht. Dieser Overhead kann also ein absurdes Maß annehmen ohne daß ich darauf reagiere. Ich will mal ein Beispiel nennen:
Vor ein paar Tagen habe ich ein neues Release von gut 200 mb bestellt. Der Releaser hatte nur eine kleine Anbindung und das Interesse war gewaltig. Sobald ich den ersten Chunk hatte standen über 600 Leute bei mir an (vorher hatte ich 150 Leute in der Queue) und wollten von mir saugen. Für mich waren aber kaum 10 Quellen nützlich. Ich hatte also 60 mal soviel Overhead dadurch, daß ich Quelle war wie ich Overhead dadurch hatte, daß ich herunterladen wollte. In dieser Situation geht das nicht anders. Wären aber auch 600 volle Quellen dagewesen und ich hätte ein Hardlimit von 10 gesetzt wäre haargenau das selbe passiert. Wenn ich nun ein Hardlimit von 10 gesetzt hätte um die maximale Quellenzahl für meine Anbindung nicht zu überschreiten wäre mein Muli unweigerlich in die Knie gegangen. Obwohl ich meine Gesamtquellenzahl doch einhalte. Das Hardlimit schreit grundsätzlich und ausschließlich "Haben, haben, haben wollen!" und kümmert sich einen Dreck um das, was dann halt noch hintendran hängt. Auto-HL hätte nur dann etwas genützt, wenn bei anderen Dateien noch Platz bei der Quellenzahl gewesen wäre. Wenn aber bei der Gesamtquellenzahl noch Platz ist brauche ich kein Hardlimit... Zitat:
Zitat von seppl12 Zitat:
Zitat von aalerich Die Hälfte aller möglichen Quellen nicht zu nutzen bedeutet 50% mehr Overhead für Fragen/Antworten. Z.B., wenn ich bei Standard-DSL Dateien mit insgesamt 8 000 Quellen bestelle und mittels Hardlimit nur 4 000 nutze erzeuge ich Overhead, als würden meine Bestellungen ohne Hardlimit 6 000 Gesamtquellen haben. Da kann ich doch gleich bei 6 000 Quellen anstehen, es kommt overheadmäßig aufs selbe raus. Nur daß ich in letzterem Falle eben auch die 6 000 Quellen nutze. Ich nutze also 2 000 Quellen mehr und dementsprechend besser wird mein Download sein. Sind 6 000 Quellen aber zuviel überfordere ich mein Muli dank Hardlimit, obwohl ich ja nur 4 000 Quellen nutze... | Sorry, aber das ist doch nicht richtig! Nur bei Quellen, für die ich in der Queue stehe, erzeugen Overhead. Die Quellen im cache erzeugen Null Overhead. Und wenn dein System 8000 Quellen verkraftet, dann werden auch alle 8000 Quellen genutzt. | Doch, es ist richtig. Du mußt auch mal nach hinten sehen. Die, die ich nicht als Quelle nutzen will sehen trotzdem in mir eine Quelle. Nur weil ich mich bei ihnen nicht anstelle verzichten die doch nicht auf mich als Quelle. Wenn ich nur hundert Quellen annehme können trotzdem 10 000 bei mir anstehen. Das kostet meinen Overhead und den der anderen. Da (springender Punkt!) ich mein Hardlimit aber gesetzt habe weil ich mein Muli schon für meinen eigenen Download sonst überfordern würde haben die, die bei mir anstehen, keine realistische Chance, von mir jemals auch Daten zu bekommen. Der größte Teil des Overheads, den ich als Quelle "verursache" ist unweigerlich sinnlos, er kann gar nicht durch effektive Datenübertragung gerechtfertigt werden. Mein Upload ist dazu zu klein. Es sei denn, meine Uploadkapazität ist größer als meine Downloadkapazität. Von einer solchen Anbindung habe ich aber noch nie gehört. Zitat:
Zitat von seppl12 Die clients ändern doch i.a. nicht so häufig ihre Verbindungsdaten und/oder verschwinden so schnell als Quelle. | Doch, glaub's mir. Es ist manchmal zum Verrücktwerden, wie viele Leute sich unglaublich oft neu einwählen. Ich merke das allerdings nur im Upload, um den Download kümmere ich mich wenig.
__________________ _______________________________________________ Der Router ist schuld!
Geändert von aalerich (22. October 2005 um 13:59 Uhr)
|
| |
3. November 2005, 16:39
|
#18 | Newbie
Registriert seit: 03.11.2005
Beiträge: 5
| Auto-HL Sinn und Unsinn Hallo zusammen,
ich hoffe ich verstosse jetzt gegen keine Board-Regel, da ich als nicht-modder meine Sicht der Dinge unbedingt in die Diskussion mit einbringen möchte.
Ich möchte noch kurz erwähnen, dass ich seit Jahren ein aufmerksamer Leser dieses Forums bin, aber noch nie die Notwendigkeit gesehen habe, etwas zu ergänzen. Bis ich auf diesen Thread gestossen bin.
Da mich das Problem, wie ich meine Quellenanzahl auf einem sinnvollen Level halte, schon lange beschäftigt, würde ich mir folgendes wünschen:
In den Optionen trägt man irgendwo eine gewünschte gesamte Quellenzahl ein, beispielsweise 3000. Jetzt passiert folgendes: Wird dieser Wert überschritten, werden schlicht und ergreifend keine neuen Quellen mehr angefordert, weder über Server, Kad oder XS. Abnehmen wird die Anzahl Quellen dann bekanntlich wieder von alleine, wenn keine neuen dazu kommen, bis die Summe an quellen wieder unterschritten wird.
Dies wäre nach meinem wissens netzwerkschonend. Das die Anzahl quellen dann immer nur grob um den angegebenen Wert schwankt, kann man meiner Meinung nach verkraften, schliesslich sind HL-Angaben wie 3000 oder 4000 auch alles andere als Exakt ermittelte Werte. Zumal die Anzahl Quellen sich ja nur indirekt auf die offenen/halboffenen Verbindungen auswirken.
Auf ein kompliziertes Cache-Verfahren kann damit eigentlich verzichtet werden, zumal die quellen wenn sie bei bedarf wieder gesammelt werden eh aktueller sind.
Möglich, das ich als nicht-modder gerade quatsch erzählt habe, vielleicht habe ich ja sogar ein soft-limit-verfahren beschrieben, dass (ich persönlich bisher nur "pro Datei" gesehen habe,) es aber schon irgendwo gibt, und verschwende eure Zeit. Aber falls nicht, wäre so ein "GESAMT-Softlimit" ein absolutes Wunsch-Feature.
So. Grüße, Danke für euer Zeit, und "Weiter so!" |
| |
Forumregeln
| Es ist Ihnen nicht erlaubt, neue Themen zu verfassen. Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten. Es ist Ihnen nicht erlaubt, Anhänge hochzuladen. Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten. HTML-Code ist aus. | | | Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr.
|