Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Старые ники 2 (или архивация)

Упомянутые в теме пользователи:

Показано с 1 по 12 из 24

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Местный Аватар для Полутень
    Регистрация
    30.12.2014
    Сообщений
    37
    Поблагодарил(а)
    4
    Получено благодарностей: 9 (сообщений: 6).
    Репутация: 9

    Lightbulb Старые ники 2 (или архивация)

    2garin поднял довольно актуальную тему. Но сам я думал о несколько ином варианте такой "чистки" старых персов: не удалять, а отправлять в архив.

    Т.е. выделить дополнительную архивную БД (типа "characters_archive") и перенести туда все записи, относящиеся к персонажам, которыми не играли более года, двух, трёх и т.д. При этом освободив ресурсы, которые занимали эти персонажи (guid, name, etc...).

    Правда, тут придётся проявить некую программерскую изобретательность, чтобы каскадно удалить все линки на этих чаров (на guid-ы чаров). Например, все ссылки на архивированного перса с крафтовых предметов (чтобы не указывался в качестве изготовителя персонаж, который потом займёт guid архивированного, возможно вообще удалять строчку с изготовителем), все ссылки из списка друзей, гильдии (если чар - не глава гильдии, а если глава гильдии, то удалить всех из гильдии и гильдию тоже в архив вместе с чаром).

    Тогда дополнительно к этому придётся ещё модифицировать ЛК, где в спец. разделе (например, "архив персонажей") можно будет просмотреть, каких чаров туда закатала архивирующая машина (не вручную же это делать). А чаров пусть потом за бонусы восстанавливают. А после восстановления, разумеется, смена ника (возможно, расы, фракции, либо это всё будет в стоимости восстановления чара) и присвоение новых guid-ов персонажам.

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

    Также можно было бы архивировать не только персонажей (с их инвентарями и гильдиями), но также и акаунты. Например, в БД "auth_archive", соответственно, с высвобождением account.id и account.username. Но в таком случае задача усложнится, т.к. нужно будет делать отдельный ЛК для архивированных аккаунтов (например, cparch.wowcircle.com) и предусмотреть возможность того, чтобы вернувшиеся игроки могли ввести свой старый username и password (sha_pass_hash не меняется). Но это, если хочется изысканных программных извращэний...

    А как критерий для архивирования можно было бы ввести дополнительную переменную на персонажа (или на аккаунт в целом), которая бы имела прямую зависимость от частоты посещений, количества достижений, игрового времени, потраченых на персонажа бонусов, и обратную зависимость от времени с момента последнего посещения, например:

    Код:
    Oc = (a*(O/T) + b*A + c*Pt + d*B) / T, где
    
      Oc (Online coefficient) - онлайн коэффициент
    
      a*(O/T) - частота посещаемости, где
    
        a - калибровочный коэффициент (по умолчанию = 1)
        O - количество дней, когда игрок входил в игру
        T - период существования персонажа/аккаунта (с момента создания/регистрации)
    
      b*A - достижения персонажа (суммарное кол-во ачив всех персонажей аккаунта), где
    
        b - калибровочный коэффициент
        A - достижения (возможно, просто ачивпойнты)
    
      c*Pt - игровое время данным персонажем (суммарное игровое время всех персонажей аккаунта), где
    
        c - калибровочный коэффициент
        Pt - непосредственно игровое время в днях/часах/минутах (одним числом)
    
      d*B - бонусозатраты на персонажа (всех персонажей аккаунта), где
    
        d - калибровочный коэффициент 
        B - непосредственно количество бонусов
    
      T - период (см. выше)
    Либо можно упростить формулу, объединив частоту посещений и игровое время:
    Код:
    Oc = (a*(Pt/T) + b*A + d*B) / T
    Калибровочные коэффициенты - для настройки важности того или иного аргумента для результирующего значения функции Oc. Если результат функции Oc не превышает какого-либо значения (а он будет снижаться с течением времени), то закатать в архив...

    Вычисление "онлайн коэффициента" можно производить раз в сутки (перед перезагрузкой), а архивирование сразу после перезагрузки (пока сервер ещё не загрузился).

    Вероятность того, что кто-то после двух лет не-игры опять вернётся не очень высока, но рабочая БД при этом будет содержать только актуальных персонажей.
    Последний раз редактировалось Полутень; 21.10.2015 в 01:04.

  2. 4 пользователей сказали cпасибо Полутень за это полезное сообщение:

    Musly (21.10.2015),OnTiz (21.10.2015),PewDiePiе (21.10.2015),Slackmode (22.10.2015)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •