Class CacheConfiguration
Defines grid cache configuration.
Inheritance
Namespace: Apache.Ignite.Core.Cache.Configuration
Assembly: Apache.Ignite.Core.dll
Syntax
public class CacheConfiguration : object
Constructors
CacheConfiguration()
Initializes a new instance of the CacheConfiguration class.
Declaration
public CacheConfiguration()
CacheConfiguration(CacheConfiguration)
Initializes a new instance of the CacheConfiguration class, performing a deep copy of specified cache configuration.
Declaration
public CacheConfiguration(CacheConfiguration other)
Parameters
Type | Name | Description |
---|---|---|
CacheConfiguration | other | The other configuration to perform deep copy from. |
CacheConfiguration(String)
Initializes a new instance of the CacheConfiguration class.
Declaration
public CacheConfiguration(string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | Cache name. |
CacheConfiguration(String, QueryEntity[])
Initializes a new instance of the CacheConfiguration class.
Declaration
public CacheConfiguration(string name, params QueryEntity[] queryEntities)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | Cache name. |
QueryEntity[] | queryEntities | Query entities. |
CacheConfiguration(String, Type[])
Initializes a new instance of the CacheConfiguration class and populates QueryEntities according to provided query types. This constructor is depricated, please use CacheConfiguration(String, QueryEntity[])
Declaration
public CacheConfiguration(string name, params Type[] queryTypes)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | Cache name. |
Type[] | queryTypes | Collection of types to be registered as query entities. These types should use QuerySqlFieldAttribute to configure query fields and properties. |
Fields
DefaultAtomicityMode
Default atomicity mode.
Declaration
public const CacheAtomicityMode DefaultAtomicityMode = CacheAtomicityMode.Atomic
Field Value
Type | Description |
---|---|
CacheAtomicityMode |
DefaultBackups
Default number of backups.
Declaration
public const int DefaultBackups = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultCacheMode
Default caching mode.
Declaration
public const CacheMode DefaultCacheMode = CacheMode.Partitioned
Field Value
Type | Description |
---|---|
CacheMode |
DefaultCacheSize
Default cache size to use with eviction policy.
Declaration
public const int DefaultCacheSize = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultCopyOnRead
Default value for 'copyOnRead' flag.
Declaration
public const bool DefaultCopyOnRead = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultEagerTtl
Default value for eager ttl flag.
Declaration
public const bool DefaultEagerTtl = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultEncryptionEnabled
Default value for EncryptionEnabled.
Declaration
public const bool DefaultEncryptionEnabled = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultInvalidate
Default value for 'invalidate' flag that indicates if this is invalidation-based cache.
Declaration
public const bool DefaultInvalidate = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultKeepBinaryInStore
Default value for KeepBinaryInStore property.
Declaration
public const bool DefaultKeepBinaryInStore = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultKeepVinaryInStore
Default value for keep portable in store behavior .
Declaration
public const bool DefaultKeepVinaryInStore = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultLoadPreviousValue
Default value for load previous value flag.
Declaration
public const bool DefaultLoadPreviousValue = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultLockTimeout
Default lock timeout.
Declaration
public static readonly TimeSpan DefaultLockTimeout
Field Value
Type | Description |
---|---|
TimeSpan |
DefaultLongQueryWarningTimeout
Default timeout after which long query warning will be printed.
Declaration
public static readonly TimeSpan DefaultLongQueryWarningTimeout
Field Value
Type | Description |
---|---|
TimeSpan |
DefaultMaxConcurrentAsyncOperations
Default value for 'maxConcurrentAsyncOps'.
Declaration
public const int DefaultMaxConcurrentAsyncOperations = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultMaxQueryIteratorsCount
Default value for MaxQueryIteratorsCount.
Declaration
public const int DefaultMaxQueryIteratorsCount = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultPartitionLossPolicy
Default value for PartitionLossPolicy.
Declaration
public const PartitionLossPolicy DefaultPartitionLossPolicy = PartitionLossPolicy.Ignore
Field Value
Type | Description |
---|---|
PartitionLossPolicy |
DefaultQueryDetailMetricsSize
Default value for QueryDetailMetricsSize.
Declaration
public const int DefaultQueryDetailMetricsSize = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultQueryParallelism
Default value for QueryParallelism.
Declaration
public const int DefaultQueryParallelism = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultReadFromBackup
Default value for 'readFromBackup' flag.
Declaration
public const bool DefaultReadFromBackup = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultReadThrough
Default value for read-through behavior.
Declaration
public const bool DefaultReadThrough = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultRebalanceBatchesPrefetchCount
Default value for RebalanceBatchesPrefetchCount.
Declaration
public const long DefaultRebalanceBatchesPrefetchCount = null
Field Value
Type | Description |
---|---|
System.Int64 |
DefaultRebalanceBatchSize
Default rebalance batch size in bytes.
Declaration
public const int DefaultRebalanceBatchSize = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultRebalanceMode
Default rebalance mode for distributed cache.
Declaration
public const CacheRebalanceMode DefaultRebalanceMode = CacheRebalanceMode.Async
Field Value
Type | Description |
---|---|
CacheRebalanceMode |
DefaultRebalanceOrder
Default value for RebalanceOrder.
Declaration
public const int DefaultRebalanceOrder = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultRebalanceThreadPoolSize
Default size of rebalance thread pool.
Declaration
public const int DefaultRebalanceThreadPoolSize = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultRebalanceThrottle
Time to wait between rebalance messages to avoid overloading CPU.
Declaration
public static readonly TimeSpan DefaultRebalanceThrottle
Field Value
Type | Description |
---|---|
TimeSpan |
DefaultRebalanceTimeout
Default rebalance timeout.
Declaration
public static readonly TimeSpan DefaultRebalanceTimeout
Field Value
Type | Description |
---|---|
TimeSpan |
DefaultSqlIndexMaxInlineSize
Default value for SqlIndexMaxInlineSize.
Declaration
public const int DefaultSqlIndexMaxInlineSize = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultStoreConcurrentLoadAllThreshold
Default value for StoreConcurrentLoadAllThreshold.
Declaration
public const int DefaultStoreConcurrentLoadAllThreshold = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultWriteBehindBatchSize
Default batch size for write-behind cache store.
Declaration
public const int DefaultWriteBehindBatchSize = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultWriteBehindCoalescing
Default value for WriteBehindCoalescing.
Declaration
public const bool DefaultWriteBehindCoalescing = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultWriteBehindEnabled
Default value for 'writeBehindEnabled' flag.
Declaration
public const bool DefaultWriteBehindEnabled = null
Field Value
Type | Description |
---|---|
System.Boolean |
DefaultWriteBehindFlushFrequency
Default flush frequency for write-behind cache store.
Declaration
public static readonly TimeSpan DefaultWriteBehindFlushFrequency
Field Value
Type | Description |
---|---|
TimeSpan |
DefaultWriteBehindFlushSize
Default flush size for write-behind cache store.
Declaration
public const int DefaultWriteBehindFlushSize = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultWriteBehindFlushThreadCount
Default count of flush threads for write-behind cache store.
Declaration
public const int DefaultWriteBehindFlushThreadCount = null
Field Value
Type | Description |
---|---|
System.Int32 |
DefaultWriteSynchronizationMode
Default value for WriteSynchronizationMode property.
Declaration
public const CacheWriteSynchronizationMode DefaultWriteSynchronizationMode = CacheWriteSynchronizationMode.PrimarySync
Field Value
Type | Description |
---|---|
CacheWriteSynchronizationMode |
DefaultWriteThrough
Default value for write-through behavior.
Declaration
public const bool DefaultWriteThrough = null
Field Value
Type | Description |
---|---|
System.Boolean |
Properties
AffinityFunction
Gets or sets the affinity function to provide mapping from keys to nodes.
Predefined implementations: RendezvousAffinityFunction.
Declaration
public IAffinityFunction AffinityFunction { get; set; }
Property Value
Type | Description |
---|---|
IAffinityFunction |
AtomicityMode
Gets or sets cache atomicity mode.
Declaration
public CacheAtomicityMode AtomicityMode { get; set; }
Property Value
Type | Description |
---|---|
CacheAtomicityMode |
Backups
Gets or sets number of nodes used to back up single partition for Partitioned cache.
Declaration
public int Backups { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
CacheMode
Gets or sets caching mode to use.
Declaration
public CacheMode CacheMode { get; set; }
Property Value
Type | Description |
---|---|
CacheMode |
CacheStoreFactory
Gets or sets the factory for underlying persistent storage for read-through and write-through operations.
See ReadThrough and WriteThrough properties to enable read-through and write-through behavior so that cache store is invoked on get and/or put operations.
If both ReadThrough and WriteThrough are
false
, cache store
will be invoked only on LoadCache(ICacheEntryFilter<TK, TV>, Object[]) calls.
Declaration
public IFactory<ICacheStore> CacheStoreFactory { get; set; }
Property Value
Type | Description |
---|---|
IFactory<ICacheStore> |
CopyOnRead
Gets or sets flag indicating whether copy of the value stored in cache should be created for cache operation implying return value.
Declaration
public bool CopyOnRead { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
DataRegionName
Gets or sets the name of the data region, see DataRegionConfiguration.
Declaration
public string DataRegionName { get; set; }
Property Value
Type | Description |
---|---|
System.String |
EagerTtl
Gets or sets flag indicating whether expired cache entries will be eagerly removed from cache. When set to false, expired entries will be removed on next entry access.
Declaration
public bool EagerTtl { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
EnableStatistics
Gets or sets a value indicating whether statistics gathering is enabled on a cache. These statistics can be retrieved via GetMetrics().
Declaration
public bool EnableStatistics { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
EncryptionEnabled
Gets or sets encryption flag. Default is false.
Declaration
public bool EncryptionEnabled { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
EvictionPolicy
Gets or sets the eviction policy. Null value means disabled evictions.
Declaration
public IEvictionPolicy EvictionPolicy { get; set; }
Property Value
Type | Description |
---|---|
IEvictionPolicy |
ExpiryPolicyFactory
Gets or sets the factory for IExpiryPolicy to be used for all cache operations, unless WithExpiryPolicy(IExpiryPolicy) is called.
Default is null, which means no expiration.
Declaration
public IFactory<IExpiryPolicy> ExpiryPolicyFactory { get; set; }
Property Value
Type | Description |
---|---|
IFactory<IExpiryPolicy> |
GroupName
Gets or sets the cache group name. Caches with the same group name share single underlying 'physical' cache (partition set), but are logically isolated.
Since underlying cache is shared, the following configuration properties should be the same within group: AffinityFunction, CacheMode, PartitionLossPolicy, DataRegionName
Grouping caches reduces overall overhead, since internal data structures are shared.
Declaration
public string GroupName { get; set; }
Property Value
Type | Description |
---|---|
System.String |
Invalidate
Invalidation flag. If true, values will be invalidated (nullified) upon commit in near cache.
Declaration
public bool Invalidate { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
KeepBinaryInStore
Gets or sets the flag indicating whether ICacheStore is working with binary objects instead of deserialized objects.
Declaration
public bool KeepBinaryInStore { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
KeyConfiguration
Gets or sets the key configuration.
Declaration
public ICollection<CacheKeyConfiguration> KeyConfiguration { get; set; }
Property Value
Type | Description |
---|---|
ICollection<CacheKeyConfiguration> |
LoadPreviousValue
Gets or sets flag indicating whether value should be loaded from store if it is not in the cache
for the following cache operations:
Declaration
public bool LoadPreviousValue { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
LockTimeout
Gets or sets default lock acquisition timeout.
Declaration
public TimeSpan LockTimeout { get; set; }
Property Value
Type | Description |
---|---|
TimeSpan |
LongQueryWarningTimeout
Gets or sets the timeout after which long query warning will be printed.
This property is obsolete, use LongQueryWarningTimeout instead.
Declaration
public TimeSpan LongQueryWarningTimeout { get; set; }
Property Value
Type | Description |
---|---|
TimeSpan |
MaxConcurrentAsyncOperations
Gets or sets maximum number of allowed concurrent asynchronous operations, 0 for unlimited.
Declaration
public int MaxConcurrentAsyncOperations { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
MaxQueryIteratorsCount
Gets or sets the maximum number of active query iterators.
Declaration
public int MaxQueryIteratorsCount { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
MemoryPolicyName
Gets or sets the name of the MemoryPolicyConfiguration for this cache. See MemoryConfiguration.
Declaration
public string MemoryPolicyName { get; set; }
Property Value
Type | Description |
---|---|
System.String |
Name
Gets or sets the cache name.
Declaration
public string Name { get; set; }
Property Value
Type | Description |
---|---|
System.String |
NearConfiguration
Gets or sets the near cache configuration.
Declaration
public NearCacheConfiguration NearConfiguration { get; set; }
Property Value
Type | Description |
---|---|
NearCacheConfiguration |
NodeFilter
Gets or sets the cluster node filter. Cache will be started only on nodes that match the filter.
Only predefined implementations are supported: AttributeNodeFilter.
Declaration
public IClusterNodeFilter NodeFilter { get; set; }
Property Value
Type | Description |
---|---|
IClusterNodeFilter |
OnheapCacheEnabled
Gets or sets a value indicating whether on-heap cache is enabled for the off-heap based page memory.
Declaration
public bool OnheapCacheEnabled { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
PartitionLossPolicy
Gets or sets the partition loss policy. This policy defines how Ignite will react to a situation when all nodes for some partition leave the cluster.
Declaration
public PartitionLossPolicy PartitionLossPolicy { get; set; }
Property Value
Type | Description |
---|---|
PartitionLossPolicy |
PlatformCacheConfiguration
Gets or sets platform cache configuration. More details: PlatformCacheConfiguration.
Declaration
public PlatformCacheConfiguration PlatformCacheConfiguration { get; set; }
Property Value
Type | Description |
---|---|
PlatformCacheConfiguration |
PluginConfigurations
Gets or sets the plugin configurations.
Declaration
public ICollection<ICachePluginConfiguration> PluginConfigurations { get; set; }
Property Value
Type | Description |
---|---|
ICollection<ICachePluginConfiguration> |
QueryDetailMetricsSize
Gets or sets the size of the query detail metrics to be stored in memory.
0 means disabled metrics.
Declaration
public int QueryDetailMetricsSize { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
QueryEntities
Gets or sets the query entity configuration.
Declaration
public ICollection<QueryEntity> QueryEntities { get; set; }
Property Value
Type | Description |
---|---|
ICollection<QueryEntity> |
QueryParallelism
Gets or sets the desired query parallelism within a single node. Query executor may or may not use this hint, depending on estimated query cost.
Default is DefaultQueryParallelism.
Declaration
public int QueryParallelism { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
ReadFromBackup
Gets or sets flag indicating whether data can be read from backup.
Declaration
public bool ReadFromBackup { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
ReadThrough
Gets or sets a value indicating whether read-through should be enabled for cache operations.
When in read-through mode, cache misses that occur due to cache entries not existing as a result of performing a "get" operations will appropriately cause the configured ICacheStore (see CacheStoreFactory) to be invoked.
Declaration
public bool ReadThrough { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
RebalanceBatchesPrefetchCount
Gets or sets the rebalance batches prefetch count.
Source node can provide more than one batch at rebalance start to improve performance. Default is DefaultRebalanceBatchesPrefetchCount, minimum is 2.
Declaration
public long RebalanceBatchesPrefetchCount { get; set; }
Property Value
Type | Description |
---|---|
System.Int64 |
RebalanceBatchSize
Gets or sets size (in number bytes) to be loaded within a single rebalance message. Rebalancing algorithm will split total data set on every node into multiple batches prior to sending data.
Declaration
public int RebalanceBatchSize { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
RebalanceDelay
Gets or sets delay upon a node joining or leaving topology (or crash) after which rebalancing should be started automatically. Rebalancing should be delayed if you plan to restart nodes after they leave topology, or if you plan to start multiple nodes at once or one after another and don't want to repartition and rebalance until all nodes are started.
Declaration
public TimeSpan RebalanceDelay { get; set; }
Property Value
Type | Description |
---|---|
TimeSpan |
RebalanceMode
Gets or sets cache rebalance mode.
Declaration
public CacheRebalanceMode RebalanceMode { get; set; }
Property Value
Type | Description |
---|---|
CacheRebalanceMode |
RebalanceOrder
Gets or sets the cache rebalance order. Caches with bigger RebalanceOrder are rebalanced later than caches with smaller RebalanceOrder.
Default is 0, which means unordered rebalance. All caches with RebalanceOrder=0 are rebalanced without any delay concurrently.
This parameter is applicable only for caches with RebalanceMode of Sync and Async.
Declaration
public int RebalanceOrder { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
RebalanceThrottle
Time to wait between rebalance messages to avoid overloading of CPU or network. When rebalancing large data sets, the CPU or network can get over-consumed with rebalancing messages, which consecutively may slow down the application performance. This parameter helps tune the amount of time to wait between rebalance messages to make sure that rebalancing process does not have any negative performance impact. Note that application will continue to work properly while rebalancing is still in progress.
Value of 0 means that throttling is disabled.
Declaration
public TimeSpan RebalanceThrottle { get; set; }
Property Value
Type | Description |
---|---|
TimeSpan |
RebalanceTimeout
Gets or sets rebalance timeout.
Declaration
public TimeSpan RebalanceTimeout { get; set; }
Property Value
Type | Description |
---|---|
TimeSpan |
SqlEscapeAll
If true all the SQL table and field names will be escaped with double quotes like ({ "tableName"."fieldsName"}). This enforces case sensitivity for field names and also allows having special characters in table and field names.
Declaration
public bool SqlEscapeAll { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
SqlIndexMaxInlineSize
Gets or sets maximum inline size in bytes for sql indexes. See also InlineSize. -1 for automatic.
Declaration
public int SqlIndexMaxInlineSize { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
SqlSchema
Gets or sets the SQL schema. Non-quoted identifiers are not case sensitive. Quoted identifiers are case sensitive.
Quoted Name is used by default.
Declaration
public string SqlSchema { get; set; }
Property Value
Type | Description |
---|---|
System.String |
StoreConcurrentLoadAllThreshold
Gets or sets the threshold to use when multiple keys are being loaded from an underlying cache store (see CacheStoreFactory).
In the situation when several threads load the same or intersecting set of keys and the total number of keys to load is less or equal to this threshold then there will be no second call to the storage in order to load a key from thread A if the same key is already being loaded by thread B.
The threshold should be controlled wisely. On the one hand if it's set to a big value then the interaction with a storage during the load of missing keys will be minimal.On the other hand the big value may result in significant performance degradation because it is needed to check for every key whether it's being loaded or not.
Declaration
public int StoreConcurrentLoadAllThreshold { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
WriteBehindBatchSize
Maximum batch size for write-behind cache store operations. Store operations (get or remove) are combined in a batch of this size to be passed to WriteAll(IEnumerable<KeyValuePair<TK, TV>>) or DeleteAll(IEnumerable<TK>) methods.
Declaration
public int WriteBehindBatchSize { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
WriteBehindCoalescing
Gets or sets write coalescing flag for write-behind cache store operations. Store operations (get or remove) with the same key are combined or coalesced to single, resulting operation to reduce pressure to underlying cache store.
Declaration
public bool WriteBehindCoalescing { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
WriteBehindEnabled
Flag indicating whether Ignite should use write-behind behaviour for the cache store.
Declaration
public bool WriteBehindEnabled { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
WriteBehindFlushFrequency
Frequency with which write-behind cache is flushed to the cache store. This value defines the maximum time interval between object insertion/deletion from the cache at the moment when corresponding operation is applied to the cache store.
If this value is 0, then flush is performed according to the flush size.
Note that you cannot set both WriteBehindFlushSize and WriteBehindFlushFrequency to 0.
Declaration
public TimeSpan WriteBehindFlushFrequency { get; set; }
Property Value
Type | Description |
---|---|
TimeSpan |
WriteBehindFlushSize
Maximum size of the write-behind cache. If cache size exceeds this value, all cached items are flushed to the cache store and write cache is cleared.
Declaration
public int WriteBehindFlushSize { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
WriteBehindFlushThreadCount
Number of threads that will perform cache flushing. Cache flushing is performed when cache size exceeds value defined by WriteBehindFlushSize, or flush interval defined by WriteBehindFlushFrequency is elapsed.
Declaration
public int WriteBehindFlushThreadCount { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
WriteSynchronizationMode
Gets or sets write synchronization mode. This mode controls whether the main
caller should wait for update on other nodes to complete or not.
Declaration
public CacheWriteSynchronizationMode WriteSynchronizationMode { get; set; }
Property Value
Type | Description |
---|---|
CacheWriteSynchronizationMode |
WriteThrough
Gets or sets a value indicating whether write-through should be enabled for cache operations.
When in "write-through" mode, cache updates that occur as a result of performing "put" operations will appropriately cause the configured ICacheStore (see CacheStoreFactory) to be invoked.
Declaration
public bool WriteThrough { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |