Вопрос Как хранить данные

Alexy30

Пользователь
Мне нужно где-то хранить уровень игрока. Знаю что можно использовать mysql, но слышал что там какие-то проблемы и нужно использовать пул конектов. Можете посоветовать как ещё можно хранить данные, или посоветуйте пул, или можно и без пула(в чём минусы такого способа)?
 

_MRDen3000YT_

Пользователь
DBCP или как ты выражаешься:
- отличный способ соединения с бд. При запросе к бд, пользователю выдается уже существующее соединение. Это решает ряд проблем, таких как избегание очередей при использовании синглтона и решает проблем долгих запросов. Сейчас найду статейку, скину.
Авто объединение сообщений:

Вот: https://habr.com/ru/post/101342/. Хоть и старая, но рабочая.
Еще такое есть:
Не смотрел, но должны быть связанно с майнкрафтом.
 

Alexy30

Пользователь
DBCP или как ты выражаешься:

- отличный способ соединения с бд. При запросе к бд, пользователю выдается уже существующее соединение. Это решает ряд проблем, таких как избегание очередей при использовании синглтона и решает проблем долгих запросов. Сейчас найду статейку, скину.
Авто объединение сообщений:

Вот: https://habr.com/ru/post/101342/. Хоть и старая, но рабочая.
Еще такое есть:
Не смотрел, но должны быть связанно с майнкрафтом.
При работе с пулом надо синхронизровать потоки и закрывать коннекты?
 

_MRDen3000YT_

Пользователь
закрывать коннекты
Нет, но желательно закрывать неиспользуемые. DBCP - это некий набор уже готовых соединений. И когда тебе надо обратиться к базе данных, тебе просто выдается уже готовое соединение и нет необходимости создавать новое соединение, тратить на это время. Вообще, этот принцип применяется в веб-приложениях, где бывает большое кол-во пользователей, соответственно, большое кол-во запросов в бд.

синхронизровать потоки
Всю работу с бд надо синхронизировать.
 

Xezard

Дегустатор лени
Модератор
Разработчик
Пользователь

_MRDen3000YT_

Пользователь
Ох уж эти советчики на форумах. Картина маслом.
Разочаровывает(
Я не прав?

Закрывать их нужно.

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

_MRDen3000YT_

Пользователь
Вообще это интуитивно понятно, что надо всегда закрывать соединения.

Насчет синхронизации - не знаю. Вроде все синхронизировано там.

UPD: Не надо синхронизировать бд, все и так уже сделано.
 
Последнее редактирование:

Alexy30

Пользователь
Вообще это интуитивно понятно, что надо всегда закрывать соединения.

Насчет синхронизации - не знаю. Вроде все синхронизировано там.

UPD: Не надо синхронизировать бд, все и так уже сделано.
так надо синхронизировать запросы к бд или можно обойтись и без этого?
 

Xezard

Дегустатор лени
Модератор
Разработчик
Пользователь
так надо синхронизировать запросы к бд или можно обойтись и без этого?
Что ты имеешь ввиду под "синхронизацией"?
У БД (по крайней мере mysql) есть система транзакций, ей в принципе без разницы каким там образом ты ей запросы кидаешь.
 

Alexy30

Пользователь
Что ты имеешь ввиду под "синхронизацией"?
У БД (по крайней мере mysql) есть система транзакций, ей в принципе без разницы каким там образом ты ей запросы кидаешь.
Писать synchronized относительно какого-то класса при каждом запросе к бд.
 

Marvin724

Пользователь
Писать synchronized относительно какого-то класса при каждом запросе к бд.
Каждый запрос к базе данных, по крайней мере, при работе с bukkit-сервером, должен быть выполнен асинхронно, чтобы не блокировать главный поток. Для этого нужно создать свой поток/воспользоваться bukkit scheduler и в нём это выполнить. На всё остальное тебе уже выше ответили
 
Последнее редактирование:

Alexy30

Пользователь
Каждый запрос к базе данных, по крайней мере, при работе с bukkit-сервером, должен быть выполнен асинхронно, чтобы не блокировать главный поток. Для этого нужно создать свой поток/воспользоваться bukkit scheduler и в нём это выполнить
Да, но между собой разве их не надо синхронизировать?
 

Xezard

Дегустатор лени
Модератор
Разработчик
Пользователь
Писать synchronized относительно какого-то класса при каждом запросе к бд.
Бред. Я ж написал - БД в принципе без разницы как ты там к ней запросы отправляешь.
Авто объединение сообщений:

Да, но между собой разве их не надо синхронизировать?
Зачем и для чего?
 

Комнаты в чате

Верх Низ