Registerkarten

SimtippViewerServerKunstLL-BlogVideosVehikelAnleitungARC

Samstag, 30. Juni 2012

[LL Blog] - Projekt "Shining" für verbesserte Avatar- und Objekt-Ladezeiten

von Linden Lab am 29.06.2012 um 6:55pm (30.06., 3:55 Uhr MESZ)
- Blog-Übersetzung -

Quelle: SL Brand Center
Irgendwo unter dem lockeren Boden der geheimen Mondbasis von Linden Lab, haben einige der besten Köpfe des Lab den Kampf gegen die Performance-Probleme in Second Life aufgenommen. Die Schwerpunkte reichen von Verbesserungen der Infrastruktur, über serverseitige Textur-Verarbeitung, bis zum Objekt-Caching.

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.

Kommentare:

  1. Die Sonne geht auf ....

    Eine prinzipiell gute Idee, die Server, die man eh schon hat und eigentlich nicht mehr braucht wegen der mehr und mehr schrumpfenden Landmasse, mit neuen Aufgaben zu bestücken.

    Guter Schachzug auch, die Server-Standorte in diesem Kontext von 3 auf 2 zu reduzieren.

    Ich finde, der Marketing-Abteilung von LL gebührt auch Lob, eine im Grunde nach betriebswirtschaftliche Entscheidung dermaßen gut zu verkaufen. Ich finde, der Projektname "Shining" ist rundum gut gewählt

    Was natürlich nicht heissen soll, dass Zeitinvestition und Manpower, sich dem Dauerthema Lag-Bekämpfung kreativ zu widmen nicht etwas Gutes hat.

    Gruß Linda

    AntwortenLöschen
  2. Also wenn LL ungenutzte Server hat, dann ist das nicht wegen den paar Regionen, die es im Vergleich zum absoluten Höchststand verloren hat. Dieser war am 13.06.2010 mit 31988 Regionen. Aktuell sind in SL noch 29744 Regionen am laufen. Und um das Verhältnis noch deutlicher zu machen: Als Anshe Chung im Januar 2007 als erste SL-Landmillionärin durch die Hype-Presse ging, gab es im Main Grid gerade mal 5509 Regionen.

    Wenn Linden Lab jetzt weniger Server benötigt, dann liegt das hauptsächlich an der Umstellung der Serverfarmen auf die Class 7 Generation, die bis zu 8 Fullprim Sims auf einer Quad Core CPU betreiben kann. Dazu musste LL aber erstmal ordentlich investieren. Und für mich liegt auch genau darin der Grund, dass man jetzt auf ein Serverzentrum verzichten kann.

    Das diese Umstellung eine "gut verkaufte betriebswirtschaftliche Entscheidung" ist, sehe ich nicht so ganz. Denn das passt mit der Aussage "In diesem Jahr wird Linden Lab die größte einzelne Investition in der Geschichte des Unternehmens vornehmen, um die Server mit neuer Hardware auszustatten." irgendwie nicht zusammmen. Eine solche Investition macht sich höchstens langfristig bezahlt, aber auch nur, wenn durch die Umgestaltung die Einnahmen gehalten oder gar wieder erhöht werden können. Und sollte es dazu kommen, dann hat LL aus meiner Sicht das Richtige gemacht.

    AntwortenLöschen