Gewichtung des Servers
Gewichtung des Servers
Was genau passiert, wenn man die Gewichtung des Servers (mirror.weight) in der Datei "mirrorupdater.ini" ändert?
-
- Gold Member
- Beiträge: 482
- Registriert: 01 Mai 2006, 02:58
- Wohnort: Jena
Gewichtung
das ist richtig!
aber woher weiß denn TV-Browser, welcher Server der Primärserver ist?
das muss doch in irgendeiner Datei stehen. Die Datei "mirrorlist_groupID" enthält nach jeder Änderung der Gewichtung immer die gleichen Daten. Das heißt, dass die information in dieser Datei nicht stehen kann.
Ich welcher dann?
aber woher weiß denn TV-Browser, welcher Server der Primärserver ist?
das muss doch in irgendeiner Datei stehen. Die Datei "mirrorlist_groupID" enthält nach jeder Änderung der Gewichtung immer die gleichen Daten. Das heißt, dass die information in dieser Datei nicht stehen kann.
Ich welcher dann?
Das ist etwas, das noch verschwiegen wird im Tutorial. Wenn du wirklich die Gewichtung ändern willst, dann muß deine myfirstgroup_mirrorlist z.B. so aussehen:
Hier ist tvbrowser-zwei wichtiger als tvbrowser.org (die Zahlen gehen von 0 bis 100).
Code: Alles auswählen
http://www.tvbrowser.org/tv-daten-test/;50
http://www.tvbrowser-zwei.org/tv-daten-test/;100
danke
danke für die info
kannst du mir schreiben wenn du weißt, was mit mirror.weight wirklich verändert wird?
__________________
http://www.coolsebastian90.de.vu
kannst du mir schreiben wenn du weißt, was mit mirror.weight wirklich verändert wird?
__________________
http://www.coolsebastian90.de.vu
-
- Gold Member
- Beiträge: 482
- Registriert: 01 Mai 2006, 02:58
- Wohnort: Jena
Das Thema interessiert mich nun auch verstärkt. Ich hatte schon diverse Beispiele nach der Art des oben genannten ausprobiert (Teile von 50 Prozent, beim Hauptserver ganze 50), weiterhin alle Server auf "100" sowie alle auf "-1" (heißt das "Minus Eins" gar, dass nach dem obenstehenden Server alle weiteren nicht beachtet werden?). Resultat war, dass der Hauptserver entweder nur noch gering, nur noch für Bilder oder überhaupt nicht mehr benutzt wurde.
Muss ein Server die 100er-Angabe erhalten (zum Beispiel 100/50/50/... bzw. 100/50/45/...)? Obendrein wäre mir eine rechnerisch vollständig nachvollziehbare Erklärung für den Sachverhalt lieber als Schlussfolgerungen auf Basis bestehender Fremdgruppen.
Muss ein Server die 100er-Angabe erhalten (zum Beispiel 100/50/50/... bzw. 100/50/45/...)? Obendrein wäre mir eine rechnerisch vollständig nachvollziehbare Erklärung für den Sachverhalt lieber als Schlussfolgerungen auf Basis bestehender Fremdgruppen.
Die Gewichtungen aller Mirrors werden aufaddiert und dann wird ein Gewicht per Zufall ausgewählt. Wenn alle aufaddierte Gewichte der bisher geprüften Mirrors beim nächsten Mirror größer als das zufällige Gewicht ist, wird dieser Mirror benutzt.
So sieht das dann in Java aus:
Das Gewicht hört übrigens nicht bei 100 auf, das kann durchaus größer sein.
So sieht das dann in Java aus:
Code: Alles auswählen
// Get the total weight
int totalWeight = 0;
for (Mirror mirror : mirrorArr) {
totalWeight += mirror.getWeight();
}
// Choose a weight
int chosenWeight = (int) (Math.random() * totalWeight);
// Find the chosen mirror
int currWeight = 0;
for (Mirror mirror : mirrorArr) {
currWeight += mirror.getWeight();
if (currWeight > chosenWeight) {
// Check whether this is the old mirror or Mirror is Blocked
if (((mirror == oldMirror) || BLOCKEDSERVERS.contains(getServerBase(mirror.getUrl()))) && (mirrorArr.length > 1)) {
// We chose the old mirror -> chose another one
return chooseMirror(mirrorArr, oldMirror, name, caller);
} else {
return mirror;
}
}
}
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser
Im Klartext:
Mirror1 = 50
Mirror2 = 120
Mirror3 = 10
Das bedeutet:
50+120+10 => 160 als Maximum.
Nun wird eine Zufallszahl zw. 0 und 160 erzeugt, dann wird geschaut, welcher Mirror genutzt wird. Ist die Zahl < 50, wird Mirror1 benutzt, bei >= 50 und < 120 Mirror2 etc.
Die Zahl bestimmt also, wie wahrscheinlich es ist, das der jeweilige Mirror gewählt wird.
Mirror1 = 50
Mirror2 = 120
Mirror3 = 10
Das bedeutet:
50+120+10 => 160 als Maximum.
Nun wird eine Zufallszahl zw. 0 und 160 erzeugt, dann wird geschaut, welcher Mirror genutzt wird. Ist die Zahl < 50, wird Mirror1 benutzt, bei >= 50 und < 120 Mirror2 etc.
Die Zahl bestimmt also, wie wahrscheinlich es ist, das der jeweilige Mirror gewählt wird.
-
- Gold Member
- Beiträge: 482
- Registriert: 01 Mai 2006, 02:58
- Wohnort: Jena
Ich muss auch noch mal kurz nachhaken :
Mir ist jetzt klar, wie der TV-Browser den Server auswählt, von dem er seine TV-Daten herunterlädt (die Gewichtung kann ja in der Datei myfirstgroup_mirrorlist.gz stehen)!
Ich habe allerdings noch nicht ganz verstanden, was genau die Gewichtung in der Datei mirrorupdater.ini bewirkt...
Werden auf den Servern (je nach Gewichtung) nur bestimmte Dateien hochgeladen? Wie genau ist das geregelt?
Sebastian
Mir ist jetzt klar, wie der TV-Browser den Server auswählt, von dem er seine TV-Daten herunterlädt (die Gewichtung kann ja in der Datei myfirstgroup_mirrorlist.gz stehen)!
Ich habe allerdings noch nicht ganz verstanden, was genau die Gewichtung in der Datei mirrorupdater.ini bewirkt...
Werden auf den Servern (je nach Gewichtung) nur bestimmte Dateien hochgeladen? Wie genau ist das geregelt?
Mit freundlichen GrüßenDas ist für den Fall das du mehrere Mirrorupdater.ini hast und damit jeweils einen FTP-Server aktualisierst.
Sebastian