The virtual world known as Second Life is struggling under the weight of its increasing popularity. The number of concurrent users in Second Life is growing about 20% a month, from 18,000 in December to 36,000 earlier this month. At that pace, Second Life will hit maximum capacity--100,000 simultaneous users, says Joe Miller, VP of platform and technology development for Linden Lab, creator of the virtual world--well before the end of the year.
Second Life's rapid growth has led to performance problems. Users complain about slow response times during peak periods and that search results are quickly outdated. They've experienced discrepancies in transactions involving Second Life's currency, called "Linden dollars," and problems with the screen graphics as they move from region to region in the virtual world.
To address growth and performance problems, Linden Lab is in the process of an ambitious network and architecture redesign. The upgrade poses at least two challenges: increase capacity to support potentially tens of millions of simultaneous logins without interrupting service to existing users. "We're swap- ping engines out at 40,000 feet while still flying," Miller says.
HERE TO SERVE YOU
Second Life runs on 2,000 servers using microprocessors from either Intel or Advanced Micro Devices. The servers are housed in two co-location facilities in San Francisco and Dallas. Because Linden Lab is committed to open source software, its servers run Debian Linux and the MySQL database. Linden chose Debian Linux because the software is suited to scaling massively with a small IT staff, says CTO Cory Ondrejka, and MySQL because it allows the server farms to scale horizontally, by adding large numbers of low-power servers as needed.
Crash landing: "Flying" from server to server can be problematic
Users of Second Life are known as "residents," and when they acquire virtual land to build their buildings and house their virtual furniture, vehicles, and other possessions, what they're doing in the real world is leasing software capacity on a server. Nearly everything in Second Life--the avatars, buildings, furniture, etc.--is built by the residents.
A resident can buy an "island," which is the use of an entire Intel- or AMD-based server, and the pricing is based on the processor, memory, and storage of that server. Landowners aren't locked in to specific servers--Linden Lab moves sims around for system maintenance or when there's a server crash--but they're guaranteed access to a particular class of server, with a particular processor, memory, and storage allocation.
At present, Linden Lab is the only company that runs sims, and it derives most of its revenue from land sales. However, it's committed to letting users run their own sims and own their own servers.
OPEN SOURCE EXPERIMENT
Many Second Life residents hope Linden Lab will release the server source code in open source form, but that hasn't been decided yet, says Miller. Linden Lab might license the code to other companies or publish the APIs and let other companies build clones of the sim software. Or it might allow companies to provide hardware for Second Life, which Linden Lab would run at its co-location facility using its software.
Linden Lab has opened up the source code for its client software, which runs on Linux, Mac OS X, and Windows. The company is using that project as an opportunity to learn about the governance of open source projects, says Ondrejka.
Linden Lab's servers support 34 terabytes of user-created content, and the traffic load for accessing that content is very different from a conventional Web site's. "If you think of a Web site like Digg, there are relatively few creators of information and lots and lots of consumers," Miller says. "In Second Life, the equation is different, in that two-thirds of the users are actively creating content over time."