A more sensible application is to split the workload between the servers . One solution is to have multiple servers that are perfectly mirrored, and an agent that splits the queries between them. The agent can be a piece of software on the servers that communicates load, or it can be a router capable of determining the load on an attached server and dividing queries accordingly. If the data on the second server is not identical, then there might be communication problems and data errors. The client will receive different results depending on which server the load-balancing agent sends it to.
Web serving is the ideal role for mirrored, load-balanced servers .
In most cases, updates are infrequent and the penalties for synchronisation lags are low. It's also very easy to add extra servers to the cluster if the average load exceeds reasonable limits. For instance, most enterprises have more than one server application. A business might have email services, file and print services, Web services, database services and so on. Rather than having every server do everything, it often makes more sense to have some servers dedicated to specific tasks, and leave the others capable of a takeover if necessary.