Seite 1 von 2

Gewichtung des Servers

Verfasst: 18 Sep 2006, 14:18
von coolsebastian90
Was genau passiert, wenn man die Gewichtung des Servers (mirror.weight) in der Datei "mirrorupdater.ini" ändert?

Verfasst: 18 Sep 2006, 20:16
von Morethantv
Das regelt doch, welcher Server primär verwendet wird? So habe ich es zumindest verstanden.

Gewichtung

Verfasst: 19 Sep 2006, 08:06
von coolsebastian90
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?

Verfasst: 19 Sep 2006, 08:59
von bodo
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:

Code: Alles auswählen

http://www.tvbrowser.org/tv-daten-test/;50
http://www.tvbrowser-zwei.org/tv-daten-test/;100
Hier ist tvbrowser-zwei wichtiger als tvbrowser.org (die Zahlen gehen von 0 bis 100).

danke

Verfasst: 19 Sep 2006, 11:56
von coolsebastian90
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

Verfasst: 19 Sep 2006, 13:52
von bodo
Das ist für den Fall das du mehrere Mirrorupdater.ini hast und damit jeweils einen FTP-Server aktualisierst.

??

Verfasst: 20 Sep 2006, 14:10
von coolsebastian90
das verstehe ich nicht ganz...
man kann doch immer nur eine konfigurationsdatei angeben (z.B mirrorupdater.ini)
Was genau passiert den jetzt, wenn eine konfigurationsdatei als Gewichtung 100 und die andere konfigurationsdatei -1 hat?
Worin besteht der Unterschied?

Verfasst: 12 Sep 2007, 15:18
von Morethantv
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.

Verfasst: 12 Sep 2007, 15:35
von ds10
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:

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;
        }
      }
    }
Das Gewicht hört übrigens nicht bei 100 auf, das kann durchaus größer sein.

Verfasst: 12 Sep 2007, 15:41
von bodo
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.

Verfasst: 12 Sep 2007, 19:41
von Morethantv
Danke! :) Das Zufallsprinzip habe ich mir schon erhofft, aber diese vglw. umständliche Vorgehensweise überrascht mich durchaus. Jetzt weiß ich Bescheid.

Ach ja: Bei der Angabe "-1" wird also ein beliebiger, per Zufall ausgewählter Server genutzt?

Verfasst: 12 Sep 2007, 20:00
von coolsebastian90
Ich muss auch noch mal kurz nachhaken :D :

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?
Das ist für den Fall das du mehrere Mirrorupdater.ini hast und damit jeweils einen FTP-Server aktualisierst.
Mit freundlichen Grüßen

Sebastian

Verfasst: 13 Sep 2007, 16:52
von bodo
Das müsste ich im Quelltext nochmal nachsehen. Ich nutze diese Funktion nämlich nicht ;).

Verfasst: 13 Sep 2007, 17:37
von bodo
So, ein bisschen durch den Quelltext gewühlt. Dieser Parameter ist anscheinend nicht mehr benutzt im MirrorUpdater. Kannst den also ignorieren, ich werde den auch gleich mal entfernen.

Verfasst: 13 Sep 2007, 17:40
von bodo
Kleiner Tip: ich aktualisiere mit dem MirrorUpdater immer in ein lokales Verzeichnis und lasse das hochspielen auf die Server ein Tool namens "sitecopy" machen. Wenn du unter Mac/Linux arbeitest, solltest du dir das mal ansehen. Allerdings ist das ein Kommandozeilen-Tool ;).