Если бы это был Плоский Мир, сервер Транквилити был бы Великой А’Туин, Гигантской Звездной Черепахой, на которой зиждется все существующее. Но это Eve Online. Укрытая в том, что признано самым большим суперкомпьютером игровой индустрии, это изобилующая бандитами целостная вселенная Нового Эдема (New Eden). Согласно его создателям, CCP, чудовищный серверный кластер в Лондоне имеет 3936Гб ОЗУ, 2574Ггц процессорной мощности и оборудование военного класса.
Транквилити не сразу был таким, в течение более десяти лет он вырос из «нескольких компьютеров» в громадину размером со школьную аудиторию, проглатывая новые технологии и эволюционируя, чтобы отвечать требованиям полумиллиона игроков, живущих во вселенной Eve. Главный технологический инспектор CCP Халлдор Фаннар (Halldor Fannar) объяснил, как появился один из самых больших игровых суперкомпьютеров.
«Изначально мы начали проектировать [Eve Online] в 2000, когда важной проблемой интернета была задержка. Чтобы бороться с этим, мы спроектировали эти прокси, которые мы собирались расположить по всем миру чтобы кешировать информационные запросы по рыночным ценам и т.п., просто чтобы уменьшить задержку».
Идея была озвучена, но признана совершенно не обязательной. Ко времени выпуска CCP Games Eve Online в 2003, задержка стала не смертельной проблемой, а мелким неудобством. «В результате мы собрали все эти прокси в одном датацентре с сервером. Довольно интересно, как всё поменялось, как только мы запустились. В итоге мы получили все узлы сервера в одном месте, тогда как до этого мы планировали расположить их по всем миру».
Рост продолжался. В начале CCP Games планировали около 100 тысяч подписчиков, число, соответствующее примерно 20000 одновременных пользователей. Не стоит и говорить, эти планы рухнули. Количество игроков продолжает расти сверх изначальных ожиданий.
«Нам пришлось многое поменять». Халлдор вспоминает прошлое. «Нам пришлось взять службы, которые были связаны вместе и жили вместе на одном узле и разделить их, чтобы их можно было запустить независимо и, возможно, выделить отдельное железо для работы специфических служб.»
Приводя в пример рыночные узлы и узлы персонажей («Не планировалось так делать, но раз уж есть так много персонажей и так много людей, которые хотят получить доступ к скиллам -»), Халлдор объясняет что сейчас основной практикой является идентификация активно используемых служб и разделение их, это более сложный процесс, чем кажется.
«Вы не захотите разделять службу которая всё ещё будет много общаться с другой службой. Потому что тогда, конечно, вы перенесете её, но вы всё равно получите узкое место в коммуникациях между этими двумя службами».
Пока команда продолжает работать над переносом служб «высокой локальности» (служб, которым не требуется постоянная связь с другими службами) и применять веб-технологии сходные с теми, что используются в Facebook, сам кластерный сервер продолжает эволюционировать. Как живой объект, Транквилити постоянно ассимилирует новые технологии и избавляется от устаревших частей — с помощью человеческих рук, конечно.
«Когда технологии становятся лучше, становится лучше серверное оборудование. Иногда мы можем упростить ситуацию и заменить несколько компьютеров одним, который имеет несколько процессорных сокетов и несколько ядер».
Наибольшая проблема, согласно Халлдору, удостовериться что улучшения не вызовут в дальнейшем больше проблем. «Нам надо быть осторожным, потому что иногда вы можете взглянуть на наши проблемы и сказать, „Эй! Вам надо всего лишь сделать вот так!“, но это решение может быть более технологически сложным или тяжелым в поддержке. Наша база кода постоянно развивается и, на самом деле, вопрос поддержки ключевой. Если что-то сложно поддерживать, мы обычно не идем этим путем и выбираем тот, что возможно будет эффективен только на 80%, но легок в поддержке».
Один из ключевых компонентов Транквилити это его долговременный слой, основа, которая содержит очень много дневной активности Нового Элема. В целом, он содержится в твердотельных дисках, купленных в 2009 в Texas Memory System.
«Забавно было что в тот период эта технология существовал только у военных, поэтому нам понадобился военный допуск в бункер в Техасе, чтобы оценить оборудование, потому что компания тогда только начала искать пути коммерциализации этой штуки, которую они сделали для армии США. Мы были одними из первых клиентов и они подумали что это забавно, что они продвигаются от создания вещей для армии к чему-то такому легкомысленному».
С ухмылкой, Халлдон добавляет: «Конечно, мы сказали им, что Интернет-звездолеты — это серьезный бизнес».
Перемотав на сегодняшний день, мало кто может искоса взглянуть на Транквилити. Халлдор говорит, что поставщики оборудования рады работать с CCP Games, потому что их условия работы «достаточно уникальны» — преуменьшение, сделанное, потому что большая часть суперкомпьютеров обычно ориентированы на задачи связанные с работой. Строгая приверженность к оптимизации это то, что позволяет Eve Online функционировать как хорошо смазанному механизму, и это сложнее чем это звучит.
Если другие разработчики согнулись бы под тяжестью события «Горящей Житы», CCP Games решает переместить солнечную систему на отдельный узел («Наш специальный узел-снежника, как мы его называем», серьезно говорит Халлдор). Затем, после достижения предела, они замедляют время основываясь на количестве игроков присутствующих в бою. Технология работает. Игроки EVE Online получают войну, которую хотят, а CCP Games получает технологию, которую позже используют опять в Битве при Асакаи.
«Это пример сделанного нами усовершенствования. Битва при Асакаи не могла бы произойти без растяжения времени.»
Но CCP Games всё ещё не удовлетворены. Хотя у них есть аналогичные темные лошадки в загашнике, готовые к использованию, CCP Games намереваются быть на шаг впереди собственных игроков. «Одна из вещей, над которой мы работаем прямо сейчас, это алгоритм предсказания, чтобы мы могли анализировать все что происходит в мире. Если мы будем предупреждены хотя бы за 10 минут, мы сможем переместить симуляцию и запустить её на отдельном оборудовании.»
И если Skynet когда-нибудь станет правдой — мы знаем точно, кого в этом винить.
Перевод © dvigul