User:Finrod Meriman/Scalability

From Second Life Wiki
Jump to navigation Jump to search

Some thoughts on scalability

In the kickoff meeting of the Architecture Working Group Zero presented several scalability objectives: a platform that could support 60 million regions, 2 billion total users, and 50 million concurrently connected users. These objectives reflect Zero's frequently stated intention to "instill a deep sense of platform" in the AWG.

One way to achieve the desired scalability objectives is to create a large number of independently hosted regions. As proof, consider how the current Web scales: any organization (or individual for that matter) can run an HTTP server and publish content. As of October 2007 Netcraft reports more than 140 million web servers surveyed on the public Internet (with countless additional servers deployed inside corporate firewalls). Scalability of the Web occurs largely because each server is independent of others.

Although Second Life could scale to meet Zero's targets by creating a number of independent regions (or a large number of independent copies of Second Life itself), there are implicit objectives that affect scalability as well.

Scale Identity

As the number of organizations hosting regions increases, the complexity of managing a common identity increases. It becomes necessary to establish trust relationships between different organizations, an issue that his historically been limited by complexity of management and competing business models (there is a perception that the organization that owns the identity owns the customer).

In the Web each organization typically implements an identity service to track its customers; e.g. I have distinct accounts at web sites hosted by Amazon, Ebay, ESPN, and CNN. Multiple attempts have been made to federate identity across multiple sites with relatively little success. The wireless carriers have had some success with identity federation: carriers establish roaming agreements that tie customer billing records together across multiple domains; my identity as stored in my SIM card enables the carrier hosting my roaming cell phone to bill my primary carrier for the minutes I use.

The extent to which my identity scales (that is, the number of regions over which my identity is known) will determine the extent to which my avatar can move transparently among regions. (And by the way, this is really hard.)

Scale Per Region Concurrency

The number of concurrent users in a single region (sim) right now is less than 100 (much less for practical use). Scaling the number of concurrent users opens the potential for many new applications including concerts, conferences, business meetings and large sporting events.

If we generalize the notion of "concurrent users in a region" to mean the number of users that can interact with each other at a single event, then it becomes a bit easier to define the expected behavior. If fifty-thousand people attend a baseball game, they all watch the same game, they see each other, they share a common interest in the outcome of the game, and operate within the same space. The shared social experience is what differentiates interactions in a virtual world from a simple webcast. Ideally it should be possible to host a large event (like the Super Bowl) where the fans have sufficient fidelity of interaction to enable a "virtual wave" through the stadium. However, rich social interactions generally occur with others who are nearby. Scaling the number of users at an event can leverage user expectations to maintain a reasonable experience.

Early "large" Web events like coverage of the 1998 Winter Olympics in Nagano enabled literally millions of people worldwide to remotely "participate" in the event (just a reminder: that was only five years after the Mosaic was launched). What would it take to scale a virtual world to handle that kind of traffic?

Scale the Number of Objects

Scale the Complexity of Objects

Scale the Complexity of Object Behavior

How many objects can have scripts? What can scripts control about objects? How difficult is it to define new behaviors?

Scale Geographies

The Second Life community includes users from all across the world. The geographical distribution of users means that network latency and jitter will be highly variable for the users in a region of the virtual world. With the current architecture a region where most of the users are from Europe may be co-located with a server where most users are from Asia or North America.

Consistent network behavior is extremely important for MMOG's where users with low latency connections have a decided advantage over those with a high latency connection. Although many interactions between users in Second Life do not appear to have such tight latency bounds, the impact of network behavior on end-user experience requires additional study.

Some background material on the impact of network behavior is available from Wu-chang Feng at Portland State University.