All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.ehcache.management.sampled.CacheSampler Maven / Gradle / Ivy

Go to download

Ehcache is an open source, standards-based cache used to boost performance, offload the database and simplify scalability. Ehcache is robust, proven and full-featured and this has made it the most widely-used Java-based cache.

There is a newer version: 2.10.9.2
Show newest version
/**
 *  Copyright Terracotta, Inc.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package net.sf.ehcache.management.sampled;

import java.util.Map;

import net.sf.ehcache.util.ManagementAttribute;
import net.sf.ehcache.util.counter.sampled.SampledCounter;
import net.sf.ehcache.util.counter.sampled.SampledRateCounter;


/**
 * An interface for exposing cache statistics.
 * Extends from {@link LegacyCacheStatistics}
 *
 * @author Abhishek Sanoujam
 * @author byoukste
 */
public interface CacheSampler extends LegacyCacheStatistics {
    
    /**
     * Is the cache enabled?.
     *
     * @return true, if is enabled
     */
    @ManagementAttribute
    boolean isEnabled();

    /**
     * Enabled/disable bulk-load mode for this node.
     *
     * @param bulkLoadEnabled the new node bulk load enabled
     */
    void setNodeBulkLoadEnabled(boolean bulkLoadEnabled);

    /**
     * Is the cache in bulk-load mode cluster-wide?.
     *
     * @return true, if is cluster bulk load enabled
     */
    boolean isClusterBulkLoadEnabled();

    /**
     * Is the cache in bulk-load mode locally?.
     *
     * @return true, if is node bulk load enabled
     */
    @ManagementAttribute
    boolean isNodeBulkLoadEnabled();

    /**
     * Enabled/disable the cache.
     *
     * @param enabled the new enabled
     */
    void setEnabled(boolean enabled);

    /**
     * Removes all cached items.
     */
    void removeAll();

    /**
     * Flushes all cache items from memory to the disk store, and from the
     * DiskStore to disk.
     */
    void flush();

    /**
     * Gets the status attribute of the Cache.
     *
     * @return The status value from the Status enum class
     */
    @ManagementAttribute
    String getStatus();

    /**
     * Is the cache configured with Terracotta clustering?.
     *
     * @return true if clustered with terracotta
     */
    @ManagementAttribute
    boolean isTerracottaClustered();

    /**
     * Returns a textual description of a Terracotta-clustered cache's consistency mode.
     *
     * @return "STRONG", "EVENTUAL", or "na" if the cache is not Terracotta-clustered
     */
    @ManagementAttribute
    String getTerracottaConsistency();

    /**
     * Configuration property accessor.
     *
     * @return Max entries local heap config setting value
     */
    @ManagementAttribute
    long getMaxEntriesLocalHeap();

    /**
     * setMaxEntriesLocalHeap.
     *
     * @param maxEntries the new max entries local heap
     */
    void setMaxEntriesLocalHeap(long maxEntries);

    /**
     * Configuration property accessor.
     *
     * @return Max bytes local heap config setting value
     */
    @ManagementAttribute
    long getMaxBytesLocalHeap();

    /**
     * setMaxBytesLocalHeap.
     *
     * @param maxBytes the new max bytes local heap
     */
    void setMaxBytesLocalHeap(long maxBytes);

    /**
     * setMaxBytesLocalHeap.
     *
     * @param maxBytes the new max bytes local heap as string
     */
    void setMaxBytesLocalHeapAsString(String maxBytes);

    /**
     * Configuration property accessor.
     *
     * @return Max bytes local heap config setting value as string
     */
    @ManagementAttribute
    String getMaxBytesLocalHeapAsString();

    /**
     * Configuration property accessor.
     *
     * @return Max bytes local offheap config setting value
     */
    @ManagementAttribute
    long getMaxBytesLocalOffHeap();

    /**
     * Configuration property accessor.
     *
     * @return Max bytes local offheap config setting value as string
     */
    @ManagementAttribute
    String getMaxBytesLocalOffHeapAsString();

    /**
     * Configuration property accessor.
     *
     * @return Max entries local disk config setting value
     */
    @ManagementAttribute
    long getMaxEntriesLocalDisk();

    /**
     * setMaxEntriesLocalDisk.
     *
     * @param maxEntries the new max entries local disk
     */
    void setMaxEntriesLocalDisk(long maxEntries);

    /**
     * Configuration property accessor.
     *
     * @return Max elements on disk config setting value
     */
    @ManagementAttribute
    int getMaxElementsOnDisk();

