Apache Ignite.NET
Package Apache.Ignite.Core.Cache.Configuration

Ignite Configuration API. More...

Classes

class  CacheConfiguration
 Defines grid cache configuration. More...
 
class  NearCacheConfiguration
 Defines near cache configuration. More...
 
class  QueryAlias
 Represents cache query configuration alias. More...
 
class  QueryEntity
 Query entity is a description of cache entry (composed of key and value) in a way of how it must be indexed and can be queried. More...
 
class  QueryField
 Represents a queryable field. More...
 
class  QueryIndex
 Represents cache query index configuration. More...
 
class  QueryIndexField
 Represents an indexed field. More...
 
class  QuerySqlFieldAttribute
 Marks field or property for SQL queries. More...
 
class  QueryTextFieldAttribute
 Marks field or property for Text queries. More...
 

Enumerations

enum  CacheAtomicityMode { CacheAtomicityMode.Transactional, CacheAtomicityMode.Atomic }
 Cache atomicity mode. More...
 
enum  CacheAtomicWriteOrderMode { CacheAtomicWriteOrderMode.Clock, CacheAtomicWriteOrderMode.Primary }
 Cache write ordering mode. This enumeration is taken into account only in CacheAtomicityMode.Atomic atomicity mode. Write ordering mode determines which node assigns the write version, sender or the primary node. More...
 
enum  CacheMemoryMode { CacheMemoryMode.OnheapTiered, CacheMemoryMode.OffheapTiered, CacheMemoryMode.OffheapValues }
 Memory modes define whether cache entries are stored on heap memory, offheap memory, or in swap space. More...
 
enum  CacheMode { CacheMode.Local, CacheMode.Replicated, CacheMode.Partitioned }
 Caching modes. More...
 
enum  CacheRebalanceMode { CacheRebalanceMode.Sync, CacheRebalanceMode.Async, CacheRebalanceMode.None }
 Cache rebalance mode. When rebalancing is enabled (i.e. has value other than None), distributed caches will attempt to rebalance all necessary values from other grid nodes. More...
 
enum  CacheWriteSynchronizationMode { CacheWriteSynchronizationMode.FullSync, CacheWriteSynchronizationMode.FullAsync, CacheWriteSynchronizationMode.PrimarySync }
 Mode indicating how Ignite should wait for write replies from other nodes. More...
 
enum  QueryIndexType { QueryIndexType.Sorted, QueryIndexType.FullText, QueryIndexType.Geospatial }
 Query index type. More...
 

Detailed Description

Enumeration Type Documentation

Enumerator
Transactional 

Specifies fully ACID-compliant transactional cache behavior.

Atomic 

Specifies atomic-only cache behaviour. In this mode distributed transactions and distributed locking are not supported. Disabling transactions and locking allows to achieve much higher performance and throughput ratios.

In addition to transactions and locking, one of the main differences to Atomic mode is that bulk writes, such as ICache<TK,TV>.PutAll and ICache<TK,TV>.RemoveAll(System.Collections.Generic.IEnumerable<TK>) methods, become simple batch operations which can partially fail. In case of partial failure, CachePartialUpdateExceptionwill be thrown which will contain a list of keys for which the update failed. It is recommended that bulk writes are used whenever multiple keys need to be inserted or updated in cache, as they reduce number of network trips and provide better performance.

Note that even without locking and transactions, Atomic mode still provides full consistency guarantees across all cache nodes.

Also note that all data modifications in Atomic mode are guaranteed to be atomic and consistent with writes to the underlying persistent store, if one is configured.

Enumerator
Clock 

In this mode, write versions are assigned on a sender node which generally leads to better performance in CacheWriteSynchronizationMode.FullSync synchronization mode, since in this case sender can send write requests to primary and backups at the same time.

This mode will be automatically configured only with CacheWriteSynchronizationMode.FullSync write synchronization mode, as for other synchronization modes it does not render better performance.

Primary 

Cache version is assigned only on primary node. This means that sender will only send write request to primary node, which in turn will assign write version and forward it to backups.

Enumerator
OnheapTiered 

Entries will be stored on-heap first. The onheap tiered storage works as follows:

  • Entries are cached on heap memory first.
  • If offheap memory is enabled and eviction policy evicts an entry from heap memory, entry will be moved to offheap memory. If offheap memory is disabled, then entry is simply discarded.
  • If swap space is enabled and offheap memory fills up, then entry will be evicted into swap space. If swap space is disabled, then entry will be discarded. If swap is enabled and offheap memory is disabled, then entry will be evicted directly from heap memory into swap.

Note that heap memory evictions are handled by configured EvictionPolicy implementation. By default, no eviction policy is enabled, so entries never leave heap memory space unless explicitly removed.

OffheapTiered 

Works the same as OnheapTiered, except that entries never end up in heap memory and get stored in offheap memory right away. Entries get cached in offheap memory first and then get evicted to swap, if one is configured.

OffheapValues 

Entry keys will be stored on heap memory, and values will be stored in offheap memory. Note that in this mode entries can be evicted only to swap.

Enumerator
Local 

Specifies local-only cache behaviour. In this mode caches residing on different grid nodes will not know about each other.

Other than distribution, Local caches still have all the caching features, such as eviction, expiration, swapping, querying, etc... This mode is very useful when caching read-only data or data that automatically expires at a certain interval and then automatically reloaded from persistence store.

Replicated 

Specifies fully replicated cache behavior. In this mode all the keys are distributed to all participating nodes.

Partitioned 

Specifies partitioned cache behaviour. In this mode the overall key set will be divided into partitions and all partitions will be split equally between participating nodes.

Note that partitioned cache is always fronted by local 'near' cache which stores most recent data.

Replicated caches will try to load the full set of cache entries from other nodes, while partitioned caches will only load the entries for which current node is primary or backup.

Note that rebalance mode only makes sense for CacheMode.Replicated and CacheMode.Partitioned caches. Caches with CacheMode.Local mode are local by definition and therefore cannot rebalance any values from neighboring nodes.

Enumerator
Sync 

Synchronous rebalance mode. Distributed caches will not start until all necessary data is loaded from other available grid nodes.

Async 

Asynchronous rebalance mode. Distributed caches will start immediately and will load all necessary data from other available grid nodes in the background.

None 

In this mode no rebalancing will take place which means that caches will be either loaded on demand from persistent store whenever data is accessed, or will be populated explicitly.

Enumerator
FullSync 

Mode indicating that Ignite should wait for write or commit replies from all nodes. This behavior guarantees that whenever any of the atomic or transactional writes complete, all other participating nodes which cache the written data have been updated.

FullAsync 

Flag indicating that Ignite will not wait for write or commit responses from participating nodes, which means that remote nodes may get their state updated a bit after any of the cache write methods complete, or after Transaction#commit() method completes.

PrimarySync 

This flag only makes sense for CacheMode#PARTITIONED mode. When enabled, Ignite will wait for write or commit to complete on primary node, but will not wait for backups to be updated.

Enumerator
Sorted 

Sorted index.

FullText 

Fulltext index.

Geospatial 

Geo-spatial index.