Кластер с общей базой данных
Мы можем запустить несколько серверов в параллели, НО разделив игровой мир на Регионы, в каждом регионе будут свои пользователи, не пересекающиеся с другими регионами. Этим подходом мы распределяем пользователей по регионам (серверам), за это может отвечать некий балансировщик нагрузки. Решение старое но проверенное временем. Каждому запущенному экземпляру сервера нужен доступ до базы данных (данные о мире, данные о игровой логике, таблицах рекордов и пр.), для этого служит выделенный сервер базы данных.
Мы можем запустить несколько серверов в параллели, поддерживая целостность приложения через базу данных (целостность списка пользователей, доставлять принимать сообщения и пр). Решение накладывает очень большие запросы на производительность сервера базы данных и необходимость кластеризации оного с применением кэширования запросов (memcached
http://www.danga.com/memcached/)

Минусы:
- Слабое место по нагрузкам и устойчивости — сервер базы данных
- Слабое место стоимости — сервер базы данных
Кластерное решение от Terracotta
Отказаться от БД в пользу общего разделяемого пространства данных для JVM разных серверов. Подключив серверы мы можем делится различными данными, рассылать/получать события из любого места.
Мы не тратим время сериализацию объектов — обычные Java objects. Можно назвать это сетевой оперативной памятью.

Дополнительно:
http://www.smartfoxserver.com/downlo...Clustering.pdf
http://en.wikipedia.org/wiki/Terracotta_Cluster
http://www.infoq.com/articles/open-terracotta-intro