ehcache

net.sf.ehcache.management
Class CacheStatistics

java.lang.Object
  extended by net.sf.ehcache.management.CacheStatistics
All Implemented Interfaces:
Serializable, CacheStatisticsMBean

public class CacheStatistics
extends Object
implements CacheStatisticsMBean, Serializable

A JMX CacheStatistics decorator for an ehcache Statistics class.

An immutable Cache statistics implementation}

This is like a value object, with the added ability to clear cache statistics on the cache. That ability does not survive any Serialization of this class. On deserialization the cache can be considered disconnected.

The accuracy of these statistics are determined by the value of {#getStatisticsAccuracy()} at the time the statistic was computed. This can be changed by setting net.sf.ehcache.Cache#setStatisticsAccuracy.

Because this class maintains a reference to an Ehcache, any references held to this class will precent the Ehcache from getting garbage collected.

Since:
1.3
Version:
$Id: CacheStatistics.java 7343 2013-04-03 15:23:10Z cschanck $
Author:
Greg Luck
See Also:
Serialized Form

Constructor Summary
CacheStatistics(Ehcache ehcache)
          Constructs an object from an ehcache statistics object
 
Method Summary
 String getAssociatedCacheName()
           
 double getCacheHitPercentage()
          Returns the percentage of cache accesses that found a requested item in the cache.
 long getCacheHits()
          The number of times a requested item was found in the cache.
 long getCacheMisses()
          Warning.
 double getCacheMissPercentage()
          Returns the percentage of cache accesses that did not find a requested element in the cache.
 long getDiskStoreObjectCount()
          Gets the number of objects in the DiskStore
 Ehcache getEhcache()
          Return the backing cache.
 double getInMemoryHitPercentage()
          Returns the percentage of cache accesses that found a requested item cached in-memory.
 long getInMemoryHits()
          Number of times a requested item was found in the Memory Store.
 long getInMemoryMisses()
          
 long getMemoryStoreObjectCount()
          Gets the number of objects in the MemoryStore
 long getObjectCount()
          Gets the number of elements stored in the cache.
 double getOffHeapHitPercentage()
          Returns the percentage of cache accesses that found a requested item cached off-heap.
 long getOffHeapHits()
          Number of times a requested item was found in the off-heap store.
 long getOffHeapMisses()
          
 long getOffHeapStoreObjectCount()
          Gets the number of objects in the OffHeapStore
 double getOnDiskHitPercentage()
          Returns the percentage of cache accesses that found a requested item cached on disk.
 long getOnDiskHits()
          Number of times a requested item was found in the Disk Store.
 long getOnDiskMisses()
          
 int getWriterMaxQueueSize()
          Gets the maximum size of the write-behind queue, if any.
 long getWriterQueueLength()
          Gets the size of the write-behind queue, if any.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CacheStatistics

public CacheStatistics(Ehcache ehcache)
Constructs an object from an ehcache statistics object

Parameters:
ehcache - the backing ehcache
Method Detail

getAssociatedCacheName

public String getAssociatedCacheName()
Specified by:
getAssociatedCacheName in interface CacheStatisticsMBean
Returns:
the name of the Ehcache, or null is there no associated cache

getInMemoryHits

public long getInMemoryHits()
Number of times a requested item was found in the Memory Store.

Specified by:
getInMemoryHits in interface CacheStatisticsMBean
Returns:
the number of times a requested item was found in memory

getOffHeapHits

public long getOffHeapHits()
Number of times a requested item was found in the off-heap store.

Specified by:
getOffHeapHits in interface CacheStatisticsMBean
Returns:
the number of times a requested item was found in off-heap

getOnDiskHits

public long getOnDiskHits()
Number of times a requested item was found in the Disk Store.

Specified by:
getOnDiskHits in interface CacheStatisticsMBean
Returns:
the number of times a requested item was found on Disk, or 0 if there is no disk storage configured.

getCacheMisses

public long getCacheMisses()
Warning. This statistic is recorded as a long. If the statistic is large than Integer#MAX_VALUE precision will be lost.

Specified by:
getCacheMisses in interface CacheStatisticsMBean
Returns:
the number of times a requested element was not found in the cache

getInMemoryMisses

public long getInMemoryMisses()

Specified by:
getInMemoryMisses in interface CacheStatisticsMBean
Returns:
the number of times a requested element was not found in the memory cache

getOffHeapMisses

public long getOffHeapMisses()

Specified by:
getOffHeapMisses in interface CacheStatisticsMBean
Returns:
the number of times a requested element was not found in the off-heap cache

getOnDiskMisses

public long getOnDiskMisses()

Specified by:
getOnDiskMisses in interface CacheStatisticsMBean
Returns:
the number of times a requested element was not found in the disk cache

getObjectCount

public long getObjectCount()
Gets the number of elements stored in the cache. Caclulating this can be expensive. Accordingly, this method will return three different values, depending on the statistics accuracy setting.

Best Effort Size

This result is returned when the statistics accuracy setting is Statistics.

The size is the number of Elements in the MemoryStore plus the number of Elements in the DiskStore.

This number is the actual number of elements, including expired elements that have not been removed. Any duplicates between stores are accounted for.

Expired elements are removed from the the memory store when getting an expired element, or when attempting to spool an expired element to disk.

Expired elements are removed from the disk store when getting an expired element, or when the expiry thread runs, which is once every five minutes.

Guaranteed Accuracy Size

This result is returned when the statistics accuracy setting is Statistics.

This method accounts for elements which might be expired or duplicated between stores. It take approximately 200ms per 1000 elements to execute.

Fast but non-accurate Size

This result is returned when the statistics accuracy setting is Statistics#STATISTICS_ACCURACY_NONE.

The number given may contain expired elements. In addition if the DiskStore is used it may contain some double counting of elements. It takes 6ms for 1000 elements to execute. Time to execute is O(log n). 50,000 elements take 36ms.

Specified by:
getObjectCount in interface CacheStatisticsMBean
Returns:
the number of elements in the ehcache, with a varying degree of accuracy, depending on accuracy setting.

getWriterQueueLength

public long getWriterQueueLength()
Gets the size of the write-behind queue, if any. The value is for all local buckets

Specified by:
getWriterQueueLength in interface CacheStatisticsMBean
Returns:
Elements waiting to be processed by the write behind writer. -1 if no write-behind

getWriterMaxQueueSize

public int getWriterMaxQueueSize()
Gets the maximum size of the write-behind queue, if any.

Specified by:
getWriterMaxQueueSize in interface CacheStatisticsMBean
Returns:
Maximum elements waiting to be processed by the write behind writer. -1 if no write-behind

getMemoryStoreObjectCount

public long getMemoryStoreObjectCount()
Gets the number of objects in the MemoryStore

Specified by:
getMemoryStoreObjectCount in interface CacheStatisticsMBean
Returns:
the MemoryStore size which is always a count unadjusted for duplicates or expiries

getOffHeapStoreObjectCount

public long getOffHeapStoreObjectCount()
Gets the number of objects in the OffHeapStore

Specified by:
getOffHeapStoreObjectCount in interface CacheStatisticsMBean
Returns:
the OffHeapStore size which is always a count unadjusted for duplicates or expiries

getDiskStoreObjectCount

public long getDiskStoreObjectCount()
Gets the number of objects in the DiskStore

Specified by:
getDiskStoreObjectCount in interface CacheStatisticsMBean
Returns:
the DiskStore size which is always a count unadjusted for duplicates or expiries

getEhcache

public Ehcache getEhcache()
Return the backing cache.

Returns:
the backing cache, if one is connected. On Serialization the transient Ehcache reference is dropped.

getCacheHitPercentage

public double getCacheHitPercentage()
Returns the percentage of cache accesses that found a requested item in the cache.

Specified by:
getCacheHitPercentage in interface CacheStatisticsMBean
Returns:
the percentage of successful hits

getCacheMissPercentage

public double getCacheMissPercentage()
Returns the percentage of cache accesses that did not find a requested element in the cache.

Specified by:
getCacheMissPercentage in interface CacheStatisticsMBean
Returns:
the percentage of accesses that failed to find anything

getInMemoryHitPercentage

public double getInMemoryHitPercentage()
Returns the percentage of cache accesses that found a requested item cached in-memory.

Specified by:
getInMemoryHitPercentage in interface CacheStatisticsMBean
Returns:
the percentage of successful hits from the MemoryStore

getOffHeapHitPercentage

public double getOffHeapHitPercentage()
Returns the percentage of cache accesses that found a requested item cached off-heap.

Specified by:
getOffHeapHitPercentage in interface CacheStatisticsMBean
Returns:
the percentage of successful hits from the OffHeapStore

getOnDiskHitPercentage

public double getOnDiskHitPercentage()
Returns the percentage of cache accesses that found a requested item cached on disk.

Specified by:
getOnDiskHitPercentage in interface CacheStatisticsMBean
Returns:
the percentage of successful hits from the DiskStore.

getCacheHits

public long getCacheHits()
The number of times a requested item was found in the cache.

Specified by:
getCacheHits in interface CacheStatisticsMBean
Returns:
the number of times a requested item was found in the cache

ehcache

Copyright 2001-2014, Terracotta, Inc.