Хранить бизнес объекты в кэше или каждый раз создавать?
От: Быдлокодер  
Дата: 20.11.10 12:27
Оценка:
К примеру есть бизнес объект Department.
У объекта Department есть такие свойства как Employees, Orders и т.п.
Так же есть множество методов вроде AddEmployee и т.п.

В методе AddEmployee может выполняться много полезной работы кроме добавления самого рабочего в базу, например обновление разных числовых счетчиков, пересчета нагрузок и т.п.
Т.е. нам не нужно после добавления нового служащего в БД вытягивать из БД обновившуюся информацию — бизнес логика по идее должна корректно обновить свое состояние. Т.е. заметно сокращается кол-во обращений к БД.

Однако, если мы помещаем такой объект Department в кэш приложения (например, чтобы все реальные сотрудники одного департамента обслуживались одним бизнес-объектом когда запрашивают странички в браузере), то возникают проблемы параллельного доступа и устаревания данных.


Так вот, может быть все-таки лучше при каждом запросе загружать данные из БД?

Очень хотелось бы понять, как профессионалы поступают в таких случаях.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.