Show / Hide Table of Contents

# Namespace Apache.Ignite.Core.Cache

### Classes

#### CacheEntryProcessorException

An exception to indicate a problem occurred attempting to execute an ICacheEntryProcessor<TK, TV, TArg, TRes> against an entry.

#### CacheException

Indicates an error during Cache operation.

#### CachePartialUpdateException

Exception thrown from non-transactional cache in case when update succeeded only partially.

### Structs

#### CacheResult<T>

Represents a cache operation result with a success flag.

### Interfaces

#### ICache<TK, TV>

Main entry point for Ignite cache APIs. You can get a named cache by calling GetCache<TK, TV>(String) method.

Cache API supports distributed transactions. All `Get(...)`, `Put(...)`, `Replace(...)`, and `Remove(...)` operations are transactional and will participate in an ongoing transaction, if any. Other methods like `Peek(...)` or various `Contains(...)` methods may be transaction-aware, i.e. check in-transaction entries first, but will not affect the current state of transaction. See ITransaction documentation for more information about transactions.

Neither `null` keys or values are allowed to be stored in cache. If a `null` value happens to be in cache (e.g. after invalidation or remove), then cache will treat this case as there is no value at all.

Note that cache is generic and you can only work with provided key and value types. If cache also contains keys or values of other types, any attempt to retrieve them will result in System.InvalidCastException. Use ICache<TK, TV> in order to work with entries of arbitrary types.

All members are thread-safe and may be used concurrently from multiple threads.

#### ICacheAffinity

Provides affinity information to detect which node is primary and which nodes are backups for a partitioned cache. You can get an instance of this interface by calling GetAffinity(String) method.

Mapping of a key to a node is a three-step operation. First step will get an affinity key for given key using `CacheAffinityKeyMapper`. If mapper is not specified, the original key will be used. Second step will map affinity key to partition using `CacheAffinityFunction.partition(Object)` method. Third step will map obtained partition to nodes for current grid topology version.

Interface provides various `mapKeysToNodes(...)` methods which provide node affinity mapping for given keys. All `mapKeysToNodes(...)` methods are not transactional and will not enlist keys into ongoing transaction.

All members are thread-safe and may be used concurrently from multiple threads.

#### ICacheEntry<TK, TV>

Cache entry interface.

#### ICacheEntryFilter<TK, TV>

Cache entry predicate.

#### ICacheEntryProcessor<TK, TV, TArg, TRes>

An invocable function that allows applications to perform compound operations on a cache entry atomically, according the defined consistency of a cache.

Any cache entry mutations will not take effect until after the Process(IMutableCacheEntry<TK, TV>, TArg) method has completedS execution.

If an exception is thrown by an entry processor, a Caching Implementation must wrap any exception thrown wrapped in an CacheEntryProcessorException If this occurs no mutations will be made to the cache entry.

#### ICacheEntryProcessorResult<TK, T>

Represents a result of processing ICacheEntry<TK, TV> by ICacheEntryProcessor<TK, TV, TArg, TRes>.

#### ICacheLock

Cache locking interface.

All members are thread-safe and may be used concurrently from multiple threads.

#### ICacheMetrics

Cache metrics used to obtain statistics on cache itself.

#### IMemoryMetrics

Memory usage metrics. Obsolete, use IDataRegionMetrics.

#### IMutableCacheEntry<TK, TV>

Mutable representation of ICacheEntry<TK, TV>

#### IQueryMetrics

Cache query metrics used to obtain statistics on query.

### Enums

#### CachePeekMode

Enumeration of all supported cache peek modes.