2012-12-17 3 views
2

항목이 캐시에 저장되면 (Put() 호출에 의해 명시 적으로 또는 캐시 구성에서 암시 된) 시간 제한이 할당됩니다. 나는 나가 [call Get() on]을 검색하는 각 항목에 대한 만료를 업데이트/재설정하려고합니다.AppFabric Cache는 캐시 된 항목을 검색 할 때 만료 시간을 업데이트합니까?

항목을 명시 적으로 넣거나 업데이트해야합니까? 아니면 만료 시간이 Now + timeout으로 자동 업데이트됩니까? 의도가 ResetObjectTimeout() method 호출해야한다는 것입니다 같은

== 업데이트 ==

보인다. 나는 문서에서 만료 업데이트 로직에 대한 다른 언급을 볼 수 없다.

== 업데이트 2 ResetObjectTimeout()을 (넣어 사용하는만큼 네트워크 트래픽을 생성 빠른 테스트/실험에서 ==

은)는 그래서하면 전체 항목이 네트워크를 통해 전달되는 것 같다 단지 타임 아웃을 갱신한다. 나는 항목마다 다른 양의 데이터를 사용하여이 작업을 시도했지만 새로운 항목을 추가하지 않고 있음에도 불구하고 트래픽 수준은 실제로 데이터 양과 함께 증가했습니다.

시간 제한을 업데이트하려는 이유는 캐시 항목을 마지막 사용 후 N 분 동안 캐시에 남아 있도록하려는 것입니다. 이것은 꽤 일반적인 사용 패턴이 될 것이라고 기대하고 그것을 구현하기 위해서는 네트워크를 통해 모든 데이터를 재전송해야 get 작업을 수행하므로 캐시 사용의 이점이 크게 줄어 듭니다. 확장 성 및 성능을 제한합니다.

+0

당신이 작은 물체와 ResetObjectTimeout을 테스트 한 모습을 도울 수? 5MB의 큰 개체로 테스트 해보십시오. WCF 직렬화로 인해 간단한 메시지는 많은 바이트를 사용할 수 있습니다. 귀하의 perf mab은 수다스러운 AppFabric 인터페이스 때문에 성능이 저하 될 수 있습니다. – Cybermaxs

답변

0

아니요, appfabric에서 모두 시간 초과이므로 절대적입니다.

Data.Cache에는 리셋 타임 아웃을위한 메소드가 있습니다 (실제로 데이터를 가져 오지 않고 새로운 타임 아웃을 적용 할 수 있습니다).

시나리오에 따라-을 통해 읽기와 쓰기 뒤에 here