Все новости
Это интересно
Сейчас читают
Diablo 2 Resurrected
Аватар Evernews Evernews

Блокировки и два уровня баз: как устроена архитектура Diablo 2 Resurrected

1
0
Поделиться
Телеграфировать

В обозримом будущем архитектуру серьезно переделают.

Блокировки и два уровня баз: как устроена архитектура Diablo 2 Resurrected

Blizzard опубликовала постмортем, посвященный стартовым техническим проблемам Diablo 2 Resurrected. Помимо рассказа о самих проблемах разработчики вкратце описали серверную архитектуру игры.

Оказалось, что Blizzard использует два уровня баз данных и до сих пор применяет фрагменты серверного кода, оставшиеся от оригинальной Diablo 2. Впрочем, в обозримом будущем это изменится: сейчас разработчики перекраивают архитектуру.

У Resurrected есть опорная база данных, где хранятся все данные всех персонажей из всех регионов. Чтобы не создавать на основную базу слишком большую нагрузку, ее используют в качестве «холодного» хранилища.

«Горячие» базы — свои у каждого региона, они есть в Азии, Европе, Северной Америка. Такие базы хранят информацию только о персонажах в конкретном регионе, время от времени данные из «горячей» локальной базы переписываются в «холодную» глобальную.

Во время игры данные игрока могут сохраняться в обеих базах: и в региональной, и в глобальной. Это неправильно, архитектуру поменяют: информация будет сбрасываться в глобальную базу только после того, как игрок «разлочивается» на локальной базе — например, выходя из игры. Такой подход позволит повысить производительность глобальной базы.

Архитектура стала причиной потери прогресса. Когда игрок подключается к Diablo 2 Resurrected, данные его персонажа перебрасываются в региональную базу данных и блокируются в глобальной. Если региональная база падает из-за высокой нагрузки, пользовавшихся ею игроков нельзя просто перенести на другой сервер.

Можно только снять блокировку в глобальной базе. Тогда игрок сможет подключиться к другому серверу, но есть вероятность, что в глобальной базе будут храниться слегка устаревшие данные о его персонаже.

За ключевые функции игры отвечает единственный сервис: клиенты Diablo 2 Resurrected взаимодействуют с ним, когда игроки подключаются или отключаются от сессии, загружают списки игр, получают информацию о состоянии серверов.

Запустить дополнительные экземпляры сервиса нельзя — так обеспечивается максимальная актуальность данных. Разработчики не уточняют, существует ли такой сервис в одном экземпляре на весь мир или только на регион.

Единственный сервис тоже переделают: разработчики разделят его на несколько микросервисов, один из которых, к примеру, будет отвечать только за показ доступных игр. Предполагается, что это позволит повысить производительность.

Читать далее
За сколько вы готовы купить GTA VI?
До 8000 рублей
298 голосов, 5.6%
До 7000 рублей
92 голоса, 1.7%
До 6000 рублей
119 голосов, 2.2%
До 5000 рублей
538 голосов, 10.1%
До 4000 рублей
143 голоса, 2.7%
До 3000 рублей
247 голосов, 4.6%
До 2000 рублей
617 голосов, 11.6%
За любые деньги
295 голосов, 5.5%
Ни за сколько, я пират
2985 голосов, 56.0%
Теги: Diablo 2 Resurrected, Игры
Аватар Evernews
Evernews
8074 подписчика