SL project updates week 35/1: server, viewer, unified snapshot floater and CDN

Matoluta Sanctuary, Sartre; Inara Pey, July 2014, on FlickrMatoluta Sanctuary, Sartre (Flickr) – Blog post

Server Deployments, Week 35

As always, please refer to the server deployment thread on the forums for the latest updates and information.

Main (SLS) Channel

On Tuesday August 26th, the Main channel was updated with the server maintenance release previously deployed to all three RC channels in week 34, which contains a single crash fix.

RC Channels

On Wednesday August 27th, all three RC channels should be updated with a new server maintenance package, which contains further crash mode fixes and, as indicated in the second part of my week 34 report, fixes for the following:

  • SVC-2262 – “Incorrect height value in postcard which sent from above 256m” (a postcard being a snapshot sent to e-mail)
  • A “re-fix” for BUG-6466 – “Numbers expressed in scientific notation and include a plus sign in the exponent are not parsed as JSON numbers by LSL”, which was thought to have been fixed a while ago, but which in fact resulted in BUG-6657 – “Valid JSON numbers like 0e0 no longer valid after 14.06.26.291532”, prompting the original fix to be rolled back.

SL Viewer

A new Snowstorm contributions RC arrived in the viewer release channel on Tuesday August 26th. The viewer, version 3.7.15.293295, includes a number of fixes for viewer issues and the new unified snapshot floater. As such, the list of contributions comprises:

  • OPEN-213 Broken header guard in llaudiodecodemgr.h
  • OPEN-217 Change to media_plugin_quicktime.cpp causes Windows compile to fail
  • STORM-2030 Rapidly clicking the refresh button in selected floaters may result in duplicate entries
  • STORM-2031 Display issues with Top colliders/Top scripts floater
  • STORM-2034 Support ‘older than’ when inventory filtering
  • STORM-2037 LSL syntax fetching for new keywords appears to be broken
  • STORM-2038 On the Edit tab of the build menu, clicking the area in between the Full Bright check box and the materials drop down box opens the color picker.
  • STORM-2040 Unified Snapshot floater
  • STORM-2076 Width spinner is broken in the Snapshot->Save to disk floater.
The new snapshot floater by Niran V Dean: note the button options for Flickr, Twitter and Facebook uploads
The new snapshot floater by Niran V Dean is now available in a new Snowstorm contributions RC viewer. Note the button options for Flickr, Twitter and Facebook uploads, the position of the filter option and the enlarged preview panel. Please refer to my preview of the floater for further details

The new snapshot floater provides an enlarged preview panel, plus buttons to access the Facebook, Twitter and Flickr upload floaters. However, what’s possibly going to be very popular among SL users is the ability to use the filter options with snapshots saved to inventory, disk or to e-mail – and the ability to use them on snapshots to be uploaded to the SL profile feed. Further information on the floater can be found in my preview article about it.

While there have been no changes to either the Experience Keys project viewer or the Oculus Rift project viewer, an update to the Experience Keys viewer is also anticipated soon.

Texture and Mesh CDN

Testing is continuing on the Aditi set-up to test the initial configuration of the proposed texture and mesh fetching CDN, and results are seemingly positive.As noted in my last reports, if successful, this approach will see texture and mesh fetching bypass the simulator entirely, being routed instead directly between the viewer and asset servers via the CDN, which should see improvements in the speed and reliability of such transfers.

Given the CDN nodes are located around the globe, they offer significantly faster response times than trying to reach the SL servers. For example: ping times to the SL servers from the East coast US or the UK can be measured at an average of around 110ms or 180 ms respectively; ping times to a local CDN however, have been reported at 10ms and 30 ms respectively.

The way the system works means that when a new asset (with a new ID) is created, it is initially held by the Lab’s servers. However, the first time the asset is called, it is delivered to the CDN nearest to the person calling it, and cached there, and once cached, is then served locally whenever called by anyone connecting to that CDN, thus making for faster delivery to the viewer.

Whirly Fizzle has been driving a lot of the tests, carrying out direct comparisons in texture fetching via the CDN and via the current method of running things through the simulator, and her results are promising:

The results from Whirly Fizzle's testing with the CDN and classi download mechanism for textures, using the test regions on Aditi - click for full size, or go here for the original document
The results from Whirly Fizzle’s testing with the CDN and classic download mechanism for textures, using the test regions on Aditi – click for full size, or go here for the original document

However, a couple of points need to be remembered when looking at these figures. Firstly, the work is still in its infancy, and there is a way to go before the Lab is in a position to announce anything is ready for prime-time use. The test environment, while producing valid figures, isn’t something that will scale particularly well, a fact which caused Oz Linden to comment at the Simulator User Group meeting that while the Lab does have a plan for building a scalable solution, hasn’t as yet actually been built.

