Freitag, 14. August 2020

[SL Blog] - Whoosh! Was ist los beim Regionswechsel?


Linden Lab am 13.08.2020
um 3:27 PM PDT (00:27 Uhr MESZ)
- Blogübersetzung -

Hallo Bewohner!

Wir haben diese Woche einige Änderungen an der Funktionsweise von Regionswechseln vorgenommen und ich möchte ein wenig erklären, warum und was wir geändert haben.

Bitte beachtet, dass dieser Blog-Beitrag ein bisschen technischer sein wird als meine normalen Beiträge, da dies eine schwierige technische Angelegenheit ist. Hier eine kurze Zusammenfassung: Beim Verschieben von Regionen in die Cloud haben wir festgestellt, dass Regionswechsel zwischen einer Region in der Cloud und einer Region in unserem Rechenzentrum schrecklich waren. Da wir nun eine einfache Möglichkeit hatten, das Problem zu reproduzieren, haben wir uns damit befasst und konnten einige wirklich alte Fehler finden und beheben. Hurra!😊

Und jetzt zu einer ausführlicheren Beschreibung!

Der Übergang von einer Region in eine andere, während ihr in einem Fahrzeug fahrt, ist ziemlich kompliziert. Die Region, die man verlässt, muss in der Lage sein, der Region, in der man ankommt, alle Informationen weiterzugeben, die sie von dem Fahrzeug weiß. Und das muss sehr schnell gehen. Dazu gehören alle Skripte im Fahrzeug sowie alle damit verbundenen Vorgänge, die Richtung und die Geschwindigkeit und viele andere Dinge.

Damit das schnell abläuft, haben wir schon in den Anfangszeiten von Second Life einige Festlegungen für unser Netzwerk getroffen, darunter beispielsweise, wie groß ein Datenpaket sein darf. Diese Festlegungen funktionierten in unserem eigenen Netzwerk im Allgemeinen einwandfrei, jedoch nicht außerhalb.

Beim Übergang von einer Region zur nächsten packen die Regionen viele Informationen in große Datenpakete und senden diese über unser Netzwerk. Dies war normalerweise in Ordnung, da unser Netzwerk speziell für den Betrieb von Second Life entwickelt wurde. Als wir dann versuchten, dies im Netzwerk von jemand anderem zu tun (in der Cloud), funktionierten die Dinge nicht ganz richtig. Das Problem war am deutlichsten beim Übergang von einer Region in unserem Rechenzentrum zu einer Region in der Cloud zu sehen.

Als erstes versuchten unsere Technikerteams, diese großen Datenpakete in kleinere zu zerlegen, aber das verschlimmerte das Problem sogar noch. Anstatt ein großes Datenpaket zu senden und darauf zu warten, dass die andere Seite mit kleineren Paketen sagt, sie habe die Daten empfangen, musste sie dies mehrmals für jedes Paket wiederholen. (Senden, eine Bestätigung erhalten, den nächsten Teil senden, eine Bestätigung erhalten, usw.) Dies war in unserem Netzwerk größtenteils noch in Ordnung, aber wesentlich schlimmer, wenn eine Region in unserem Netzwerk mit einer in der Cloud sprach. Wir wussten jetzt, dass dieser Code niemals richtig funktionieren würde, also brauchten wir einen anderen Ansatz.

Als nächstes entschied sich unser Technikerteam für eine andere Methode zum Senden der Daten über das Netzwerk, wobei dasselbe Protokoll und dieselbe Methode verwendet wurde, die wir für andere Datentypen verwenden. Vor allem ist es schneller und zuverlässiger. Das hat funktioniert! Wir sammeln immer noch Statistiken über die Auswirkungen dieser Änderung, aber das Ganze sieht sehr positiv aus.

Nachdem dieser neue Code geschrieben war, wurde die Performance beim Wechsel von Region zu Region viel besser und es funktionierte zwischen unserem Rechenzentrum und der Cloud! Die Verbesserung war so dramatisch, dass wir beschlossen, unsere Bewohner nicht auf die migrierten Cloud-Simulatoren warten zu lassen, sondern die Änderungen sofort einführten. Dieser Code wurde diese Woche in das Grid übernommen.

Es ist wirklich aufregend, dass die Cloud-Migration uns hilft, sehr alte Fehler zu finden und Second Life im Laufe der Zeit zu verbessern.

Ein Grid-Häschen, das wirklich bereit ist, zwischen den Wolken zu hüpfen.
April Linden

Quelle: Whoosh! What’s Up with Region Crossings?
...................................................................................................

Anm.:
*lol* - soweit ich mich erinnere, haben die Lindens von 2010 bis 2015 versucht, mit viel Aufwand die Regionswechsel zu verbessern. Zum Beispiel hieß einer der Ansätze in den Jahren 2012/2013 "Threaded Region Crossing". Selbst 2018 versuchte man noch mit "verbesserten Komminkationsprotokollen" das Ganze in den Griff zu bekommen. Und jetzt erklärt April Linden, man hätte einfach die Datenpakete über ein anderes Protokoll verschickt (vermutlich HTTP2).

Schade, dass Linden Lab offenbar keinen wirklich fähigen Entwickler hat, für den solche Dinge zur Allgemeinbildung gehören.

2 Kommentare:

  1. Eta: ich löschte wegen der Kommasetzung. Jetzt ->
    Das ist sowieso gequiertler BS, wenn ich mich an meine früheren Region-Crossings erinnere (früher = 2, 3 Jahre, dass reicht bereits als zeitliche Referenz bzgl. der besseren Performance des Grids), mit damals auch weniger potenter Hardware als heute bei mir - Nvidia GTX vs RTX Da funktionierte alles noch etwas geschmeidiger. Mir fiel der Unterschied über die Zeit drastisch bei nautischen Aktivitäten auf. Geflogen bin ich schon lange nicht mehr, aus Frust. Irgendwann damals bor ein paar Jahren, hatte Firestorm deswegen auch extra diese Stop-Funktion versionsmäßig für das Region-Crossing integriert. Da läuft auf einer anderen Ebene im Lab was falsch. Du checkst das als IT-Mensch aber definitiv besser. Cheers Maddy

    AntwortenLöschen
  2. Seltsam! Ich war gestern mal wieder segeln, nach langer, langer Zeit und ich bekam oft Skriptfehlermeldungen beim Regionswechsel und diese Agent-Lost-Meldung oder wie das heißt, ich bin auch um einiges mehr gecrasht als in meiner Erinnerung. Da hatte ich dann sehr schnell genug. Aber gut, wenn Linden sagt, dass jetzt alles so toll ist ...

    AntwortenLöschen