- Blog-Übersetzung -
Quelle: SL Brand Center |
In diesem Jahr wird Linden Lab die größte einzelne Investition in der Geschichte des Unternehmens vornehmen, um die Server mit neuer Hardware auszustatten. Diese neue Hardware bedeutet für die Bewohner eine bessere Performance und höhere Zuverlässigkeit. Darüber hinaus sind wir dabei, von drei Server-Standorten auf zwei Standorte umzustellen. Dies wird unsere Latenz zwischen den Standorten deutlich verringern und die Leistung der Simulatoren weiter verbessern.
Als "Shining" Projekt bezeichnen wir die jüngsten Bemühungen des Lab, Verzögerungen und andere Probleme beim Übertragen von Avatar- und Objektdaten zu identifizieren und zu messen, sowie Lösungen aufzustellen und umzusetzen. Während des bisherigen Shining Projekts wurden bereits mehrere kleine Verbesserungen identifiziert und umgesetzt. Die nächste kleine Verbesserung des Shining Projekts wird die Bereitstellung von vorberechneten Start-Avataren sein, um das erste Erlebnis neuer Bewohner zu verbessern.
Als ein Ergebnis der Untersuchungen im Shining Projekt, wurde dieses nun in drei Performance Projekte unterteilt: Projekt Sunshine, Objekt Caching und HTTP Library.
Alles zusammengenommen, sollten die Hardware-Upgrades und die Shining-Projekte die Avatar- und Objekt-Ladezeiten deutlich verbessern. Abhängig von eurer individuellen Situation (Hardware, Internetleitung), wird eure Laufleistung variieren.
Projekt Sunshine (serverseitig vorberechnete Textur-Erzeugung und -Speicherung)
Derzeit sind alle klientseitigen Viewer dafür verantwortlich, ihre eigenen Avatar Texturen zu berechnen, um dann die Ergebnisse zurück an die Simulation zu schicken, damit es für andere Viewer zugänglich ist. Diese Methode kann zu Verlangsamungen und Fehlern führen. Die aktuellen Berechnungen für kombinierte Texturen sind recht einfach und nicht besonders zeitaufwendig. Damit jedoch der Viewer die Berechnungen durchführen kann, muss er zunächst eine Menge von einzelnen Assets aus der Simulation herunterladen und muss die Ergebnisse wieder zurück zur Sim hochladen. Dies befördert eine Menge von Bits durch die Sim-/ Viewer-Verbindung, die dadurch langsam und unzuverlässig werden kann.
Je nach Klient-Hardware, die das Berechnen und Hochladen der kombinierten Texturen übernimmt, kann es zu fehlerhaften Ergebnissen kommen (wie z.B. viel zu viel Pink). Um diese Fehler zu kontrollieren, wurden eine Reihe von Wiederholungs- und Rückfall-Mechanismen eingeführt. Dies erzeugt weitere Belastungen und Ladezeiten für das gesamte System.
Das Projekt Sunshine basiert auf einem Textur-Berechnungsserver, der getrennt von den Sim-Servern arbeitet. Wenn ein Viewer einen Avatar berechnen muss, sendet er eine Nachricht an die Sim, die dann wiederum eine Nachricht an den Textur-Berechnungsserver sendet. Der Textur-Server führt dann die Texturberechnungen durch und sendet die Ergebnisse zurück an den Viewer.
Der Textur-Server hat Zugriff auf eine Datenbank von zuvor generierten Avatar-Texturen. Wenn der Sim die vorberechneten Texturen für einen Avatar anfragt, kann der Textur-Server die Ergebnisse aus der Datenbank holen, statt sie neu zu berechnen. Auch wenn verschiedene Avatare anfragen, aber der Kleidungssatz immer der gleiche ist, kann der Textur-Server die zuvor berechneten Ergebnisse verwenden.
Ein weiterer Vorteil eines Servers der Texturen generiert ist, dass die umfangreiche HTTP-Datenkommunikation für die einzelnen Assets zur Darstellung eines Avatars, über zuverlässige und schnelle interne Netzwerk-Verbindungen läuft, anstelle über externe Verbindungen.
Objekt-Caching & Interessens-Listen
Das Caching von Objekten auf der Festplatte eines Bewohners soll die schnellere Darstellung von Objekten ermöglichen, die mit großer Wahrscheinlichkeit während einer Login-Sitzung, oder auch in der nächsten Sitzung, noch einmal dargestellt werden.
Die aktuelle Implementierung des Objekt-Cache hat noch Raum für Verbesserungen. Derzeit speichert der Viewer nur von dem Ort die Objekte im Cache, an dem der Bewohner eine Region verlässt, und dann auch nur die Objekte, die in der aktuellen Ansicht zu sehen sind. Sobald eine Umgebung neu geladen wird, ist der aktuelle Caching-Datenverkehr zwischen Sim und Viewer ineffizient und braucht viele Ressourcen.
Das neue System wurde entwickelt, um sicherzustellen, dass ein Viewer niemals Objekt-Informationen herunterladen muss, die er bereits hat und die immer noch gültig sind. Dadurch verringert sich die Last auf den Sim und auf die Sim-/Viewer-Verbindung.
Wenn der Viewer sich mit einer Region verbindet, wird mit dem neuen System als erstes der Sim dem Viewer sagen: "Hier ist eine Liste aller meiner Objektgruppen und deren UUIDs." Der Viewer überprüft seinen Cache und antwortet: "Hier sind die Zeitstempel für die Objektgruppen, die ich in meinem Cache gefunden habe." (Wenn eine Objekt-Gruppe nicht im Cache gefunden wird, ist der Zeitstempel 0.) Der Sim vergleicht nun die Zeitstempel des Viewers mit seinen eigenen Daten und antwortet: "Hier ist eine Liste von Objektgruppen in deinem Cache, die noch immer gültig sind." Während der Viewer damit beginnt, gültige Objekte aus seinem Cache anzuzeigen, beginnt der Sim damit die neuen Objektdaten zu übertragen, die der Viewer benötigt, basierend auf den einzelnen Objekt-Prioritäten.
HTTP-Bibliothek
Die hohe Performance für die Shining-Initiativen sind abhängig von der Geschwindigkeit und Zuverlässigkeit des HTTP-Datenverkehrs, der sowohl durch den Viewer, als auch durch die Simulatoren eingeleitet wird. Der dritte Teilbereich des Shining-Projekts ist die neue HTTP-Bibliothek, die moderne und bewährte Methoden im Datentransfer, in der Verbindungsverwaltung und der Fehlerbehebung anwendet.
Quelle: Project Shining to Improve Avatar and Object Streaming Speeds
................................................................................................................................................................
Anm.:
Das ist der gehaltvollste Blogpost von Linden Lab seit der Vorstellung der Experience Tools im März 2012. Nach dem positiven Auftritt von Rod Humble im SLU-Forum, scheint LL einen zarten Versuch zu unternehmen, seine Kommunikation mit den SL-Nutzern wieder zu verbessern. Die Themen des Shining Projekts passen auch zu den Fragen von Rod, wie man Leute an SL binden könnte, wenn die Performance enorm verbessert würde.
Das hier beschriebene Shining Projekt klingt vielversprechend. Allerdings muss man abwarten, wie sich das im Zusammenspiel mit den auch in den Startlöchern stehenden Pathfinding Funktionen auswirken wird. Dass aber das völlig veraltete Caching System des Viewers überarbeitet wird, ist wirklich eine Wohltat und alleine das wird bei einem modernen PC einen merklichen Unterschied zu heute ausmachen. Auf jeden Fall kann man nicht behaupten, LL hätte kein Interesse mehr daran, in SL zu investieren und es weiterzuentwickeln.