Second Life: Batalla contra el lag, luego de dos años

Es increíble como pasa el tiempo. Parece que fue ayer cuando en este blog informaba sobre el inicio de un proyecto de Linden Lab en su afán de combatir y minimizar los efectos desvastadores del lag en los usuarios de la plataforma.

Hoy, dos años y un par de meses después de esa noticia, Linden Lab implementó, lo que podríamos decir, la última pieza de ese ambicioso proyecto destinado a mejorar la calidad del servicio.

Pero, vamos por partes y detallemos todo lo que ha sido implementado en estos dos últimos años por parte de Linden Lab, tanto a nivel Servidores y servicios, como a nivel Visor:

Todo comienza, tal como se expresara en aquella nota, en la implementación del Proyecto Shining, el cual buscaba mejorar la transferencia de información entre los servidores de Second Life y el visor del usuario. Proyecto que se apoyaba en 3 patas fundamentales:

El proyecto Sunshine, el cual implementaba el renderizado de avatares a nivel servidor, liberando, por ende, al visor de dicha tarea.

Mejoramiento en los procesos de cacheo de imagenes y objetos del lado del visor.

Mejoramiento en las librerías HTTP para acelerar las comunicaciones entre servidores y usuarios e implementación del Proyecto Lista de Intereses (Project Interesting Viewer).

Todos estos pasos fueron implementados con el paso del tiempo y, luego, se fueron sumando otros proyectos destinados a fortalecer el proyecto original y obtener una combinación que, a priori, debería ser mucho mejor que la existente al momento.

A todo esto ya señalado, esta semana se agregaron dos proyectos más, con lo cual podríamos decir que la implementación de las mejores ha llegado a su fase culminante. Dichos proyectos son:

Carga de Texturas y Mesh a través de CDN y Cambios en el HTTP Pipeline del visor/servidor para mejorar la comunicación HTTP entre ambos lados y disminuir sensiblemente los tiempos de carga.

Ahora, respecto del Proyecto de uso de CDN, podemos decir que, a diferencia de lo expresado original en el artículo en el que habé sobre dicho proyecto, Linden Lab, afortundamente, se ha decantado por el uso de los servicios de HighWinds, compañía que provee servicios de CDN a usuarios como Valve, Wargaming, Gamefly y otros. Por lo cual, la red CDN de Second Life cuenta con varios servidores de provisión de contenidos distribuidos por todo el mundo,representando esto una ventaja y mejora en la descarga para los usuarios fuera de Estados Unidos.

Por ende, con la implementación de CDN en el canal Principal de servidores, se ha concluído con esta fase, la cual se encuentra trabajando ya en todo el grid.

En el gráfico siguiente, podemos ver la distribución de tales servidores para poder tener una idea de como esto debería afectarnos, como usuarios, en forma positiva, al hacer que nuestro visor se conecte directamente con un servidor mas cercano a nuestra ubicación geográfica y, con ello, logrando una velocidad de obtención de ítems mucho más rápido que como era con el sistema anterior.

Red CDN HighWinds
Red CDN HighWinds

Por otro lado, Linden Lab liberó la versión 3.7.19.295700 de su Visor Oficial, la cual cuenta con mejoras en el protocolo HTTP Pipline. Esto significa, a modo sintético, que el protocolo realiza múltiples requerimientos HTTP utilizando una sola conexión TCP sin esperar la correspondiente respuesta del otro lado. Se busca con esto, mejorar los tiempos de comunicación del visor y, por sobre todo, el proceso de carga de inventario. Según Linden Lab, un inventario de mas de 100.000 ítems, que con el actual sistema HTTP tarda entre 16 y 18 minutos en cargar completamente (con caché del visor vacío), ahora, con esta mejora, puede tardar aproximadamente unos 3 a 4 minutos. En pruebas que he efectuado con los visores oficial y Singularity , la carga de unos 34 mil ítems me demandó entre 20 y 30 segundos de carga completa. Con lo cual puedo decir que todo pareciera estar yendo como se ha previsto.

Por el lado de los visores de terceros, como siempre, es cuestión de esperar que los desarrolladores de cada uno de ellos, incorporen las últimas actualizaciones de código para poder rendir a pleno con los nuevos cambios. Si bien, muchos de estos cambios son a nivel servidor y ya se notan sin cambiar de visor, es seguro que cuando se hayan actualizado los mismos, veremos que muchas cosas han mejorado.

SaludOS/2

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.