Ignite Cache Test

Apache Ignite is a memory based distributed caching and processing platform which can be used to cache, persist and process big data.It offers various features for Fast Data paradigm like In-memory distributed caching, high performance distributes computations, fault tolerant services, node auto discovery, map-reduce processing, etc. To support these features, Ignite provides components like DataGrid- Distributed Caches, Compute Grid- Distributed Processing, Service Grid- Distributed Services, etc. The core of the Ignite is it's Cache. Ignite Cache is Key-Value store very similar to hashtable, hashmap or map data structure in various programming languages. Only requirement to create cache in Ignite is define name of cache.

Given the cache is the core of Ignite and data storage, it is important to monitor the same periodically so that any issues can be proactively managed.

This test monitors various caches created on Ignite cluster and collects key statistics like number of cache entries, evictions, updates, hit, miss percentages etc. which essentially indicate the health of cache and trend analysis on these metrics can provide key information on cache performance.

Target of the test : Apache Ignite Server

Agent deploying the test : An internal or external agent

Outputs of the test : One set of results for each Apache Ignite Server

Configurable parameters for the test

Parameter

Description

Test period

How often should the test be executed.

Host

Enter the IP address of the Apache Ignite cluster.

Port

Enter the port number on which JMX connector listens to incoming connections requests.

JMX Remote Port

In this text box, enter the name of a virtual warehouse that needs to be monitored. The JMX connector listens on 8686 by default. If it listens on different port in your environment then specify the same.

JMX User

Specify the credentials of the user who is authorized to use JMX.

JMX Password

Specify the password for the authorized user.

Confirm Password

Confirm the password by retyping it here.

Measurements made by the test

Measurement

Description

Measurement Unit

Interpretation

Number of eviction entries

Indicates the total number of eviction from the cache since the cache is created.

Number

A healthy number of evictions would be maintained. If this number is low, the cache will eventually be full and administrators may need to increase the size.

Number of gets

Indicates the total number of get operations initiated on the cache since the cache is started

Number

All of these together provide a good measure of cache performance, if there are too many misses administrators or application programmers may have to adopt another caching strategy.

Number of hits

Indicates the number of successful retrievals from the cache since the cache is created.

Number

Number of misses

Indicates the number of unsuccessful attempts at retrieving entry from cache.

Number

Percentage of cache miss

Indicates the percentage of cache misses against the total number of get operations.

Percentage

Number of puts

Indicates the total number of operations where new entries were created in cache ever since cache was created.

Number

Adding of new entries of cache should be accompanied by some degree of cache evictions and removals otherwise the cache will keep growing. Administrators need to keep an eye on all cache additions and removals.

 

Number of removals

Indicates the total number of operations where the entry is removed from the cache.

Number

Number of non-null values in cache

Indicates the total number of values in the cache which are not null.

Number

This is the real measure of cache size as there may be lot of null values which are not consuming any memory.

Cache Size

Indicates the total size of cache in MB.

MB

 

Number of transaction commits

Indicates the total number of transactions committed in the cache ever since the cache is created.

Number

Ideally all the transaction should be committed and successfully completed, but in case the transactions are being rolled back repetedly and count of commits is low, the administrators or app programmers may need to redesign cache data or cache operation so that there are minimum failures of operations.

Number of transaction rollbacks

Indicates the total number of transactions rolled back in the cache ever since the cache is created.

Number

Number of keys in cache

Indicates the total number of keys in the cache at any given time.

Number

 

Keys to be rebalance on current node

Indicates the number of keys existing on current node which are yet to be rebalanced to other nodes.

Number

Key rebalancing provides a level of resilience against the cache failure.

Average time to execute get

Indicates the average time it takes to execute a get operation.

Seconds

 

These number should ideally remain steady over a number of transactions but in case the time taken is following an upward trend, it may be concerning and can be a sign of deteriorating performance of cache.

 

 

 

Average time to execute put

Indicates the average time it takes to execute a put operation.

Seconds

Average time to execute remove

Indicates the average time it takes to execute a remove operation.

Seconds

Average time to commit transaction

Indicates the average time it takes to commit a transaction on the cache.

Seconds