469,632 Members | 1,730 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,632 developers. It's quick & easy.

Cache and Sliding Expiration

AFAIK, when placing an object into the Cache with no special instructions
(no dependencies, sliding expirations, hard expirations, etc), it will just
sit there in the Cache until the system decides it needs to remove the
object to free up memory. (If my understanding so far is wrong, please
clarify)

What I'd like to know is that if I place an object into the Cache with a
sliding expiration - is it possible/likely that the system will remove the
object prior to the expiration time being reached? Put another way, does a
sliding expiration *only* instruct the system to remove the object at a
certain time (at the end of the sliding window when eventually reached) -
but otherwise allows the object to be removed from the Cache to free up
resources if necessary prior to the end of the sliding window being reached?

My code doesn't make any assumptions either way about an object being in the
Cache at any given point in time - sliding window or not... I just want to
understand the whole sliding window thing better.

-GH
Nov 18 '05 #1
1 2656
The main thing about the sliding window is that it's reset every time
the cache is accessed. So if you add something to the cache with a
sliding timescale of 60 minutes and someone browses to the page every
55 minutes, the cache will never be expired. Sliding expiration doesn't
instruct the system to remove the object at a certain time - to do
that, use an Absolute Expiration set in the future:
Cache.Insert ("bigDataset", ds, null, DateTime.Now.AddMinutes (10),
Cache.NoSlidingExpiration);

As for whether or not the object will be removed from the Cache,
there's no way of knowing. Memory intensive objects are likely to be
removed when memory is tight on the server, which means that another
application's memory use could cause your application's cache to be
cleaned more aggressively.

You can also set the CacheItemPriority (CacheItemPriority.AboveNormal,
for instance) to give further hints on how you'd like your cache
managed.

As you indicated, you always have to assume your cache may have been
cleared every time you access it.
- Jon
http://weblogs.asp.net/jgalloway

Nov 18 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by MattC | last post: by
1 post views Thread by Olav Tollefsen | last post: by
2 posts views Thread by sternr | last post: by
3 posts views Thread by Aryan | last post: by
1 post views Thread by Q. John Chen | last post: by
2 posts views Thread by =?Utf-8?B?Y2F0?= | last post: by
4 posts views Thread by Jordan S. | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.