Size: a a a

Spring Framework and more

2019 June 27

RC

Roman Chernyshev in Spring Framework and more
поднимет кластер)
источник

RC

Roman Chernyshev in Spring Framework and more
добавит еще подов на обработку
источник

RC

Roman Chernyshev in Spring Framework and more
делов то
источник

P

Profyan99 in Spring Framework and more
Human
Это ествественно, понятие кеш подразумевает под собой наличие постоянного хранилища.
Вы не понимаете навеное до конца, что именно значит согласованность/консистетность. Кеш например может быть устаревшими данными, но в рамках конретной области это может быть нормой, скажем в течение 1 часа. А есть данные которые нельзя кешировать в рамках опять же какой-то предметной области
Я понимаю, что такое консистентность) И что кэш для увеличения производительности, чтобы не стучаться в бд каждый раз. Кстати про кэш, в hibernate есть же несколько уровней кэша, они не подойдут?
источник

H

Human in Spring Framework and more
Profyan99
Наоборот да, ок, без вопросов.
Но вот я говорю, что есть кейс, когда нужно в обратную сторону сделать вызов. Вот кейс:
Есть класс, в котором есть лист с комнатами.
Есть метод в этом классе, который шедулится каждую секунду и для каждой комнаты из листа вызывает метод update(). В этом методе апдейт состояние комнаты может обновится и нужна будет синхронизация сбд, чтобы сохранить актуальные данные
Так и где тут нужно что-то вызывать из объекта Команта?
источник

Д

Дмитрий in Spring Framework and more
Roman Chernyshev
добавит еще подов на обработку
Кластер с Марией?)))
источник

P

Profyan99 in Spring Framework and more
Human
Так и где тут нужно что-то вызывать из объекта Команта?
Сервис/дао, чтобы заапдэйтить комнату
источник

H

Human in Spring Framework and more
Profyan99
Я понимаю, что такое консистентность) И что кэш для увеличения производительности, чтобы не стучаться в бд каждый раз. Кстати про кэш, в hibernate есть же несколько уровней кэша, они не подойдут?
Вы понимаете, что такое итоговая согласованность? И чем она отличается от атомик согласнованности?
источник

P

Profyan99 in Spring Framework and more
Human
Вы понимаете, что такое итоговая согласованность? И чем она отличается от атомик согласнованности?
Вот этого уже не знаю. Если не сложно, то поясните
источник

H

Human in Spring Framework and more
Profyan99
Сервис/дао, чтобы заапдэйтить комнату
Вы можете к примеру вызвать .update, а затем передать эту сущность на сохранение в дао.
источник

P

Profyan99 in Spring Framework and more
Human
Вы можете к примеру вызвать .update, а затем передать эту сущность на сохранение в дао.
Из метода, который шедулится? А тогда ещё такой вопрос: он же шедулится в отдельном потоке, проблем не будет?
источник

H

Human in Spring Framework and more
Profyan99
Вот этого уже не знаю. Если не сложно, то поясните
Лучше конечно почитать, я плохо объясню. Но в целом атомик должно прийти в согласованное состояние - моментально, а итоговое может прийти в это согласованное состояние со временем (те какое-то время состояние будет не согласованным). Собственно как и кеш может отличаться от текущих реальных данных.
источник

P

Profyan99 in Spring Framework and more
Human
Лучше конечно почитать, я плохо объясню. Но в целом атомик должно прийти в согласованное состояние - моментально, а итоговое может прийти в это согласованное состояние со временем (те какое-то время состояние будет не согласованным). Собственно как и кеш может отличаться от текущих реальных данных.
Хорошо, допустим я понял. Вы задали эти вопросы, и что из этого следует?
источник

H

Human in Spring Framework and more
Profyan99
Из метода, который шедулится? А тогда ещё такой вопрос: он же шедулится в отдельном потоке, проблем не будет?
Ну допустим да. А какие проблемы вы считаете тут могут возникнуть?
источник

H

Human in Spring Framework and more
Profyan99
Хорошо, допустим я понял. Вы задали эти вопросы, и что из этого следует?
Ну я хотел донести, чтобы понять нужно ли кеш использовать и как долго он может быть в неконстистентном стостоянии это нужно смотреть детальнее на сам процесс предметной области, те в данном случае вашей игры.
Но я ваш 1) вопрос сам не до конца понял, чтобы точно на него ответить))
источник

P

Profyan99 in Spring Framework and more
Human
Ну допустим да. А какие проблемы вы считаете тут могут возникнуть?
Этот шедульный метод использует коллекцию copyOnWrite, ибо комнаты могут добавляться/удаляться динамически и чтобы не было проблем с доступом к данным.

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

И вот щас думаю, может реально нет проблем. Просто один раз spring jpa ругался, что при сохранении комнаты у меня мол две сущности с одинаковым id есть, но они не совпадают.
источник

P

Profyan99 in Spring Framework and more
Human
Ну я хотел донести, чтобы понять нужно ли кеш использовать и как долго он может быть в неконстистентном стостоянии это нужно смотреть детальнее на сам процесс предметной области, те в данном случае вашей игры.
Но я ваш 1) вопрос сам не до конца понял, чтобы точно на него ответить))
Первый легко понять так:
Если я буду каждую секунду обновлять все комнаты, насколько это плохо по производительности, если соблюдать все оптимизации с Lazy, EntityGraph и вообще все максимально по красоте делать?
Если слишком плохо, тогда вопрос уже в другом: как оптимизировать? Кэш. А какой кэш и на каком этапе.

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

H

Human in Spring Framework and more
Profyan99
Первый легко понять так:
Если я буду каждую секунду обновлять все комнаты, насколько это плохо по производительности, если соблюдать все оптимизации с Lazy, EntityGraph и вообще все максимально по красоте делать?
Если слишком плохо, тогда вопрос уже в другом: как оптимизировать? Кэш. А какой кэш и на каком этапе.

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

P

Profyan99 in Spring Framework and more
Human
Обычно производят замеры для этого. А еще есть понятие "преждевременная оптимизация", возможно этот случай под нее подходит.
Вот да, преждевременной оптимизацией страдаю. Но просто нет опыта, чтобы хоть как-то оценить, кейсов в интернете как-то тоже. Но и одновременно хочется по красоте делать, чтобы потом не переписывать все. (Хотя придется, кого я обманываю)
источник

H

Human in Spring Framework and more
Profyan99
Этот шедульный метод использует коллекцию copyOnWrite, ибо комнаты могут добавляться/удаляться динамически и чтобы не было проблем с доступом к данным.

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

И вот щас думаю, может реально нет проблем. Просто один раз spring jpa ругался, что при сохранении комнаты у меня мол две сущности с одинаковым id есть, но они не совпадают.
Скорее всего проблем действительно нет)
"Просто комната обновляться может не только из метода апдэйт"
По идее инкапсуляции - можно называть метод не update, а например то, что он реально делает к примеру changePlayersRating, и этот метод можно вызывать откуда угодно. Но можно сделать и в процедурном стиле, те использовать Комната просто как структуру данных без поведения
источник