Show / Hide Table of Contents

# Interface ICacheMetrics

Cache metrics used to obtain statistics on cache itself.

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

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

##### Syntax

    public interface ICacheMetrics

### Properties

#### AverageGetTime

The mean time to execute gets.

##### Declaration

    float AverageGetTime { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The time in ms.

#### AveragePutTime

The mean time to execute puts.

##### Declaration

    float AveragePutTime { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The time in s.

#### AverageRemoveTime

The mean time to execute removes.

##### Declaration

    float AverageRemoveTime { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The time in ms.

#### AverageTxCommitTime

The mean time to execute tx commit.

##### Declaration

    float AverageTxCommitTime { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The time in ms.

#### AverageTxRollbackTime

The mean time to execute tx rollbacks.

##### Declaration

    float AverageTxRollbackTime { get; }

##### Property Value

Type | Description
--- | ---
System.Single | Number of transaction rollbacks.

#### CacheEvictions

The total number of evictions from the cache. An eviction is a removal initiated by the cache itself to free up space. An eviction is not treated as a removal and does not appear in the removal counts.

##### Declaration

    long CacheEvictions { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of evictions.

#### CacheGets

The total number of requests to the cache. This will be equal to the sum of the hits and misses.

##### Declaration

    long CacheGets { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of gets.

#### CacheHitPercentage

This is a measure of cache efficiency.

##### Declaration

    float CacheHitPercentage { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The percentage of successful hits, as a decimal e.g 75.

#### CacheHits

The number of get requests that were satisfied by the cache.

##### Declaration

    long CacheHits { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of hits.

#### CacheMisses

A miss is a get request that is not satisfied.

##### Declaration

    long CacheMisses { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of misses.

#### CacheMissPercentage

Returns the percentage of cache accesses that did not find a requested entry in the cache.

##### Declaration

    float CacheMissPercentage { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The percentage of accesses that failed to find anything.

#### CacheName

Gets cache name.

##### Declaration

    string CacheName { get; }

##### Property Value

Type | Description
--- | ---
System.String | Cache name.

#### CachePuts

The total number of puts to the cache.

##### Declaration

    long CachePuts { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of puts.

#### CacheRemovals

The total number of removals from the cache. This does not include evictions, where the cache itself initiates the removal to make space.

##### Declaration

    long CacheRemovals { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of removals.

#### CacheSize

Gets number of non-null values in the cache.

##### Declaration

    long CacheSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of non-null values in the cache.

#### CacheTxCommits

Gets total number of transaction commits.

##### Declaration

    long CacheTxCommits { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of transaction commits.

#### CacheTxRollbacks

Gets total number of transaction rollbacks.

##### Declaration

    long CacheTxRollbacks { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of transaction rollbacks.

#### DhtEvictQueueCurrentSize

Gets current size of evict queue used to batch up evictions.

##### Declaration

    int DhtEvictQueueCurrentSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Current size of evict queue.

#### EntryProcessorAverageInvocationTime

The mean time to execute cache invokes.

##### Declaration

    float EntryProcessorAverageInvocationTime { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The time in µs.

#### EntryProcessorHitPercentage

The percentage of invocations on keys, which exist in cache.

##### Declaration

    float EntryProcessorHitPercentage { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The percentage of successful invocation hits.

#### EntryProcessorHits

The total number of invocations on keys, which exist in cache.

##### Declaration

    long EntryProcessorHits { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of cache invocation hits.

#### EntryProcessorInvocations

The total number of cache invocations.

##### Declaration

    long EntryProcessorInvocations { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of cache invocations.

#### EntryProcessorMaxInvocationTime

So far, the maximum time to execute cache invokes.

##### Declaration

    float EntryProcessorMaxInvocationTime { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The time in µs.

#### EntryProcessorMinInvocationTime

So far, the minimum time to execute cache invokes.

##### Declaration

    float EntryProcessorMinInvocationTime { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The time in µs.

#### EntryProcessorMisses

The total number of invocations on keys, which don't exist in cache.

##### Declaration

    long EntryProcessorMisses { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of cache invocation misses.

#### EntryProcessorMissPercentage

The percentage of invocations on keys, which don't exist in cache.

##### Declaration

    float EntryProcessorMissPercentage { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The percentage of invocation misses.

#### EntryProcessorPuts

The total number of cache invocations, caused update.

##### Declaration

    long EntryProcessorPuts { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of invocation updates.

#### EntryProcessorReadOnlyInvocations

The total number of cache invocations, caused no updates.

##### Declaration

    long EntryProcessorReadOnlyInvocations { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of read-only invocations.

#### EntryProcessorRemovals

The total number of cache invocations, caused removal.

##### Declaration

    long EntryProcessorRemovals { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of invocation removals.

#### EstimatedRebalancingFinishTime

Gets estimated rebalancing finish time. entries in onheap cache and near entries.

##### Declaration

    long EstimatedRebalancingFinishTime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Estimated rebalancing finish time.

#### EstimatedRebalancingKeys

Gets number of estimated keys to rebalance. need to be cleared before actual rebalance start.

##### Declaration

    long EstimatedRebalancingKeys { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of estimated keys to rebalance.

#### HeapEntriesCount

Gets the number of cache entries in heap memory, including entries held by active transactions, entries in onheap cache and near entries.

##### Declaration

    long HeapEntriesCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of entries in heap memory.

#### IsEmpty

Returns true if this cache is empty.

##### Declaration

    bool IsEmpty { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | True if this cache is empty.

#### IsManagementEnabled

Checks whether management is enabled on this cache.

The default value is false.

##### Declaration

    bool IsManagementEnabled { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | True if management is enabled.

#### IsReadThrough

Determines if a cache should operate in read-through mode.

The default value is false

##### Declaration

    bool IsReadThrough { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | True when a cache is in "read-through" mode.

#### IsStatisticsEnabled

Checks whether statistics collection is enabled in this cache.

The default value is false.

##### Declaration

    bool IsStatisticsEnabled { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | True if statistics collection is enabled.

#### IsStoreByValue

Whether storeByValue true or storeByReference false. When true, both keys and values are stored by value.

When false, both keys and values are stored by reference. Caches stored by reference are capable of mutation by any threads holding the reference. The effects are:

- if the key is mutated, then the key may not be retrievable or removable
- if the value is mutated, then all threads in the JVM can potentially observe those mutations, subject to the normal Java Memory Model rules. Storage by reference only applies to the local heap. If an entry is moved off heap it will need to be transformed into a representation. Any mutations that occur after transformation may not be reflected in the cache.

  When a cache is storeByValue, any mutation to the key or value does not affect the key of value stored in the cache.

  The default value is true.

##### Declaration

    bool IsStoreByValue { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | True if the cache is store by value.

#### IsValidForReading

Checks whether cache topology is valid for read operations.

##### Declaration

    bool IsValidForReading { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | True when cache topology is valid for reading.

#### IsValidForWriting

Checks whether cache topology is valid for write operations.

##### Declaration

    bool IsValidForWriting { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | True when cache topology is valid for writing.

#### IsWriteBehindEnabled

Returns true if write-behind is enabled.

##### Declaration

    bool IsWriteBehindEnabled { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | True if write-behind is enabled.

#### IsWriteThrough

Determines if a cache should operate in "write-through" mode.

Will appropriately cause the configured CacheWriter to be invoked.

The default value is false

##### Declaration

    bool IsWriteThrough { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | True when a cache is in "write-through" mode.

#### KeySize

Gets number of keys in the cache, possibly with null values.

##### Declaration

    int KeySize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Number of keys in the cache.

#### KeysToRebalanceLeft

Gets estimated number of keys to be rebalanced on current node.

##### Declaration

    long KeysToRebalanceLeft { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Estimated number of keys to be rebalanced on current node.

#### KeyType

Determines the required type of keys for this cache, if any.

##### Declaration

    string KeyType { get; }

##### Property Value

Type | Description
--- | ---
System.String | The fully qualified class name of the key type, or "java.lang.Object" if the type is undefined.

#### OffHeapAllocatedSize

Gets memory size allocated in off-heap.

##### Declaration

    long OffHeapAllocatedSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Memory size allocated in off-heap.

#### OffHeapBackupEntriesCount

Gets number of backup entries stored in off-heap memory.

##### Declaration

    long OffHeapBackupEntriesCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of backup entries stored in off-heap memory.

#### OffHeapEntriesCount

Gets number of entries stored in off-heap memory.

##### Declaration

    long OffHeapEntriesCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of entries stored in off-heap memory.

#### OffHeapEvictions

The total number of evictions from the off-heap memory.

##### Declaration

    long OffHeapEvictions { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of evictions.

#### OffHeapGets

The total number of get requests to the off-heap memory.

##### Declaration

    long OffHeapGets { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of gets.

#### OffHeapHitPercentage

Gets the percentage of hits on off-heap memory.

##### Declaration

    float OffHeapHitPercentage { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The percentage of hits on off-heap memory.

#### OffHeapHits

The number of get requests that were satisfied by the off-heap memory.

##### Declaration

    long OffHeapHits { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The off-heap hits number.

#### OffHeapMisses

A miss is a get request that is not satisfied by off-heap memory.

##### Declaration

    long OffHeapMisses { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The off-heap misses number.

#### OffHeapMissPercentage

Gets the percentage of misses on off-heap memory.

##### Declaration

    float OffHeapMissPercentage { get; }

##### Property Value

Type | Description
--- | ---
System.Single | The percentage of misses on off-heap memory.

#### OffHeapPrimaryEntriesCount

Gets the number of primary entries stored in off-heap memory.

##### Declaration

    long OffHeapPrimaryEntriesCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of primary entries stored in off-heap memory.

#### OffHeapPuts

The total number of put requests to the off-heap memory.

##### Declaration

    long OffHeapPuts { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of puts.

#### OffHeapRemovals

The total number of removals from the off-heap memory. This does not include evictions.

##### Declaration

    long OffHeapRemovals { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | The number of removals.

#### RebalanceClearingPartitionsLeft

Gets number of partitions. need to be cleared before actual rebalance start.

##### Declaration

    long RebalanceClearingPartitionsLeft { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of clearing partitions for rebalance.

#### RebalancedKeys

Gets number of already rebalanced keys. need to be cleared before actual rebalance start.

##### Declaration

    long RebalancedKeys { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Number of already rebalanced keys.

#### RebalancingBytesRate

Gets estimated rebalancing speed in bytes.

##### Declaration

    long RebalancingBytesRate { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Estimated rebalancing speed in bytes.

#### RebalancingKeysRate

Gets estimated rebalancing speed in keys.

##### Declaration

    long RebalancingKeysRate { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Estimated rebalancing speed in keys.

#### RebalancingPartitionsCount

Gets number of currently rebalancing partitions on current node.

##### Declaration

    int RebalancingPartitionsCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Number of currently rebalancing partitions on current node.

#### RebalancingStartTime

Gets rebalancing start time. entries in onheap cache and near entries.

##### Declaration

    long RebalancingStartTime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Rebalancing start time.

#### Size

Gets number of non-null values in the cache.

##### Declaration

    int Size { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Number of non-null values in the cache.

#### TotalPartitionsCount

Gets total number of partitions on current node.

##### Declaration

    int TotalPartitionsCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Total number of partitions on current node.

#### TxCommitQueueSize

Gets committed transaction queue size.

##### Declaration

    int TxCommitQueueSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Committed transaction queue size.

#### TxCommittedVersionsSize

Gets number of cached committed transaction IDs.

##### Declaration

    int TxCommittedVersionsSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Number of cached committed transaction IDs.

#### TxDhtCommitQueueSize

Gets committed DHT transaction queue size.

##### Declaration

    int TxDhtCommitQueueSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Committed DHT transaction queue size.

#### TxDhtCommittedVersionsSize

Gets number of cached committed DHT transaction IDs.

##### Declaration

    int TxDhtCommittedVersionsSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Number of cached committed DHT transaction IDs.

#### TxDhtPrepareQueueSize

Gets prepared DHT transaction queue size.

##### Declaration

    int TxDhtPrepareQueueSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Prepared DHT transaction queue size.

#### TxDhtRolledbackVersionsSize

Gets number of cached rolled back DHT transaction IDs.

##### Declaration

    int TxDhtRolledbackVersionsSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Number of cached rolled back DHT transaction IDs.

#### TxDhtStartVersionCountsSize

Gets DHT start version counts map size.

##### Declaration

    int TxDhtStartVersionCountsSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | DHT start version counts map size.

#### TxDhtThreadMapSize

Gets transaction DHT per-thread map size.

##### Declaration

    int TxDhtThreadMapSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | DHT thread map size.

#### TxDhtXidMapSize

Gets transaction DHT per-Xid map size.

##### Declaration

    int TxDhtXidMapSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Transaction DHT per-Xid map size.

#### TxPrepareQueueSize

Gets prepared transaction queue size.

##### Declaration

    int TxPrepareQueueSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Prepared transaction queue size.

#### TxRolledbackVersionsSize

Gets number of cached rolled back transaction IDs.

##### Declaration

    int TxRolledbackVersionsSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Number of cached rolled back transaction IDs.

#### TxStartVersionCountsSize

Gets start version counts map size.

##### Declaration

    int TxStartVersionCountsSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Start version counts map size.

#### TxThreadMapSize

Gets transaction per-thread map size.

##### Declaration

    int TxThreadMapSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Thread map size.

#### TxXidMapSize

Gets transaction per-Xid map size.

##### Declaration

    int TxXidMapSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Transaction per-Xid map size.

#### ValueType

Determines the required type of values for this cache, if any.

##### Declaration

    string ValueType { get; }

##### Property Value

Type | Description
--- | ---
System.String | The fully qualified class name of the value type, or "java.lang.Object" if the type is undefined.

#### WriteBehindBufferSize

Gets count of entries that were processed by the write-behind store and have not been flushed to the underlying store yet.

##### Declaration

    int WriteBehindBufferSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Total count of entries in cache store internal buffer.

#### WriteBehindCriticalOverflowCount

Gets count of write buffer overflow events in progress at the moment. Each overflow event causes the ongoing flush operation to be performed synchronously.

##### Declaration

    int WriteBehindCriticalOverflowCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Count of cache overflow events since start.

#### WriteBehindErrorRetryCount

Gets count of cache entries that are in a store-retry state. An entry is assigned a store-retry state when underlying store failed due some reason and cache has enough space to retain this entry till the next try.

##### Declaration

    int WriteBehindErrorRetryCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Count of entries in store-retry state.

#### WriteBehindFlushFrequency

Gets the cache flush frequency. All pending operations on the underlying store will be performed within time interval not less then this value.

If this value is 0, then flush is performed only when buffer size exceeds flush size.

##### Declaration

    long WriteBehindFlushFrequency { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 | Flush frequency in milliseconds.

#### WriteBehindFlushSize

Gets the maximum size of the write-behind buffer. When the count of unique keys in write buffer exceeds this value, the buffer is scheduled for write to the underlying store.

If this value is 0, then flush is performed only on time-elapsing basis.

##### Declaration

    int WriteBehindFlushSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Buffer size that triggers flush procedure.

#### WriteBehindFlushThreadCount

Gets the number of flush threads that will perform store update operations.

##### Declaration

    int WriteBehindFlushThreadCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Count of worker threads.

#### WriteBehindStoreBatchSize

Gets the maximum count of similar (put or remove) operations that can be grouped to a single batch.

##### Declaration

    int WriteBehindStoreBatchSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Maximum size of batch.

#### WriteBehindTotalCriticalOverflowCount

Gets count of write buffer overflow events since initialization. Each overflow event causes the ongoing flush operation to be performed synchronously.

##### Declaration

    int WriteBehindTotalCriticalOverflowCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 | Count of cache overflow events since start.