As we head into the fourth quarter, I wanted to share some of the progress that we’ve made since we realigned engineering and created our Platform team. The team is comprised of simulator, services, and viewer developers and testers (Platform Development), as well as our operations, IT, data warehouse and customer support teams (Platform Operations). The focus of the teams will be to drive “back to basics” improvements across the grid and evolve our current architecture into a scalable set of services and APIs. Let’s take a look at our progress over the last few months, delivering against the goals that Philip set at the Second Life Community Convention (SLCC), in August.
I’m happy to report that we have already delivered on a number of those, and are making good progress toward the rest. A few of them may take longer than we’d originally anticipated, but we plan on completing all of them.
Below you’ll find a list of projects and initiatives we’ve delivered on in the two months since SLCC, as well as some back-up performance data. A number of these projects will have a major impact on the Second Life experience, as we currently know it. Expect to see further posts from some of the Platform team, focused on how we are improving Second Life in terms of faster performance, increased stability, and a generally smoother experience for all.
Here’s an interesting factoid: there are about two million teleports in Second Life every day. Previous to our recent release of Server 1.42, when an avatar teleported or crossed into a new region, everyone on the destination sim would experience a “lag” event as the simulator stalled while processing the incoming avatar. This was often experienced as “jitter” on the sim, especially evident when many avatars arrived at the same time, such as for a live event. In the new simulation code, this slow point has been moved to a separate thread. Our simulator performance profiling tools show that this lag pain point is almost entirely gone, greatly improving performance for highly trafficked regions.
Faster Texture Loading
In August, we made some changes that improve the speed with which textures are loaded in a scene. Our release of HTTP Textures changed the way textures are delivered to, and loaded in, Viewer 2, resulting in less waiting around for the scene in front of you to come into focus. This change will also serve as the foundation for a series of bigger improvements, including the deployment of a new asset system, which will improve texture loading and object rez times even more. For the real techies, here’s the back story: Last month, we moved away from the Isilon storage clusters, as our primary storage for assets. Most assets are now stored on Amazon’s S3 platform, and we have deployed a “middle-layer” caching service, which is where most asset calls will be served from. The time to complete asset “puts” and “gets” (the times that the viewer requests assets and times those assets are delivered) has improved significantly. We reduced the average PUT latency by over 60%, from 1.3 seconds to 0.6 seconds, and our GET latency by 20%, from 0.25 seconds to 0.20 seconds. What does this really mean? Well, when you add up the cumulative time saved in asset latency across the millions of requests a day, there is a net savings of over 4,000 hours of time shaved off of asset latency per day! That translates into less load on the simulator processes and better rez times in Viewer 2.
The next step here is to get the simulator out of this process, and that will happen in early 2011. At that point, we’ll have extended our asset services and can begin enabling a content delivery network (CDN), bringing latency-sensitive assets (objects and textures) closer to Residents for even faster rez times.
New Chat Service Coming Soon
We’re finally going to tackle the group chat problem that has been a Resident complaint for a long time. Group chat can often be confusing, with “chat lag” causing responses to appear late, or sometimes not at all. You should start to see real improvements in this early next year. Over the last few months, we’ve completed a number of development sprints to prototype an XMPP service and have decided to move forward with an ejabberd deployment. We’re targeting to have a test deployment of the new group chat service by the end of this year, and full production deployment in early 2011.
Group Limits Will be Raised to 40
Another big pain point for Residents is the current limit that lets you be a member of only 25 groups. We plan to raise this limit to 40 by the end of this year. In the past, our biggest concern about raising group limits was potential performance degradation, with additional stress placed on our central database. After completing some internal analysis, we now feel comfortable enough to extend group limits up to 40. I’ll put a qualifier on the group limits increase, however, and state that if we see a decrease in performance (i.e., more lag), then we may decide to roll back to the 25 limit again.
Snowstorm Driving Viewer 2 Improvements
At SLCC, we announced Project Snowstorm, our new open development program for Second Life’s Viewer 2 client software. Snowstorm is already incorporating Resident input, particularly around a more customizable user interface, has produced a number of beta releases, and is deploying daily open-source code releases. You’ll see the first fruits of their efforts in production very shortly, with the release of Viewer 2.2.
New Main Grid Deployment Process
It was pretty clear that if we were going to make velocity improvements, then we needed to be able to update our server software more than three to four times per year. As Lil Linden discussed last month, we have significantly changed our deploy process and are now deploying code on a weekly basis to the main grid (Agni). This means that bug fixes will be deployed faster and new features and functionality don’t have to pile up and wait for the next major “release train.” It also means that if we do encounter problems, then we are able to quickly back out the changes, without affecting other code that is working properly. This process also works much better with the agile development practices that we have formalized internally over the last three months.
Display Names and Mesh Public Betas Available Today
While we’re focusing our resources for the moment on platform improvements designed to make Second Life faster, easier to use, and more fun for all Residents, we are also testing two new features that had been in development for some time before SLCC. The new Display Names feature is in public beta, and will enable more freedom of expression in Second Life. We have also just launched the public beta of Mesh Import, which will revolutionize content creation in Second Life. So I encourage you to download the Project Viewers and share your feedback.
I’ll share more with you on our “back to basics” technology projects in coming weeks and months. In the meantime, I’m looking forward to hearing your thoughts on our recent progress in the comments below. And, as always, thanks for all of your passion and participation.