    /**
     * Configuration property accessor.
     *
     * @return Max entries in cache config setting value
     */
    @ManagementAttribute
    long getMaxEntriesInCache();

    /**
     * setMaxElementsOnDisk.
     *
     * @param maxElements the new max elements on disk
     */
    void setMaxElementsOnDisk(int maxElements);

    /**
     * setMaxEntriesInCache.
     *
     * @param maxEntries the new max entries in cache
     */
    void setMaxEntriesInCache(long maxEntries);

    /**
     * Configuration property accessor.
     *
     * @return Max bytes local disk config setting value
     */
    @ManagementAttribute
    long getMaxBytesLocalDisk();

    /**
     * setMaxBytesLocalDisk.
     *
     * @param maxBytes the new max bytes local disk
     */
    void setMaxBytesLocalDisk(long maxBytes);

    /**
     * setMaxBytesLocalDisk.
     *
     * @param maxBytes the new max bytes local disk as string
     */
    void setMaxBytesLocalDiskAsString(String maxBytes);

    /**
     * Configuration property accessor.
     *
     * @return Max bytes local disk config setting value as string
     */
    @ManagementAttribute
    String getMaxBytesLocalDiskAsString();

    /**
     * Configuration property accessor.
     *
     * @return a String representation of the policy
     */
    @ManagementAttribute
    String getMemoryStoreEvictionPolicy();

    /**
     * setMemoryStoreEvictionPolicy.
     *
     * @param evictionPolicy the new memory store eviction policy
     */
    void setMemoryStoreEvictionPolicy(String evictionPolicy);

    /**
     * Configuration property accessor.
     *
     * @return true if set to eternal in config
     */
    @ManagementAttribute
    boolean isEternal();

    /**
     * setEternal.
     *
     * @param eternal the new eternal
     */
    void setEternal(boolean eternal);

    /**
     * Configuration property accessor.
     *
     * @return TTI in config
     */
    @ManagementAttribute
    long getTimeToIdleSeconds();

    /**
     * setTimeToIdleSeconds.
     *
     * @param tti the new time to idle seconds
     */
    void setTimeToIdleSeconds(long tti);

    /**
     * Configuration property accessor.
     *
     * @return TTL in config
     */
    @ManagementAttribute
    long getTimeToLiveSeconds();

    /**
     * setTimeToLiveSeconds.
     *
     * @param ttl the new time to live seconds
     */
    void setTimeToLiveSeconds(long ttl);

    /**
     * Configuration property accessor.
     *
     * @return true if overflow to disk specified in config
     */
    @ManagementAttribute
    boolean isOverflowToDisk();

    /**
     * setOverflowToDisk.
     *
     * @param overflowToDisk the new overflow to disk
     */
    void setOverflowToDisk(boolean overflowToDisk);

    /**
     * Configuration property accessor.
     *
     * @return true if configured with disk persistence
     */
    @ManagementAttribute
    boolean isDiskPersistent();

    /**
     * setDiskPersistent.
     *
     * @param diskPersistent the new disk persistent
     */
    void setDiskPersistent(boolean diskPersistent);

    /**
     * isOverflowToOffHeap
     * 
     * @return true if configured for offheap
     */
    @ManagementAttribute
    boolean isOverflowToOffHeap();
    
    /**
     * getPersistenceStrategy
     * 
     * @return the strategy name
     * @see net.sf.ehcache.config.PersistenceConfiguration
     */
    @ManagementAttribute
    String getPersistenceStrategy();
    
    /**
     * Configuration property accessor
     *
     * @return Value for disk expiry thread interval in seconds specified in config
     */
    @ManagementAttribute
    long getDiskExpiryThreadIntervalSeconds();

    /**
     * setDiskExpiryThreadIntervalSeconds.
     *
     * @param seconds the new disk expiry thread interval seconds
     */
    void setDiskExpiryThreadIntervalSeconds(long seconds);

    /**
     * Configuration property accessor.
     *
     * @return true if logging is enabled on the cache
     */
    @ManagementAttribute
    boolean isLoggingEnabled();

    /**
     * setLoggingEnabled.
     *
     * @param enabled the new logging enabled
     */
    void setLoggingEnabled(boolean enabled);

    /**
     * Configuration property accessor.
     *
     * @return true if the cache is pinned
     * @see net.sf.ehcache.config.PinningConfiguration
     */
    @ManagementAttribute
    boolean isPinned();

    /**
     * Configuration property accessor.
     *
     * @return the store to which this cache is pinned
     * @see net.sf.ehcache.config.PinningConfiguration
     */
    @ManagementAttribute
    String getPinnedToStore();

