powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate + query cache.
11 сообщений из 36, страница 2 из 2
Hibernate + query cache.
    #37647167
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAВообще бывают и транзакционные кэши. Только нужно понимать, что "транзакционность" это огромная нагрузка на взаимодействие между нодами. И далеко не всегда она нужна.Бывать то бывают, но только из поддерживаемых Хибером к такой группе относится только JBoss-овский read-only кеш,
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37647235
rrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAВообще бывают и транзакционные кэши. Только нужно понимать, что "транзакционность" это огромная нагрузка на взаимодействие между нодами. И далеко не всегда она нужна.

Можно реализовать разными способами, в том числе и не зависящими от кол-ва нод.

Йуный джавистЪУ людей, которые хоть что-то понимают в узких местах при работе с БД, все эти гибернейтовские кэши вызывают смех.


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

Йуный джавистЪНе противопоставляю, а сравниваю.
Кэш и СУБД одинаково являются транзакционными хранилищами данных. В них используюся одинаковые механизмы (локи, MVCC). Не вижу, почему их нельзя сравнивать.
Если мы используем кэш поверх СУБД, то транзакции у нас будут только такие, какие поддерживает кэш. Если СУБД поддерживает read consistency, а кэш нет, то связка СУБД и кэша не поддерживает read consistency.

Read consistency можно гарантировать другими способами. Опять таки, всё зависит от задач. Не все же пишут приложения со сложными запросами.
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37647236
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rrrrrrrr,
+1
взвешенный подход
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37677799
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто разные задачи бывают, ведь обычная БД в типичной конфигурации не выдаёт 1 млн объектов в секунду, а с кешом это возможно устроить. Смотря что оптимизируем.

Весь фейсбук выдает 200_000 объектов в секунду из кэша. При этом он имеет тысячи машин с MySQL.
Миллион объектов - это невероятная цифра даже для веба. Hibernate в вебе - это нонсенс. Там, где используется Hibernate (корпоративные приложения), большой нагрузки не бывает. Например, вся Visa целиком - это несколько тысяч транзакций в секунду. Но при этом в корпоративных приложениях крайне важна целостность данных.
авторRead consistency можно гарантировать другими способами. Опять таки, всё зависит от задач. Не все же пишут приложения со сложными запросами.

Приложение с хибернейтовским кэшем будет некорректным даже если там нет сложных запросов. Пример: есть три таблицы: документы, приложения к документам и права на документы. Пользователь A открывает форму редактирования документа. Он добавляет к документу новое конфиденциальное приложение, и одновременно с помощью этой же формы убирает права на чтение этого документа для некой группы пользователей, в которую входит юзер B. После этого пользователь A жмет кнопку submit, данные сбрасываются в БД и в кэш.
В этот момент документ открывает пользователь B. Программа лезет в кэш, достает оттуда документ без приложений(приложения подгружаются ленивым образом) и права (старые), проверяет их. Проверка прав пройдена. Затем программа лезет в кэш и достает оттуда новые приложения, добавленные пользователем A, которые пользователь B в принципе не должен был увидеть.
Таким образом, простое включение хибернейтовского кэша (даже самого лучшего из имеющихся JBoss Cache) вносит в простейшую программу security bug.
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37677818
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪHibernate в вебе - это нонсенс.
Если вы не видели, это ещё не значит, что их нет. Например.
Высоконагруженый онлайн покер:
https://www.elance.com/samples/nlop-http-nlopcom/24285612/

Йуный джавистЪВ этот момент документ открывает пользователь B. Программа лезет в кэш, достает оттуда документ без приложений(приложения подгружаются ленивым образом) и права (старые), проверяет их. Проверка прав пройдена. Затем программа лезет в кэш и достает оттуда новые приложения, добавленные пользователем A, которые пользователь B в принципе не должен был увидеть.
Таким образом, простое включение хибернейтовского кэша (даже самого лучшего из имеющихся JBoss Cache) вносит в простейшую программу security bug.
Ну, т.е. любые права, помещенные в любой кэш, это бага Hibernate. LOL.
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37677847
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, т.е. любые права, помещенные в любой кэш, это бага Hibernate. LOL.

Ну представьте себе, что документы хранятся в кэше, а права в СУБД. Будет то же самое.
Не может быть такого, что полроты идет в ногу, а полроты - не в ногу. Вся рота будет идти не в ногу.
Высоконагруженый онлайн покер:

Там 2000 pageviews в день. Нагрузка, как я понимаю, исходит непосредственно с покерных столов?
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37677854
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪТам 2000 pageviews в день. Нагрузка, как я понимаю, исходит непосредственно с покерных столов?
ну, да. Не просто сайт же.
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37678124
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪ,
ты забыл о версиях объектов.
Любая другая сессия ДОЛЖНА проверять версию в БД. Если она изменилась, то нужно обновить кэш при чтении (он протух).
Как там реально это работает - надо тестировать.
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37678907
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪ
В этот момент документ открывает пользователь B. Программа лезет в кэш, достает оттуда документ без приложений(приложения подгружаются ленивым образом) и права (старые), проверяет их. Проверка прав пройдена. по идее как только правятся данные, то кэш должен инвалидировать старую версию этих же данных. Т.е. при сохранении хибер должен выдать команду кэшу на инвалидацию или обновить данные на актуальные. В случае кластера еще кинуть инвалидацию на другие ноды.

Вроде как именно так должно действовать приложение. Или я не прав? Как действует кластерный кэш под Хибером?
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37678913
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAКак действует кластерный кэш под Хибером?
мне тоже интересно, т.к. если делать буквально, то слишком большие затраты и зацикливание
кеш_через_сеть <---> БД
...
Рейтинг: 0 / 0
Hibernate + query cache.
    #37685234
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, да. Не просто сайт же.

А можно поинтересоваться, что вы храните в кэше? Состояние покерного стола?
...
Рейтинг: 0 / 0
11 сообщений из 36, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate + query cache.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]