blob: d838805460ec5b2d1e1f10131fb4a402fc2b2af2 [file] [log] [blame]
/*
* =========================================================================
* Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
* This product is protected by U.S. and international copyright
* and intellectual property laws. Pivotal products are covered by
* more patents listed at http://www.pivotal.io/patents.
* ========================================================================
*/
package com.gemstone.gemfire.management;
import com.gemstone.gemfire.cache.CacheListener;
import com.gemstone.gemfire.cache.CacheWriter;
import com.gemstone.gemfire.cache.EvictionAlgorithm;
import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.cache.wan.GatewaySender;
/**
* MBean that provides access to information and management functionality for a
* {@link Region}.
*
* @author rishim
* @since 7.0
*
*/
public interface DistributedRegionMXBean {
/**
* Returns the name of the Region.
*/
public String getName();
/**
* Returns the number of members hosting/using the Region.
*/
public int getMemberCount();
/**
* Returns a list of names/IDs of the members hosting the Region.
*/
public String[] getMembers();
/**
* Returns the type (data policy) of the Region.
*/
public String getRegionType();
/**
* Returns the full path of the Region.
*/
public String getFullPath();
/**
* Returns the name of the parent Region.
*/
public String getParentRegion();
/**
* Returns a list of the names of the subregions.
*
* @param recursive
* <code>true</code> to recursively traverse and find sub-regions.
*/
public String[] listSubRegionPaths(boolean recursive);
/**
* Returns the attributes of the Region.
*/
public RegionAttributesData listRegionAttributes();
/**
* Returns the partition attributes of the Region.
*/
public PartitionAttributesData listPartitionAttributes();
/**
* Returns the fixed partition attributes of the Region.
*/
public FixedPartitionAttributesData[] listFixedPartitionAttributesData();
/**
* Returns the eviction attributes of the Region.
*/
public EvictionAttributesData listEvictionAttributes();
/**
* Returns the membership attributes of the Region.
*/
public MembershipAttributesData listMembershipAttributes();
/**
* Returns the time of the most recent modification.
* For partitioned region it will be -1. This feature is not supported for partitioned regions.
*/
public long getLastModifiedTime();
/**
* Returns the time of the most recent access.
* For partitioned region it will be -1. This feature is not supported for partitioned regions.
*/
public long getLastAccessedTime();
/**
* Returns the number of times that a cache miss occurred.
* For partitioned region it will be -1. This feature is not supported for partitioned regions.
*/
public long getMissCount();
/**
* Returns the number of times that a hit occurred.
* For partitioned region it will be -1. This feature is not supported for partitioned regions.
*/
public long getHitCount();
/**
* Returns the hit to miss ratio.
* For partitioned region it will be -1. This feature is not supported for partitioned regions.
*/
public float getHitRatio();
/**
* Returns the number of entries in the Region.
*
* For HDFS regions it will be count of only in memory data.
*/
public long getSystemRegionEntryCount();
/**
* Returns the number of gets per second.
*/
public float getGetsRate();
/**
* Returns the number of puts per second.
*/
public float getPutsRate();
/**
* Returns the number of creates per second.
*/
public float getCreatesRate();
/**
* Returns the number of destroys per second.
*/
public float getDestroyRate();
/**
* Returns the number of putAlls per second.
*/
public float getPutAllRate();
/**
* Returns the number of local puts per second.
*/
public float getPutLocalRate();
/**
* Returns the number of remote puts per second.
*/
public float getPutRemoteRate();
/**
* Returns the latency for the most recent remote put.
*/
public long getPutRemoteLatency();
/**
* Returns the average latency for remote puts.
*/
public long getPutRemoteAvgLatency();
/**
* Returns the current number of entries whose values are only on disk (not in
* memory). Entries may not exist in memory if they have been overflowed to
* disk or not yet been faulted in after a recovery.
*/
public long getTotalEntriesOnlyOnDisk();
/**
* Returns the current number of entries held in memory.
*/
public long getTotalDiskEntriesInVM();
/**
* Returns the number of entries per second for all disks.
*/
public float getDiskReadsRate();
/**
* Returns the number of entries per second for all disks.
*/
public float getDiskWritesRate();
/**
* Returns the current number of disk tasks (op-log compaction, asynchronous
* recoveries, etc) that are waiting for a thread to run.
* @deprecated
*/
public long getDiskTaskWaiting();
/**
* Returns the current number of disk writes in progress.
*/
public long getTotalDiskWritesProgress();
/**
* Returns the average latency of a call to a {@link CacheWriter}.
*/
public long getCacheWriterCallsAvgLatency();
/**
* Returns the average latency of a call to a {@link CacheListener}.
*/
public long getCacheListenerCallsAvgLatency();
/**
* Returns the entry eviction rate as triggered by the LRU policy.
*/
public float getLruEvictionRate();
/**
* Returns the rate of entries destroyed either by destroy cache operations or
* eviction.
*/
public float getLruDestroyRate();
/**
* Returns the number of buckets on this member. Only applicable for partitioned
* regions.
*/
public int getBucketCount();
/**
* Returns the number of primary buckets on this member. Only applicable for
* partitioned regions.
*/
public int getPrimaryBucketCount();
/**
* Returns the number of buckets without full redundancy. Only applicable for
* partitioned regions.
*/
public int getNumBucketsWithoutRedundancy();
/**
* Returns the total number of entries in all buckets. Only applicable for
* partitioned regions.
*/
public int getTotalBucketSize();
/**
* Returns the average number of entries in bucket. Only applicable for
* partitioned regions.
*/
public int getAvgBucketSize();
/**
* Returns the total number of bytes used by all disks.
*/
public long getDiskUsage();
/**
* Returns the average number of read requests per second.
*/
public float getAverageReads();
/**
* Returns the average number of write requests per second.
*/
public float getAverageWrites();
/**
* Returns whether the Region sends data to a {@link GatewaySender}.
*
* @return True if the Region sends data, false otherwise.
*/
public boolean isGatewayEnabled();
/**
* Returns whether persistence is enabled.
*
* @return True if persistence is enabled, false otherwise.
*/
public boolean isPersistentEnabled();
/**
* Returns the aggregate entry size (in megabytes) of all entries. This will
* provide a correct value only if the eviction algorithm has been set to
* {@link EvictionAlgorithm#LRU_MEMORY}.
*/
public long getEntrySize();
/**
* Returns the number of members whose entry count is 0.
*/
public int getEmptyNodes();
/**
* An estimated entry count for HDFS Read-Write region.This may not be accurate but acts
* as an indicative value.
*
* For other regions it will be -1 ( Not Available)
*/
public long getEstimatedSizeForHDFSRegion();
}