[eMule-Web]

[eMule-Web] (http://www.emule-web.de/board/)
-   eMule MOD - Development (http://www.emule-web.de/board/emule-mod-development/)
-   -   "failed download sessions" fast bei 90% (http://www.emule-web.de/board/9283-failed-download-sessions-fast-bei.html)

LowTech 18. March 2005 14:44

"failed download sessions" fast bei 90%
 
Guten Tag, liebe Grautierfreunde!

Bin schon seit einiger Zeit am Rumbasteln an meinem eigenen kleinen Mod. Prinzipiell läuft es prima, doch ein Problem macht mir dann doch gewaltig Sorgen:

Der Anteil der "failed download sessions" beträgt fast 90%!
Das scheint mir doch entschieden zu hoch zu sein!

Mein Upload beträgt 25 kB/s (von 32 kB/s Maximum), der Download ist unlimitiert.
Am "Abwürgen" des Downloades durch einen zu hohen Upload sollte es also nicht liegen.

Ich beobachte häufig, daß Clients in den Download-Status kommen, dort einige Sekunden mit 0 KB/s verharren um sich dann wieder zu verabschieden.


Daraus ergeben sich für mich einige Fragen:

- Welche Rate von "failed download sessions" ist als normal anzusehen?
Ich würde mich freuen, wenn einige von Euch mal posten könnten, was sie da so für Werte haben.

- Es wäre prima, wenn mir vielleicht jemand aus dem Kreis der Profi-Modder einen Tip geben könnte, an welchen Stellen im Quellcode genau die Ursachen liegen könnten?

Vielleicht ist das Problem ja längst bekannt, gelöst und ein Fix verfügbar? Wär' ja nicht das erste Mal... :wink:


Bin für jede Hilfe dankbar!

Beste Grüße!

LowTech

Stulle 18. March 2005 14:54

Bin zwar kein Profi-Modder, aber auch ein solcher könnte dir nicht genau sagen woran es liegt ohne a) die features/ änderungen in deinem mod gesehen zu haben und/ oder b) den quellcode gesehen zu haben.
Also sag ma was de geändert hast und gib uns vielleicht ma deine sources.

mfg stulle

LowTech 22. March 2005 01:50

Problem scheint gelöst
 
Guten Morgen!

es scheint, als daß ich das Problem gefunden habe!

Systematischer partieller "Rückbau" des Mod's führt zu dem Ergebnis, daß ich offenbar den "Chunk-Selektion-Patch" von Xman irgendwie falsch implementiert haben muß.

Nach Deaktivierung des Patches habe ich jetzt nach ca. 10 Stunden Laufzeit eine Rate an "failed download sessions" von 28,6% und deutlich bessere Downloadraten.

es handelt sich um folgenden Abschnitt der PartFile.cpp:

Zitat:


// Maella -Code Improvement-
for (POSITION pos = srcList.GetHeadPosition(); pos != 0; ){
cur_src = srcList.GetNext(pos);
// Test if the source has already transfered its list of parts
if(cur_src->GetPartCount() == partcount){

//Xman better chunk selection
//use different weight
uint8 weight=2;
if(cur_src->GetDownloadState()==DS_ONQUEUE && (cur_src->IsBanned() || cur_src->IsRemoteQueueFull() || cur_src->GetRemoteQueueRank()>4000))
weight=1;
//Xman end

const uint8* pPartStatus = cur_src->GetPartStatus();
for(uint16 i = 0; i != partcount; i++){
if(pPartStatus[i] != 0)
{
m_SrcpartFrequency[i] +=weight; //Xman better chunk selection
}
}
cur_count= cur_src->GetUpCompleteSourcesCount();
if ( flag && cur_count )
{
count.Add(cur_count);
}
}
}
// Maella end

//Xman better chunk selection
//at this point we have double weight -->reduce to normal (division by 2)
for(uint16 i = 0; i < partcount; i++)
{
if(m_SrcpartFrequency[i]>1)
m_SrcpartFrequency[i] = m_SrcpartFrequency[i]>>1; //nothing else than ceil((float)m_SrcpartFrequency[i]/2) ;
}
//Xman end

Hab ich da irgendwo (in anderen Source-Files?) irgendwas (weiteren zum Patch gehörenden Code?) vergessen?
Habe mir das alles nochmal angeschaut und finde selber keinen Fehler.
Andere Mod's haben ja auch keinerlei Schwierigkeiten mit diesem Patch.

Beste Grüße!

LowTech

Xman 22. March 2005 08:06

welche Basisversion benutzt Du denn eigentlich ?
Mich wundert nämlich: es handelt sich hier nicht um den veröffentlichten Patch, sondern um eine Version aus dem Xtreme2.2
Da nur der Xtreme2.2 die sourceList auf die Abgebildete Art und Weise benutzt, schätze ich sogar Du nutzt den Xtreme2.2 als Codebasis. Dann bräuchtest Du aber den Patch nicht ;-)
Falls Du die 0.45a/b als Basis nimmst sollte der ganz eCode nicht laufen, denn in diesen Versionen ist die sourcelist zwar wie im Xtreme2.2 verwaltet (haben da die offiziellen abgekupfert ?*g*) allerdings würde es dann heißen "sourcelist" und nich twie bei Dir "sourceList".
Was mich insgesamt zum Ergebnis führt: Du scheinst sehr vieles aus dem Xtreme genommen zu haben... allerdings ist dessen Code teilweise so komplex, daß ich Dir nicht so einfach sagen kann, was genau der Fehler ist.

LowTech 31. March 2005 02:30

Zitat:

Zitat von Xman
welche Basisversion benutzt Du denn eigentlich ?
Mich wundert nämlich: es handelt sich hier nicht um den veröffentlichten Patch, sondern um eine Version aus dem Xtreme2.2

Ich verwende den emule 0.44d Webcache als Basis.
Habe daran aber mittlerweile derart viel herumgebastelt, daß er mit diesem kaum noch etwas gemein haben dürfte.

Zitat:

Da nur der Xtreme2.2 die sourceList auf die Abgebildete Art und Weise benutzt, schätze ich sogar Du nutzt den Xtreme2.2 als Codebasis. Dann bräuchtest Du aber den Patch nicht :wink:
Ich benutze keinen Xtreme als Basis habe aber, wie von Dir richtig bemerkt, den Patch aus der Source Deines 2.2 entnommen.

Zitat:

Falls Du die 0.45a/b als Basis nimmst sollte der ganz eCode nicht laufen, denn in diesen Versionen ist die sourcelist zwar wie im Xtreme2.2 verwaltet (haben da die offiziellen abgekupfert ?*g*) allerdings würde es dann heißen "sourcelist" und nich twie bei Dir "sourceList".
Tja, nachdem der Compiler sich über die fehlende Deklaration von "srclist" beschwert hat, änderte ich das Ganze einfach in "srcList" .
Mag sein, daß hier der Fehler lag.

Zitat:

Was mich insgesamt zum Ergebnis führt: Du scheinst sehr vieles aus dem Xtreme genommen zu haben... allerdings ist dessen Code teilweise so komplex, daß ich Dir nicht so einfach sagen kann, was genau der Fehler ist.
Eigentlich habe ich mir die Source in erster Linie wegen Deines Patches runtergeladen, aber nachdem das ja nicht funktionierte habe ich Deinen auf emule-project.net geposteten Code erfolgreich verbaut. :wink:

Vielen Dank für Deine großartige Programmierarbeit
und allerbeste Grüße!

LowTech


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102