An additional point worth noting is that while the test environment doesn’t require a special viewer (any viewer will work in the test regions on Aditi), any solution which will eventually be deployed will require viewer-side updates. To ensure that all viewers can leverage the new system as quickly as possible when both it and the viewer changes are ready, the Lab plans to release the viewer updates separately from everything else so that TPVs can quikcly merge them into their own viewers.

Even so, the Lab welcomes people testing the new set-up, as it helps them to gather more data. Details on the testing and the Aditi regions can be found in the Server Beta meeting agenda notes.

Oz is particularly excited about this work, commenting, “It’s something I’ve wanted to see done since I got here.”

Other Items

Not strictly an SL project update, but something related to SL project work.

Loki Eliot has posted a couple of blog posts related to Experience Keys / Tools. In the first, he provides notice that his Escapades Island has now been updated to use Experience Keys – which should make for some interesting fun! In the second, he provides some feedback on his dabbling with Experience Keys, highlighting one or two shortfalls which, while not devastating to the system, do point at least one area where the Lab might want to consider extending the permissions system (seating avatars, which might need a little careful thought), and on how things might be improved on the Oculus Rift side of things for those wanting a really immersive experience with Exp Keys.

SL projects Updates week 34/2 server, texture / Mesh CDN, group chat

Santaurio, Cala del Barronal; Inara Pey, April 2014, on FlickrSantaurio, Cala del Barronal (Flickr) – blog post

Server Deployments week 34 – Recap

There was no deployment on the Main (SLS) channel on Tuesday August 19th. All three RC channels received the same server maintenance project  on Wednesday August 20th, aimed at fixing a crash mode.

There may be news on the crash mode fixed in the RCs once it has deployed to the Main (SLS) channel in week 35.

Upcoming Server Deployments

There will be a new server maintenance package deployed to the RCs in week 35, which includes a couple of visible changes:

  • SVC-2262 – “Incorrect height value in postcard which sent from above 256m” (a postcard being a snapshot sent to e-mail)
  • A “re-fix” for BUG-6466 – “Numbers expressed in scientific notation and include a plus sign in the exponent are not parsed as JSON numbers by LSL”, which was thought to have been fixed a while ago, but which in fact resulted in BUG-6657 – Valid JSON numbers like 0e0 no longer valid after 14.06.26.291532. prompting the original fix to be rolled back.

SL Viewer News

TPV developer Niran V Dean has been working on a new unified snapshot floater which encompasses the “standard” floater, plus the Flickr, Twitter and Facebook upload options, under STORM-2040. Those who use the most recently releases of Niran’s Black Dragon viewer will be familiar with the approach, as he initially worked on the idea in that viewer.

NiranV Dean has been working on a more unified snapshot floater, which is currently undergoing testing. It will hopefully appear soon
NiranV Dean has been working on a more unified snapshot floater, shown here in the viewer window, which is currently undergoing testing. It will hopefully appear soon (click for full size)

The work is now progressing to a point where we should be seeing the fruits of his labour in the near future. In the meantime, I’ve previewed the work as it stands at the moment.

Texture and Mesh Fetching CDN

As reported in my last TPV developer meeting update, the Lab is looking to move texture and mesh fetching to a content delivery network (CDN). If successful, this approach will see texture and mesh fetching bypass the simulator entirely, being routed instead directly between the viewer and asset servers via the CDN, which should see improvements in the speed and reliability of such transfers.  Explaining the new approach further at the Server Beta meeting on Thursday August 21st, Maestro Linden said,

The viewer currently fetches all meshes and textures through the sim, which gets them from the asset server, and the sim gives the viewer a ‘capability’ URL, which the viewer uses for fetching. However, with this change to use the CDN, the sim instead gives the viewer the URL of the CDN, and the CDN has hosts all over the world. 

It’s good for two reasons: 1) the sim isn’t burdened with texture/mesh transfers; 2) you’ll often have lower latency to the CDN than the sim, which means more speed.

Allowing for the fact the Lab is accessing the service through their own network (although the CDN is a commercial service), both Maestro and April Linden report it as being a noticeable improvement on things, with texture and mesh fetching having double the performance compared to the current means of fetching via the simulator. Initial results of testing from Europe show similar improvements.

The Server Beta meeting agenda has further information on new method for mesh and texture fetching, including details on the Aditi stress test regions (one for textures, one for meshes), and those wishing to try them out are invited to do so. No special viewer is required in order to carry out testing at present, and the agenda includes notes on what to do. Note that the test regions are set to no-build so that people don’t rez extra things that would skew results; they are also likely to be limited in terms of the maximum number of avatars able to access them at one time.

If / when the new approach is more broadly rolled-out, people will be able to see which service (CDN or via the simulator) they are using is to set Develop > Consoles > Capabilities Info To Debug Console. Those using the CDN will see the GetMesh, GetMesh2, and GetTexture URLs will all be  http://asset-cdn.aditi.lindenlab.com/, while those using the current method will see it give some URL pointing at the sim host. However, we’re still some way from seeing the new service deployed further than the Aditi test regions.

