Second Life is a 3-D virtual world created by its Residents. Virtual Worlds are expected to be more and more popular on the internet so their architecture might be of interest. Especially important is the appearance of open virtual worlds or metaverses.
What happens when video games meet Web 2.0? What happens is the metaverse.
"about 22 are programmers working on SL itself. At any one time probably 1/3 of the team is on infrastructure, 1/3 is on new features and 1/3 is on various maintenance tasks (bug fixes, general stability and speed improvements) or improvements to existing features. But it varies a lot."
Client/Viewer
Simulator (Sim)
Each geographic area (256x256 meter region) in Second Life runs on a single instantiation of server software, called a simulator or "sim." And each sim runs on a separate core of a server.
The Simulator is the primary SL C++ server process which runs on most servers. As the viewer moves through the world it is handled off from one simulator to another.
Asset Server
MySQL database
Second Life has started with One Database, and have subsequently been forced into clustering.
They use a ton of MySQL databases running on Debian machines to handle lots of centralized services. Rather than attempt to build the one, impossibly large database – all hail the Central Database – or one, impossibly large central cluster – all hail the Cluster – Linden Lab instead adopted a divide and conquer strategy based around data partitioning. The good thing is that UUIDs– 128-bit unique identifiers – are associated with most things in Second Life, so partitioning is generally doable.
Backbone
Linden Lab has converted much of their backend architecture away from custom C++/messaging into web services. Certain services has been moved off of MySQL – or cached (Squid) between the queries and MySQL. Presence, in particular Agent Presence, ie are you online and where are you on the grid, is a particularly tricky kind of query to partition, so there is now a Python service running on the SL grid called Backbone. It proved to be easier to scale, develop and maintain than many of their older technologies, and as a result, it plays an increasingly important role in the Second Life platform as Linden Lab migrates their legacy code to web services.
Two main components of the backbone are open source:
Do you have more details?
Comments
Re: Second Life Architecture - The Grid
Thanks geekr, that was very interesting.
Re: Second Life Architecture - The Grid
You've assembled a nice collection of facts. Interesting to compare this with the setup about 18 months ago (see http://blogs.computerworld.com/node/5122).
Also, while the 40% annual growth rate in concurrent visitors is encouraging, peak currency and other metrics have actually levelled off somewhat this year (see http://nwn.blogs.com/nwn/demographics/index.html)
Ian Lamont
The Industry Standard
Re: Second Life Architecture - The Grid
Todd, I am happy that you find this very interesting. It was challenging to collect all these facts :)
I think that the scalability of virtual worlds will be as important as it is for web sites.
Re: Second Life Architecture - The Grid
Awesome article! Nice to read about something a little different than your standard website structure, especially an MMO. Not a lot about how those are set up floating around out there.
Re: Second Life Architecture - The Grid
Each geographic area (256x256 meter region) in Second Life runs on a single instantiation of server software, called a simulator or "sim." And each sim runs on a separate core of a server.
So that explains why popular regions bog down to a crawl. Doh!
Post new comment