    /**
     * Is there a registered Write-behind CacheWriter.
     *
     * @return the checks for write behind writer
     */
    @ManagementAttribute
    boolean getHasWriteBehindWriter();

    /**
     * Returns the total length of all write-behind queues for this cache.
     *
     * @return writer-behind queue length
     */
    long getWriterQueueLength();

    /**
     * Get the timestamp in nanos of the last rejoin.
     *
     * @return the most recent rejoin time stamp millis
     */
    long getMostRecentRejoinTimeStampMillis();
    
    /**
     * Returns the maximum size of any write-behind queues.
     *
     * @return Maximum elements that can be queued for processing by the write-behind writer
     * @see net.sf.ehcache.config.CacheWriterConfiguration#getWriteBehindMaxQueueSize()
     */
    @ManagementAttribute
    int getWriterMaxQueueSize();

    /**
     * Returns the number of configured write-behind queues/threads.
     *
     * @return Number of configured processing queues/threads for use by the write-behind writer
     * @see net.sf.ehcache.config.CacheWriterConfiguration#getWriteBehindConcurrency()
     */
    @ManagementAttribute
    int getWriterConcurrency();

    /**
     * Is the cache a transactional one.
     *
     * @return the transactional
     * @see net.sf.ehcache.config.CacheConfiguration.TransactionalMode
     */
    @ManagementAttribute
    boolean getTransactional();

    /**
     * Gets the transaction commit rate.
     *
     * @return Xa commit rate
     */
    long getTransactionCommitRate();

    /**
     * Gets the transaction rollback rate.
     *
     * @return Xa rollback rate
     */
    long getTransactionRollbackRate();

    /**
     * Is the cache configured for search.
     *
     * @return the searchable
     * @see net.sf.ehcache.config.Searchable
     */
    @ManagementAttribute
    boolean getSearchable();

    /**
     * Get the declared search attributes and their type names.
     * Note: doesn't deal with DynamicAttributeExctractor.
     * 
     * @return map of search attribute name {@code -> } type name
     */
    @ManagementAttribute
    Map getSearchAttributes();
    
    /**
     * Gets the cache search rate.
     *
     * @return search rate
     */
    long getCacheSearchRate();

    /**
     * Gets the average search time.
     *
     * @return search time
     */
    long getAverageSearchTime();

    /**
     * Gets the cache hit rate.
     *
     * @return hit rate
     */
    long getCacheHitRate();

    /**
     * Gets the cache in memory hit rate.
     *
     * @return in-memory hit rate
     */
    long getCacheInMemoryHitRate();

    /**
     * Gets the cache off heap hit rate.
     *
     * @return off-heap hit rate
     */
    long getCacheOffHeapHitRate();

    /**
     * Gets the cache on disk hit rate.
     *
     * @return on-disk hit rate
     */
    long getCacheOnDiskHitRate();

    /**
     * Gets the cache miss rate.
     *
     * @return miss rate
     */
    long getCacheMissRate();

    /**
     * Gets the cache in memory miss rate.
     *
     * @return in-memory miss rate
     */
    long getCacheInMemoryMissRate();

    /**
     * Gets the cache off heap miss rate.
     *
     * @return off-heap miss rate
     */
    long getCacheOffHeapMissRate();

    /**
     * Gets the cache on disk miss rate.
     *
     * @return on-disk miss rate
     */
    long getCacheOnDiskMissRate();

    /**
     * Gets the cache put rate.
     *
     * @return put rate
     */
    long getCachePutRate();

    /**
     * Gets the cache update rate.
     *
     * @return update rate
     */
    long getCacheUpdateRate();

    /**
     * Gets the cache remove rate.
     *
     * @return remove rate
     */
    long getCacheRemoveRate();

    /**
     * Gets the cache eviction rate.
     *
     * @return eviction rate
     */
    long getCacheEvictionRate();

    /**
     * Gets the cache expiration rate.
     *
     * @return expiration rate
     */
    long getCacheExpirationRate();

    /**
     * Gets the average get time.
     *
     * @return average get time (nanos.)
     */
    long getAverageGetTime();
    
    /**
     * Get the {@link SampledCounter} for cache hit.
     *
     * @return the {@code SampledCounter} for cache hit count
     */
    SampledCounter getCacheHitSample();

    /**
     * Get the {@link SampledCounter} for cache hit ratio.
     *
     * @return the {@code SampledCounter} for cache hit ratio
     */
    SampledCounter getCacheHitRatioSample();

