Я нахожусь в процессе создания довольно сложного приложения. Ожидается, что он будет работать на нескольких веб-серверах, иначе это будет легко.
По сути, у нас есть набор записей о клиентах. Каждая запись клиента имеет столбец XML, который содержит все «реальные» данные, такие как имя клиента и другие поля, которые создаются динамически. Наши пользователи могут обновить запись клиента в любое время. Также у нас есть записи приложений. Каждое приложение привязано к нескольким клиентам. Каждое приложение обычно привязано к более чем 3 клиентам. XML-данные каждого клиента, как правило, превышают 5 КБ текста.
В некотором профилировании, которое я сделал, получение и десериализация этих данных XML является довольно дорогой операцией. В одной части нашего веб-приложения у нас должны быть очень низкие задержки ( related ). Итак, во время этой части наше веб-приложение представляет собой веб-сервис JSON. Когда к нему делается запрос, обычно требуется каждая запись клиента (полностью, из-за того, как она в данный момент кодируется). Я пытаюсь сделать как можно меньше обращений к базе данных в этой части.
Как долго я должен кэшировать XML-объекты записей клиента? Зная, что пользователь может изменить его в любое время, я не уверен, стоит ли вообще его кэшировать, но могут ли пользователи жить со слегка устаревшими данными?