Show / Hide Table of Contents

# Class CacheConfiguration

Defines grid cache configuration.

##### Inheritance

System.Object
CacheConfiguration

##### Inherited Members

System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()

###### Namespace: Apache.Ignite.Core.Cache.Configuration

###### Assembly: Apache.Ignite.Core.dll

##### Syntax

    public class CacheConfiguration : IBinaryRawWriteAware<BinaryWriter>

### 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 perfrom 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

    [Obsolete("This constructor is deprecated, please use CacheConfiguration(string, QueryEntity[]) instead.")]
    public CacheConfiguration(string name, params Type[] queryTypes)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | name | Cache name.
System.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 = 0

##### 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 = 100000

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultCopyOnRead

Default value for 'copyOnRead' flag.

##### Declaration

    public const bool DefaultCopyOnRead = true

##### Field Value

Type | Description
--- | ---
System.Boolean |

#### DefaultEagerTtl

Default value for eager ttl flag.

##### Declaration

    public const bool DefaultEagerTtl = true

##### Field Value

Type | Description
--- | ---
System.Boolean |

#### DefaultEncryptionEnabled

Default value for EncryptionEnabled.

##### Declaration

    public const bool DefaultEncryptionEnabled = false

##### 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 = false

##### Field Value

Type | Description
--- | ---
System.Boolean |

#### DefaultKeepBinaryInStore

Default value for KeepBinaryInStore property.

##### Declaration

    public const bool DefaultKeepBinaryInStore = false

##### Field Value

Type | Description
--- | ---
System.Boolean |

#### DefaultKeepVinaryInStore

Default value for keep portable in store behavior .

##### Declaration

    [Obsolete("Use DefaultKeepBinaryInStore instead.")]
    public const bool DefaultKeepVinaryInStore = true

##### Field Value

Type | Description
--- | ---
System.Boolean |

#### DefaultLoadPreviousValue

Default value for load previous value flag.

##### Declaration

    public const bool DefaultLoadPreviousValue = false

##### Field Value

Type | Description
--- | ---
System.Boolean |

#### DefaultLockTimeout

Default lock timeout.

##### Declaration

    public static readonly TimeSpan DefaultLockTimeout

##### Field Value

Type | Description
--- | ---
System.TimeSpan |

#### DefaultLongQueryWarningTimeout

Default timeout after which long query warning will be printed.

##### Declaration

    public static readonly TimeSpan DefaultLongQueryWarningTimeout

##### Field Value

Type | Description
--- | ---
System.TimeSpan |

#### DefaultMaxConcurrentAsyncOperations

Default value for 'maxConcurrentAsyncOps'.

##### Declaration

    public const int DefaultMaxConcurrentAsyncOperations = 500

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultMaxQueryIteratorsCount

Default value for MaxQueryIteratorsCount.

##### Declaration

    public const int DefaultMaxQueryIteratorsCount = 1024

##### 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 = 0

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultQueryParallelism

Default value for QueryParallelism.

##### Declaration

    public const int DefaultQueryParallelism = 1

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultReadFromBackup

Default value for 'readFromBackup' flag.

##### Declaration

    public const bool DefaultReadFromBackup = true

##### Field Value

Type | Description
--- | ---
System.Boolean |

#### DefaultReadThrough

Default value for read-through behavior.

##### Declaration

    public const bool DefaultReadThrough = false

##### Field Value

Type | Description
--- | ---
System.Boolean |

#### DefaultRebalanceBatchesPrefetchCount

Default value for RebalanceBatchesPrefetchCount.

##### Declaration

    public const long DefaultRebalanceBatchesPrefetchCount = 3L

##### Field Value

Type | Description
--- | ---
System.Int64 |

#### DefaultRebalanceBatchSize

Default rebalance batch size in bytes.

##### Declaration

    public const int DefaultRebalanceBatchSize = 524288

##### 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 = 0

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultRebalanceThreadPoolSize

Default size of rebalance thread pool.

##### Declaration

    public const int DefaultRebalanceThreadPoolSize = 4

##### 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
--- | ---
System.TimeSpan |

#### DefaultRebalanceTimeout

Default rebalance timeout.

##### Declaration

    public static readonly TimeSpan DefaultRebalanceTimeout

##### Field Value

Type | Description
--- | ---
System.TimeSpan |

#### DefaultSqlIndexMaxInlineSize

Default value for SqlIndexMaxInlineSize.

##### Declaration

    public const int DefaultSqlIndexMaxInlineSize = -1

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultStoreConcurrentLoadAllThreshold

Default value for StoreConcurrentLoadAllThreshold.

##### Declaration

    public const int DefaultStoreConcurrentLoadAllThreshold = 5

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultWriteBehindBatchSize

Default batch size for write-behind cache store.

##### Declaration

    public const int DefaultWriteBehindBatchSize = 512

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultWriteBehindCoalescing

Default value for WriteBehindCoalescing.

##### Declaration

    public const bool DefaultWriteBehindCoalescing = true

##### Field Value

Type | Description
--- | ---
System.Boolean |

#### DefaultWriteBehindEnabled

Default value for 'writeBehindEnabled' flag.

##### Declaration

    public const bool DefaultWriteBehindEnabled = false

##### 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
--- | ---
System.TimeSpan |

#### DefaultWriteBehindFlushSize

Default flush size for write-behind cache store.

##### Declaration

    public const int DefaultWriteBehindFlushSize = 10240

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultWriteBehindFlushThreadCount

Default count of flush threads for write-behind cache store.

##### Declaration

    public const int DefaultWriteBehindFlushThreadCount = 1

##### 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 = false

##### 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
--- | ---
System.Collections.Generic.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:

- PutIfAbsent(TK, TV)
- Replace(TK, TV)
- Remove(TK)
- GetAndPut(TK, TV)
- GetAndRemove(TK)
- GetAndReplace(TK, TV)
- GetAndPutIfAbsent(TK, TV)

##### 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
--- | ---
System.TimeSpan |

#### LongQueryWarningTimeout

Gets or sets the timeout after which long query warning will be printed.

This property is obsolete, use LongQueryWarningTimeout instead.

##### Declaration

    [Obsolete("Use IgniteConfiguration.LongQueryWarningTimeout instead.")]
    public TimeSpan LongQueryWarningTimeout { get; set; }

##### Property Value

Type | Description
--- | ---
System.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

    [Obsolete("Use DataRegionName.")]
    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 |

#### 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
--- | ---
System.Collections.Generic.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
--- | ---
System.Collections.Generic.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
--- | ---
System.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
--- | ---
System.TimeSpan |

#### RebalanceTimeout

Gets or sets rebalance timeout.

##### Declaration

    public TimeSpan RebalanceTimeout { get; set; }

##### Property Value

Type | Description
--- | ---
System.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
--- | ---
System.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 |