    /**
     * Get the {@link SampledCounter} for in-memory cache hit.
     *
     * @return the {@code SampledCounter} for cache hit count in memory
     */
    SampledCounter getCacheHitInMemorySample();

    /**
     * Get the {@link SampledCounter} for off-heap cache hit.
     *
     * @return the {@code SampledCounter} for cache hit count in off-heap
     */
    SampledCounter getCacheHitOffHeapSample();

    /**
     * Get the {@link SampledCounter} for on-disk cache hit.
     *
     * @return the {@code SampledCounter} for cache hit count on disk
     */
    SampledCounter getCacheHitOnDiskSample();

    /**
     * Get the {@link SampledCounter} for cache miss.
     *
     * @return the {@code SampledCounter} for cache miss count
     */
    SampledCounter getCacheMissSample();

    /**
     * Get the {@link SampledCounter} for in-memory cache miss.
     *
     * @return the {@code SampledCounter} for cache miss count in memory
     */
    SampledCounter getCacheMissInMemorySample();

    /**
     * Get the {@link SampledCounter} for off-heap cache miss.
     *
     * @return the {@code SampledCounter} for cache miss count in off-heap
     */
    SampledCounter getCacheMissOffHeapSample();

    /**
     * Get the {@link SampledCounter} for on-disk cache miss.
     *
     * @return the {@code SampledCounter} for cache miss count on disk
     */
    SampledCounter getCacheMissOnDiskSample();

    /**
     * Get the {@link SampledCounter} for cache miss as result of the element getting
     * expired.
     *
     * @return the {@code SampledCounter} for cache miss count and the reason for miss
     * being the element got expired
     */
    SampledCounter getCacheMissExpiredSample();

    /**
     * Get the {@link SampledCounter} for cache miss as result of the element not found
     * in cache.
     *
     * @return the {@code SampledCounter} for cache miss not found count
     */
    SampledCounter getCacheMissNotFoundSample();

    /**
     * Get the {@link SampledCounter} element evicted from cache.
     *
     * @return the {@code SampledCounter} for element evicted count
     */
    SampledCounter getCacheElementEvictedSample();

    /**
     * Get the {@link SampledCounter} element removed from cache.
     *
     * @return the {@code SampledCounter} for element removed count
     */
    SampledCounter getCacheElementRemovedSample();

    /**
     * Get the {@link SampledCounter} element expired from cache.
     *
     * @return Most recent value for element expired count
     */
    SampledCounter getCacheElementExpiredSample();

    /**
     * Get the {@link SampledCounter} element puts in the cache.
     *
     * @return the {@code SampledCounter} for number of element puts
     */
    SampledCounter getCacheElementPutSample();

    /**
     * Get the {@link SampledCounter} element updates , i.e. put() on elements with
     * already existing keys in the cache
     *
     * @return the {@code SampledCounter}d value for element update count
     */
    SampledCounter getCacheElementUpdatedSample();

    /**
     * Get the {@link SampledRateCounter} for average time taken for get() operation in the
     * cache.
     *
     * @return the {@code SampledRateCounter} of average get time taken for a get operation
     */
    SampledRateCounter getAverageGetTimeSample();

    /**
     * Get the {@link SampledRateCounter} for average search execution time for searches finishing within the last sample period.
     *
     * @return the {@code SampledRateCounter} of average search time taken
     */
    SampledRateCounter getAverageSearchTimeSample();

    /**
     * Get the {@link SampledCounter} for number of searches that have finished in the interval.
     *
     * @return the {@code SampledCounter} for number of searches
     */
    SampledCounter getSearchesPerSecondSample();

    /**
     * Get the {@link SampledCounter} for number of XA Transaction commits that have completed in the interval.
     *
     * @return the {@code SampledCounter} for number XA Transaction commits
     */
    SampledCounter getCacheXaCommitsSample();

    /**
     * Get the {@link SampledCounter} for number of XA Transaction rollbacks that have completed in the interval.
     *
     * @return the {@code SampledCounter} for number XA Transaction rollbacks
     */
    SampledCounter getCacheXaRollbacksSample();

    /**
     * Get the {@link SampledCounter} for cache size.
     *
     * @return the {@code SampledCounter} for cache size
     */
    SampledCounter getSizeSample();

    /**
     * Get the {@link SampledCounter} for local heap size.
     *
     * @return the {@code SampledCounter} for local heap size
     */
    SampledCounter getLocalHeapSizeSample();

    /**
     * Get the {@link SampledCounter} for local heap size in bytes.
     *
     * @return the {@code SampledCounter} for local heap size in bytes
     */
    SampledCounter getLocalHeapSizeInBytesSample();

