работать с ними - в памяти, в бд только записывая обновления?
Суть: куча объектов (оборудования), постоянно опрашивающегося на предмет кучи параметров. Это уже куча постоянных одинаковых запросов (на один объект - от пары десятков до сотен дочерних объектов) - но это хрен с ним, достаточно безболезненно для бд.
Еще это оборудование будет слать логи на сислог и снмп-трапы; какие-то события на оборудовании происходят постоянно, сейчас по нескольку сотен в секунду прилетает - и вот это уже похоже на бессмысленное дрочево БД: гораздо продуктивные было бы держать все в памяти
Сейчас еще в голову пришел вариант - простая обёртка над бд, кеширующая в памяти на энное время именно результат запросов (с ключем = мд5 строки запроса, например)
Кто как похожие кейсы решает?
Самое простое закешировать в редисе.
Если вы у бд один клиент, то вполне нормально. Это фактически и получается кэш. Хэш может давать коллизию и надо будет сравнивать запросы в любом случае. Можно мапу использовать или key/value хранилище.
А если по умному то делать unity of work
Примерно тут
Обсуждают сегодня