powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Посоветуйте БД + кэширующая подсистема
8 сообщений из 33, страница 2 из 2
Посоветуйте БД + кэширующая подсистема
    #36189946
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dph3Так что иногда имеет смысл делать все-таки ручное кэширование.
Не спорю. Я вовсе не против кэширования; я против... того позиционирования, которое видится у топикстартера. Если я правильно понял его отношение, то в итоге собственного написания подсистемы кэширования у него получится специализированная in-memory СУБД, примерно так.
...
Рейтинг: 0 / 0
Посоветуйте БД + кэширующая подсистема
    #36190032
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerdph3Так что иногда имеет смысл делать все-таки ручное кэширование.
Не спорю. Я вовсе не против кэширования; я против... того позиционирования, которое видится у топикстартера. Если я правильно понял его отношение, то в итоге собственного написания подсистемы кэширования у него получится специализированная in-memory СУБД, примерно так.

Да я понимаю, что ты это и так все прекрасно знаешь )

я против... того позиционирования, которое видится у топикстартера. Если я правильно понял его отношение, то в итоге собственного написания подсистемы кэширования у него получится специализированная in-memory СУБД, примерно так.
Угу. При том, что памяти и так мало, а запросы редкие - в результате проблем будет у топикстартера только больше. Особенно когда БД в память не поместиться.
...
Рейтинг: 0 / 0
Посоветуйте БД + кэширующая подсистема
    #36192093
пролетевший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос еще, на чем все это писать...
Если на Java, то готовое решение - Hibernate + Oscache|Jboss cache ... , все работает именно так как хочет ТС - для разработчика все прозрачно, кеш работает за библиотекой и его в общем-то не видно. Можно насторить кеширование в памяти, на диске, в другой DB...
...
Рейтинг: 0 / 0
Посоветуйте БД + кэширующая подсистема
    #36192107
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пролетевший Если на Java, то готовое решение - Hibernate + Oscache|Jboss cacheЧисто из любопытства как кэш узнает что данные поменялись другой сессией и его (кэш) надо бы освежить (по таймауту, триггер в бд посылает сигнал, еще как-нибудь)
...
Рейтинг: 0 / 0
Посоветуйте БД + кэширующая подсистема
    #36192155
пролетевший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257Чисто из любопытства как кэш узнает что данные поменялись другой сессией и его (кэш) надо бы освежить (по таймауту, триггер в бд посылает сигнал, еще как-нибудь)
Явного механизма который бы отрабатывал изменения в базе другими приложениями - нет , кроме как настройки таймера.
Для веб приложения, которое только и работает с базой это не актуально, в других случаях кеш может приводить к проблемам. Хотя, если в приложении ТС чтение в сотни раз превышает добавления - для анонимных пользователей например можно и забить на задержку обновления.
...
Рейтинг: 0 / 0
Посоветуйте БД + кэширующая подсистема
    #36195459
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257Чисто из любопытства как кэш узнает что данные поменялись другой сессией и его (кэш) надо бы освежить
Если у нас не кластер и работа с БД делается через общий код, то в чем проблема? Тот код, что изменил данные - заодно и инвалидировал кэш (общий на виртуальную машину). В Hibernate, подозреваю, это делается вполне себе автоматически.

А вообще, для подобных задач есть минимум три принципиально разные стратегии ;)
...
Рейтинг: 0 / 0
Посоветуйте БД + кэширующая подсистема
    #36195485
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3 А вообще, для подобных задач есть минимум три принципиально разные стратегии ;) Попробую угадать
Первый - это просто таймер - по прошествии некоторого времени обновляемся
Второй - это регистрируемся в базе как подписчик некоего события и при изменении к-л. поля триггер сообщает подписчикам (асинхронно), что данный объект изменен
Третий - триггер вставляет запись в change log и подписчики регулярно просматривают свежие сообщения на предмет не задеты ли их закэшированные данные.

Если что не учел - напомните.
...
Рейтинг: 0 / 0
Посоветуйте БД + кэширующая подсистема
    #36204277
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257
Первый - это просто таймер - по прошествии некоторого времени обновляемся
Второй - это регистрируемся в базе как подписчик некоего события и при изменении к-л. поля триггер сообщает подписчикам (асинхронно), что данный объект изменен
Третий - триггер вставляет запись в change log и подписчики регулярно просматривают свежие сообщения на предмет не задеты ли их закэшированные данные.

Если что не учел - напомните.

Ну, я имел в виду немножко другое.

Первый вариант я вообще не рекомендую, уж очень дорогой.
Второй - крайне специфичен для конкретного сервера БД, сильно зависит от версии драйверов, потенциально глюкавый. Хотя если связываться не с БД, а с другим app-сервером, то получится классический push (синхронный или асинхронный - это уже детали реализации)
Третий - это одна из стандартных реализаций pull (вариантов там кучка).
И есть еще checkVersion - это когда у каждой строки (или, лучше, у каждого хранящегося в БД объекта) есть version (с инкрементом на каждое изменение) и при получении данных из кэша проверяется версия (один select по упорядоченному индексу - т.е. мгновенно) и если версии в кэше и в БД не совпали - то инвалидируем. Если совпали - то и хорошо. Впрочем, можно рассматривать это как вариант pull стратегии.

По опыту - обычно в проектах требуется как минимум две разные стратегии :)
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Посоветуйте БД + кэширующая подсистема
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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