Should this work prove successful, and once it and other HTTP work such as pipelining, as being developed by Monty Linden, is completed, the Lab hopes that they’ll have a fast, robust series of HTTP services such that they can look to retire UDP texture fetching – although this will be some way down the road, and in the interim, UDP will offer people something of a fallback for texture fetching should they have issues with HTTP as the various new services are deployed.

 Skill Gaming Regions

Simon Linden reported that the first of the Skill Gaming regions has arrived on Agni (the main grid). Called Crunchy, it doesn’t have any gaming parlours or anything on it, but appears to be set-up for testing (such as accessibility). There are a few things going on there, most under the control of Gecko Linden. Also, and as pointed-out by Simon, the first skill games and operators have started to appear on the Lab’s Skill Gaming Participants wiki page.

Group Chat

Work has resumed on group chat after a brief pause, and the Server Beta meeting saw a very brief test take place. The aim of this was to test delays that have been introduced into the members list updates sent by the chat server.

As I’ve previously reported, one of the biggest issues of chat delays in group chat sessions is to do with the numbers of updates the chat server has to send as people join / leave session and log-in / out of SL, changing their online status within the groups they’re a member off. Recent changes to the code are intended to queue these updates and reduce the load they are placing on the servers, interrupting the flow of text messages.

The test was brief, but appeared to give Simon Linden enough information to be able to go back and poke at things some more.

Group Chat Server Issues

There have been further reports of group chat servers at times becoming non-responsive. This issue was initially raised in week 33, after the server supporting all group chats with a key starting with “b”. A further issue was identified at the start of week 34 affecting the server supporting all group chats with a key starting with “d”. While the Lab is aware of ongoing problems, there is also a request for JIRAs to be submitted on specific issues.

SL projects update 33/3: TPV Dev meeting: HTTP, avatar height offset

The following notes are taken from the TPV developer meeting of Friday August 15th. A video of the meeting, provided by Chakat Northspring is included below. This report represents an overview of items discussed at the meeting which are liable to have the broadest interest among users. Timestamps are given against items and paragraphs for ease of referencing what was said within the video for those who wish to listen to the entire conversation on a given subject.

Note that subjects are not necessarily presented chronologically when compared to the video, but has been grouped under common headings.

My thanks, as always, to North for her recording of the meeting and linking to this blog post.

SL Viewers

[00:30] There have been few visible changes with the RC and project viewers this week. The library refresh viewer and the experimental log-in viewer remain unchanged, and while the Experience Keys project viewer has been updated, this has yet to appear in the Alternate viewers wiki page.

Oculus DK2 and Project Viewer Updates

Oculus Rift: the Lab now has the DK2, so work will be resuming on the project viewer
Oculus Rift: the Lab now has the DK2, so work will be resuming on the project viewer

[00:50] The lab has received around half-a-dozen of the Oculus Rift DK2 headsets, and so it is anticipated that further work will be progressing with the project viewer, and updates will be emerging over time. As noted in week 32, there are some substantial differences between the DK1 headset and the DK2, which currently make the project viewer largely incompatible with the newer headset.

Texture Statistics Logging

[19:15] With the roll-out of the 3.7.7 the Lab unfortunately broke the texutre stats reporting debug option LogTextureDownloadsToSimulator. As this is off by default (set to False) it has not been noticed by most users. However, the recommendation is that users do not set this option to True, as it will cause the viewer to immediately crash on start-up, at the next attempt to run it. This issue is common to all viewers using all code releases subsequent to 3.7.7 as well.

Viewer Build Process

[40:24] The Lab is shortly going to commence the process of upgrading the tool chain they use in the viewer build process (e.g. switch to Visual Studio 2013 for Windows and Xcode 5 for Mac) and switching over to the new version of autobuild. This work may also eventually help pave the ay for 64-bit builds of the official viewer. However, this is not currently the focus of the changes, as no decision has made as yet within the Lab on producing 64-bit builds of the viewer; the current aim of these changes is to improve the overall viewer build process.

[47:23] There are two points of note here. The first is that the new autobuild process includes changes which self-compilers must adhere to if they are using it, and details are available on a wiki page. The second is that it is probable that Windows viewers built using Visual Studio 2013 will not run on Windows XP. The Lab has already dropped Windows XP support, which is as much as it will currently say in terms of future viewers built using the new tool chain running on XP.

Group Chat

[02:00] The work on group chat has temporarily halted due to those working on it either being on vacation or working on other projects. Given this, and with a degree of ironic timing, there have been increasing reports of group chat issues over the last several days, including one chat server apparently becoming completely non-responsive.

It’s not clear to the Lab as to what may be causing the problems, but they have been noted. In the meantime, informal advice is that if your group chat is consistently failing, to contact support, provide them with the information on your group (name, etc.), and the issues you’re having, and request the chat server is restarted.

Continue reading “SL projects update 33/3: TPV Dev meeting: HTTP, avatar height offset”