Data expiration contains elements that make the cache allocation more efficient. The feature removes items that are not current from the cache, freeing the memory and the resources associated.

Capability

Description

Weight

Transaction support

A cache that supports transactions will allow grouping actions and committing them at the same time. Usually the cache can be enlisted as a distributed transaction under technologies like DTC. The cache will provide BEGIN, COMMIT and ROLLBACK functionality. Usually this feature is implemented using a separate transaction log.

3

Guideline

The designer needs to consider if
  this feature is needed, first, this feature is usually quite expensive, not
  only on cache price tag but in performance. A designer should ask itself if a
  database will not be able to provide the functionality that requires, as they
  are transaction aware by design. If this feature is needed then try to avoid
  deadlock situations as cache servers are not very good detecting them when
  working in a very high distributed environment. We will recommend to analyze
  other options and if a transactional cache is needed do perform exhaustive
  testing.

Capability

Description

Weight

Multi-threading support

A multi thread environment aware
  cache will allow separate threads to access the same cache item without
  entering in race conditions while writing the item. Usually this capability
  implements an internal lock over the item only (note that some caches may use
  a table or region lock). Certain caches will also offer a capability to lock
  several cache items at the same time.

5

Guideline

This is simple, if a cache does
  not provide proper multithreading support just don’t buy it. Is within the
  nature of distributed caches to support multiple connections accessing the
  same information and if it does not support it then is not worth the
  investment.

Capability

Description

Weight

External dependencies

This capability allows cache
  items to have external cache items dependencies, for example files. This
  allows cache items to be either backed up or extended through a connection to
  an external source. Quick recovery caches use this technique to recover from
  faults.

2

Guideline

This feature has been very useful
  in the past, when 32 bits processes where running out memory pretty fast.
  Designers have implemented a secondary storage, for example a file to
  optimize the cache (using the cache as an index entry).  With the new 64 bits cache the memory can
  be plentiful but still consider this feature if you need to allocate large
  amount of data in the cache (for example photos, maps, videos).

Capability

Description

Weight

SQL Server synchronization

A cache may allow a cache item,
  cache region or table to be synchronized with a SQL Server database. This
  will mirror each entry to a database entry. This back up repository is
  usually accessed when a fault occurs or when a database item has changed and
  the cache needs to reflect the changes (instead of evicting the item).

3

Guideline

Losing a cache can be a big event
  in certain scenarios or if the system may be accessed by other systems that
  are not cache aware then a SQL dependency can be very helpful. We have seem
  dozen of scenarios where the data is replicated from a another location, i.e.
  a call center, and the data in the cache needs to be modified to stay
  current. There is a performance implication but experience says that is a
  very useful feature if those scenarios are considered.

Capability

Description

Weight

Oracle Synchronization

A cache may allow a cache item,
  cache region or table to be synchronized with an Oracle database. This will
  mirror each entry to a database entry. This back up repository is usually
  accessed when a fault occurs or when a database item has changed and the
  cache needs to reflect the changes (instead of evicting the item).

3

Guideline

Same guideline as above, in this
  case if your data is going to be supported by Oracle.

Capability

Description

Weight

Other DB synchronization

A cache may allow a cache item,
  cache region or table to be synchronized with other vendors database (i.e.
  Informix, Ingress, DB2 no name a few). This will mirror each entry to a
  database entry. This back up repository is usually accessed when a fault
  occurs or when a database item has changed and the cache needs to reflect the
  changes (instead of evicting the item).

3

Guideline

Same guideline as the SQL
  dependency but in this case consider caches with heterogeneous data models if
  you have scenarios with multiple database technologies utilization, therefore
  use it only when needed. Having individual gets on the hand will require a
  separate call per retrieval, affecting the network and cache performance.

 

Original Post by Salvador Patuel on Decemeber 3rd, 2011

Here: http://blogs.msdn.com/b/salvapatuel/archive/2011/12/03/distributed-cache-capabilities-data-integrity.aspx