Difference between revisions of "Server architecture"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 14: Line 14:
Handles routing of messages based on grid x,y locations.
Handles routing of messages based on grid x,y locations.


=== dataserver ====
==== dataserver ====
Handles connections to the central database, log database, inventory database(s) and search database(s).  Performs queries on behalf of the simulator process.
Handles connections to the central database, log database, inventory database(s) and search database(s).  Performs queries on behalf of the simulator process.


==== simulator ====
==== simulator ====
The primary SL server process. Each simulator process simulates one 256x256 meter region. As the viewer moves through the world it is handled off from one simulator to another.  It handles storing object state, land parcel state, and terrain height-map state. It performs visibility calculations on objects and land and transmits the data to the client.  It transmits image data in a prioritized queue.  Physics simulation is handled with the Havok physics library.  Chat and instant messages are processed here.
The primary SL server process. Each simulator process simulates one 256x256 meter region. As the viewer moves through the world it is handled off from one simulator to another.  It handles storing object state, land parcel state, and terrain height-map state. It performs visibility calculations on objects and land and transmits the data to the client.  It transmits image data in a prioritized queue.  Physics simulation is handled with the Havok physics library.  Chat and instant messages are processed here.

Revision as of 15:40, 3 November 2006

This wiki is mainly focused on the viewer, since that is the portion of the system that is open source. However, because the viewer interacts with the Second Life servers in somewhat complicated ways, it is helpful to have an understanding of what components do what on the server side.

Much of what you'll need to understand is actually covered in the protocol documentation. In particular, take a look at Authentication Flow, which outlines the process by which the viewer establishes connections with a number of components.

login server

CGI script running on login.agni.lindenlab.com. Handles verification of user name and password. Determines the login region based on home vs. last location vs. URL specified location. Finds the simulator process running that region and verifies user is allowed to connect there. Alerts the simulator to expect a connection. Informs the viewer of where to connect.

userserver

Historically, the user server handled login. Now it handles instant message sessions, particularly for groups.

spaceserver

Handles routing of messages based on grid x,y locations.

dataserver

Handles connections to the central database, log database, inventory database(s) and search database(s). Performs queries on behalf of the simulator process.

simulator

The primary SL server process. Each simulator process simulates one 256x256 meter region. As the viewer moves through the world it is handled off from one simulator to another. It handles storing object state, land parcel state, and terrain height-map state. It performs visibility calculations on objects and land and transmits the data to the client. It transmits image data in a prioritized queue. Physics simulation is handled with the Havok physics library. Chat and instant messages are processed here.