Is there a distributed caching system (ideally with a .NET client) that has programmatic cache dependencies out of the box?
In my research I have only found distributed caches with time based cache expiration.
Is there a distributed caching system (ideally with a .NET client) that has programmatic cache dependencies out of the box?
In my research I have only found distributed caches with time based cache expiration.
You can use GigaSpaces XAP data grid, and have a local cache on the client which holds the cache items that are needed by that client and have a full programmatic API for eviction of that cache in .NET.
See: http://wiki.gigaspaces.com/wiki/display/XAP9NET/Local+Cache
If you want to control the remote (distributed) cache eviction policy, for now you'll need to write it in Java.
So you can mix and match, have a .NET client with custom local eviction policy and have the remote distributed cache policy written in Java or have just one of the two.
This Java eviction policy API is actually just being improved to an easier API in the current developed version 9.1 which will be out in a two-three months, you can still use the early access of this version or instead use the older API.
You can see an example of a custom eviction policy of the new API in here: https://github.com/OpenSpaces/PrioritizedEvictionStrategy
You can read about the older API for custom eviciton policies here: http://wiki.gigaspaces.com/wiki/display/SBP/Custom+Eviction
The new API will soon be documented but it's pretty straight forward from the sample code in the link above.
By the way, I am GigaSpaces employee.