Skip to content

Replace orm.j256 with HikaryCP#235

Open
sidey383 wants to merge 8 commits into
Elytrium:masterfrom
sidey383:feature/hikarycp
Open

Replace orm.j256 with HikaryCP#235
sidey383 wants to merge 8 commits into
Elytrium:masterfrom
sidey383:feature/hikarycp

Conversation

@sidey383
Copy link
Copy Markdown

@sidey383 sidey383 commented Apr 13, 2026

Решение из моего форка, который сейчас используется на сервере.

Проблема: текущая реализация держит одно подключение и в случае проблем с ним авторизация перестает работать.

Решение: orm.j256 заменен на HikaryCP, который держит пул подключений и автоматически переподключается к базе данных, если это необходимо.

Copy link
Copy Markdown
Member

@UserNugget UserNugget left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не выглядит достаточно стабильно из-за вставок SQL'а и того что это точно сломает аддон (не уверен что он вообще живой)

Подобное уже было сделано в 2.0.0, так что мне кажется лучше спросить mdxd44 по этому поводу.

@sidey383
Copy link
Copy Markdown
Author

sidey383 commented Apr 13, 2026

На счет аддона не знаю, первый раз его вижу.
А по поводу стабильности - это на практике стабильнее работает, именно по этому нам пришлось сделать форк. Одно подключение часто отваливалось, по разным причинам - настройки бд, проблемы с сетью.
Сами sql запросы тут базовые, так что с ними проблем нет и не должно быть.

@hevav
Copy link
Copy Markdown
Member

hevav commented Apr 14, 2026

С одной стороны давно пора было, это не единственная проблема текущего orm, там и производительность страдает из-за отсутствия асинхронности и конечно уже упомянутой однопоточности.

С другой стороны БД это чуть ли не основа плагина аутентификации, и такое изменение явно может что то сломать.

Варианты что я вижу:

  • оставить этот форк как отдельный плагин.
  • допилить нам ветку 2.0.0 до ума.
  • протестировать нам все функции на баги и совместимость (в т.ч. переписать аддон под эту версию)

@hevav
Copy link
Copy Markdown
Member

hevav commented Apr 14, 2026

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

@sidey383
Copy link
Copy Markdown
Author

На самом деле асинхронность это не такая большая проблема, особенно для velocity. Насколько я знаю, он и так всех игроков в разных потоках обрабатывает + авторизация не такая частая операция. Как минимум этот форк держал большой наплыв игроков, в несколько подключений в секунду, без заметных проблем.

@hevav
Copy link
Copy Markdown
Member

hevav commented Apr 14, 2026

он и так всех игроков в разных потоках обрабатывает + авторизация не такая частая операция

да (интересный факт - было время когда в велосити у всех плагинов был общий экзекьютор ивентов), но при этом при наплыве игроков происходит создание большого количества новых потоков что плохо сказывается на производительность и потребление ОЗУ.

@mdxd44
Copy link
Copy Markdown
Member

mdxd44 commented Apr 14, 2026

текущая реализация держит одно подключение

так там же JdbcPooledConnectionSource используется

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants