Обновляет ли AppFabric Cache срок действия кэшированных элементов по мере их извлечения?

Когда элемент помещается в кеш, ему назначается тайм-аут (либо явно вызовом Put(), либо подразумеваемый из конфигурации кеша). Я хочу обновить/сбросить срок действия для каждого элемента, который я извлекаю [вызовите Get()].

Нужно ли явно размещать/обновлять элемент или время истечения срока действия будет автоматически обновлено до «Сейчас + тайм-аут»?

==ОБНОВЛЕНИЕ==

Похоже, намерение состоит в том, чтобы вызвать метод ResetObjectTimeout(). Я не вижу других упоминаний о логике обновления с истечением срока действия в документах.

==ОБНОВЛЕНИЕ 2==

В быстром тесте/эксперименте ResetObjectTimeout() генерирует столько же сетевого трафика, сколько и при использовании Put(), поэтому кажется, что вся запись передается по сети только для обновления тайм-аута. Я попробовал это с разными объемами данных для каждого элемента, и уровень трафика действительно увеличился с объемом данных, несмотря на то, что я не добавляю никаких новых элементов.

Причина, по которой я хочу обновить тайм-аут, заключается в том, что я хочу, чтобы элементы кеша оставались в кеше в течение N минут после их последнего использования. Я ожидаю, что это будет довольно распространенный шаблон использования, и для его реализации мне нужно повторно отправить все данные по сети для каждой операции получения, что значительно снижает преимущества использования кеша, например. ограничивает масштабируемость и производительность.


person redcalx    schedule 17.12.2012    source источник
comment
Вы тестировали ResetObjectTimeout с небольшими объектами? Попробуйте протестировать с большим объектом размером 5 МБ. Из-за сериализации WCF простое сообщение может занимать много байтов. Ваша производительность может снизиться из-за болтливых интерфейсов AppFabric.   -  person Cybermaxs    schedule 08.01.2013


Ответы (1)


Нет, потому что это все таймауты в appfabric абсолютны.

Как вы выяснили, в Data.Cache есть метод для сброса таймаута (по сути он позволяет применить новый таймаут без получения данных, не отдыхать по сути).

В зависимости от вашего сценария сквозное чтение и отложенная запись могут помочь посмотреть здесь< /а>

person Cybermaxs    schedule 18.12.2012