0

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.

sellandb
  • 346
  • 1
  • 7

1 Answers1

5

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.

desertnaut
  • 57,590
  • 26
  • 140
  • 166
Eitan
  • 494
  • 5
  • 10
  • Thanks Eitan. For our needs, a truly distributed cache will be much more efficient, but the distributed cache eviction is an interesting idea. – sellandb Aug 27 '12 at 15:52
  • I am not entirely sure I understand you, GigaSpaces XAP data grid is a fully distributed cache. – Eitan Sep 04 '12 at 06:31
  • Sorry Eiten, I read your discussion of having a local cache on the client as meaning the product was a local cache product. I will take another look. – sellandb Sep 06 '12 at 13:50