    /**
     * Get the {@link SampledCounter} for local offheap size.
     *
     * @return the {@code SampledCounter} for local offheap size
     */
    SampledCounter getLocalOffHeapSizeSample();

    /**
     * Get the {@link SampledCounter} for local offheap size in bytes.
     *
     * @return the {@code SampledCounter} for local offheap size in bytes
     */
    SampledCounter getLocalOffHeapSizeInBytesSample();

    /**
     * Get the {@link SampledCounter} for local disk size.
     *
     * @return the {@code SampledCounter} for local disk size
     */
    SampledCounter getLocalDiskSizeSample();

    /**
     * Get the {@link SampledCounter} for local disk size in bytes.
     *
     * @return the {@code SampledCounter} for local disk size in bytes
     */
    SampledCounter getLocalDiskSizeInBytesSample();

    /**
     * Get the {@link SampledCounter} for remote size.
     *
     * @return the {@code SampledCounter} for remote size
     */
    SampledCounter getRemoteSizeSample();

    /**
     * Get the {@link SampledCounter} for writer queue length.
     *
     * @return the {@code SampledCounter} for writer queue length
     */
    SampledCounter getWriterQueueLengthSample();

    /**
     * Get the {@link SampledCounter} for last rejoin timestamp.
     *
     * @return the {@code SampledCounter} for last rejoin timestamp
     */
    SampledCounter getMostRecentRejoinTimestampMillisSample();

    /**
     * Get the {@link SampledCounter} for offline cache cluster events.
     *
     * @return the {@code SampledCounter} for offline cache cluster events
     */
    SampledCounter getCacheClusterOfflineSample();

    /**
     * Get the {@link SampledCounter} for online cache cluster events.
     *
     * @return the {@code SampledCounter} for online cache cluster events
     */
    SampledCounter getCacheClusterOnlineSample();
    
    /**
     * Get the {@link SampledCounter} for rejoin cache cluster events.
     *
     * @return the {@code SampledCounter} for rejoin cache cluster events
     */
    SampledCounter getCacheClusterRejoinSample();
    
    /**
     * Gets the nonstop success sample.
     *
     * @return the nonstop success sample
     */
    SampledCounter getNonStopSuccessSample();
    
    /**
     * Gets the nonstop failure sample.
     *
     * @return the nonstop failure sample
     */
    SampledCounter getNonStopFailureSample();
    
    /**
     * Gets the nonstop rejoin sample.
     *
     * @return the nonstop rejoin sample
     */
    SampledCounter getNonStopRejoinTimeoutSample();
    
    /**
     * Gets the nonstop timeout sample.
     *
     * @return the nonstop timeout sample
     */
    SampledCounter getNonStopTimeoutSample();

    /**
     * Gets the non stop success most recent sample.
     *
     * @return the non stop success most recent sample
     */
    long getNonStopSuccessRate();
    
    /**
     * Gets the non stop failure most recent sample.
     *
     * @return the non stop failure most recent sample
     */
    long getNonStopFailureRate();
    
    /**
     * Gets the non stop rejoin most recent sample.
     *
     * @return the non stop rejoin most recent sample
     */
    long getNonStopRejoinTimeoutRate();
    
    /**
     * Gets the non stop timeout most recent sample.
     *
     * @return the non stop timeout most recent sample
     */
    long getNonStopTimeoutRate();

    /**
     * Gets the one arg replace success sample
     * @return one arg success sample
     */
    SampledCounter getReplaceOneArgSuccessSample();

    /**
     * Gets the one arg replace miss sample
     * @return one arg miss sample
     */
    SampledCounter getReplaceOneArgMissSample();

    /**
     * Gets the two arg replace success sample
     * @return two arg success sample
     */
    SampledCounter getReplaceTwoArgSuccessSample();

    /**
     * Gets the two arg replace miss sample
     * @return two arg miss sample
     */
    SampledCounter getReplaceTwoArgMissSample();

    /**
     * Gets the putIfAbsent success sample
     * @return putIfAbsent success sample
     */
    SampledCounter getPutIfAbsentSuccessSample();

    /**
     * Gets the putIfAbsent miss sample
     * @return putIfAbsent miss sample
     */
    SampledCounter getPutIfAbsentMissSample();

    /**
     * Gets the removeElement success sample
     * @return removeElement success sample
     */
    SampledCounter getRemoveElementSuccessSample();

    /**
     * Gets the removeElement miss sample
     * @return removeElement miss sample
     */
    SampledCounter getRemoveElementMissSample();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy