Ash Motiwala has some follow-up questions to my previous responses to him.
After seeing my posted results he asks:
"If so, then why does anyone use a persistent cache? Anyone?"
Ash - this question has perplexed me as well :).
Then he requote's Blink Technologies comment - which I will respond to here:
I thought the whole point of the cache is to lighten the load against the system as a whole. It's a compromise of data freshness for performance. Plus the entire point of a cache is to "cache" frequently used data, of course depending on the algorithm used (LRU, MRU, etc.). I also assume that the cache is adjustable and can have specific timeouts for freshness. I think for a highly trafficked directory this is a great trade-off.
I thought the whole point of the cache is to lighten the load against the system as a whole.
This is not actually the case most of the time. The purpose of a cache is to reduce latency.
It's a compromise of data freshness for performance.
Correct. Except remember when we are talking about virtual directories - 1) the sources often have their own caches (to reduce latency) 2) the applications usually cache the lookups they do against a directory (e.g. they lookup once against OVD & that is it for the duration of the user's application session) 3) You are often using a directory in security applications thus you must pay extremely careful attention to that the data-freshness compromise. Remember identity data is not like cheese which gets better with age. It's more like raw milk - unless treated carefully - spoils quickly (with potentially devastating results).
Plus the entire point of a cache is to "cache" frequently used data, of course depending on the algorithm used (LRU, MRU, etc.). I also assume that the cache is adjustable and can have specific timeouts for freshness.
Yes - caches should be caching frequently used data. But let me go back to my initial point - CACHE ALREADY HAPPENS AT THE DATA-STORE AND APPLICATION LEVEL.
So any further caching at the virtual directory level - doesn't necessarily add any benefits. But in the rare case where you might need to access a data-store that doesn't do its own caching - OVD provides an in-memory cache plug-in that supports very granular configuration.