View Single Post
  #2 (permalink)  
Old 02-28-2003
marc's Avatar
marc marc is offline
ZeroC Staff
 
Name: Marc Laukien
Organization: ZeroC, Inc.
Project: The Internet Communications Engine
 
Join Date: Feb 2003
Location: Florida
Posts: 1,781
I'm afraid no, we don't have documentation for replication yet.

Here is how it works in a nutshell: You start several replicated servers, and give the client proxies that contain endpoints to all these servers. The client will pick one of the servers randomly (load-balancing), and will automatically switch to another server if one crashes (fault tolerance).

Note that the only role of Ice in this is the ability for clients to choose and change servers. How server are replicated is an application specific task.

In my experience, the difficulty of server replication can range from anything between easy and "fantasy material". For example, it's obviously easy to have replicated state-less servers (or servers that only read their state once upon startup).

A good example for such state-less servers in your domain (online gaming) is a server-side pathfinder: When a pathfinder server starts up, it loads mesh data from disk, preprocesses it, and is then ready to receive requests. Requests from clients do not alter the server state, therefore it's trivial to have several pathfinders on different hosts, for fail-over and load-balancing.

Servers with slowly changing state are also doable, but require more work. You must make sure that the state between the servers is always replicated.

Finally, having general replicated high-performance servers with fast-changing but still permanently synchronized state are IMO fantasy material. I've seen too many attempts from my CORBA days, and none of them was ever usable in a real-world environment.
Reply With Quote