MMO - Лучшая не-SQL база данных для хранения данных - PullRequest
0 голосов
/ 02 октября 2010

Какая, по вашему мнению, лучшая база данных, не относящаяся к SQL, для хранения информации об игроках в MMO-игре в реальном времени, работающей на сервере C ++?

Ответы [ 3 ]

2 голосов
/ 03 октября 2010

Человек, сделайте свой выбор:)

В настоящее время я использую MongoDB для получения информации о пользователях.MongoDB очень быстрый и будет работать особенно хорошо, если у вас достаточно памяти для хранения всего (в этот момент это похоже на MemcacheD с файловой поддержкой).Тем не менее, MongoDB делает некоторые уступки по «долговечности» для достижения своей скорости.

Если вы работаете с ММО, вам действительно нужно взглянуть на пары шардинга и реплики.Эти две технологии позволят вам масштабировать БД по горизонтали, в то же время обеспечивая «горячее резервное копирование» в случае сбоя узла.Replica Pairs поможет вам обойти типичные ограничения долговечности, позволив вам принудительно реплицировать важные обновления.

Однако цифры, которые я прочитал в TokyoCabinet, также очень впечатляют.Конечно, документы TokyoCabinet были болезненными.Так что это действительно ваш звонок.

1 голос
/ 04 августа 2011

Если вы думаете, что вы "модель" очень хорошо, я бы порекомендовал Redis.Вы должны очень хорошо продумать свою модель, потому что redis, а также tokio cabinet, kyoto, hamsterdb, bdb - это хранилища ключевых значений, которые обычно не имеют возможности делать запросы.Если вам нужны запросы, возможно, вам следует протестировать mongodb или couchdb.

Redis - это очень быстро, все в памяти, но с поддержкой сохранения на диск, он очень хорошо документирован и реализован на c ++.

Выполните поиск в режиме слайд-шоу, и вы увидите много громких имен, используя redis

0 голосов
/ 02 октября 2010

Токийский кабинет, hamsterdb, BerkeleyDB

моя лучшая ставка была бы на токийский кабинет, вы должны знать, что большинство k / v БД не имеют функции обновления, которая крайне важна для сервера mmo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...