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

com.gemstone.gemfire.management.RegionMXBean Maven / Gradle / Ivy

There is a newer version: 2.0-BETA
Show newest version
/*
 * Copyright (c) 2010-2015 Pivotal Software, Inc. All rights reserved.
 *
 * 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. See accompanying
 * LICENSE file.
 */
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;


/**
 * MBean that provides access to information and management functionality for a
 * local {@link Region}.
 * 
 * For all the latency related attributes e.g. PutRemoteLatency ,DiskWritesAverageLatency etc..
 * "enable-time-statistics" should be set to true. 
 * @author rishim
 * @since 7.0
 *
 */
public interface RegionMXBean {

  /**
   * Returns the name of the Region.
   */
  public String getName();
  
  
  /**
   * Returns the type (data policy) of the Region.
   */
  public String getRegionType();
  
  /**
   * Returns the full path of the Region.
   */
  public String getFullPath();

  /**
   * The name of the parent Region or null if the Region
   * has no parent.
   */
  public String getParentRegion();

  /**
   * Returns a list of the names of the sub regions.
   * 
   * @param recursive
   *          True 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[] listFixedPartitionAttributes();

  /**
   * 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 within this member.
   * 
   * For partitioned regions it will be the entry count for the primary buckets
   * hosted within this member.
   *
   * For HDFS regions it will be count of only in memory data.
   * 
   */
  public long getEntryCount();

  /**
   * 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.Only applicable for partitioned
   * regions.
   */
  public float getPutLocalRate();

  /**
   * Returns the number of remote puts per second.Only applicable for
   * partitioned regions.
   */
  public float getPutRemoteRate();

  /**
   * Returns the latency for the most recent remote put in nanoseconds.Only
   * applicable for partitioned regions.
   */
  public long getPutRemoteLatency();

  /**
   * Returns the average latency for remote puts in nanoseconds.Only applicable
   * for partitioned regions.
   */
  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 reads per second from disk.
   */
  public float getDiskReadsRate();
  
  
  /**
   * Returns the average latency of disk reads in nanoseconds
   * @deprecated See corresponding DiskStores latency to get the latency.
   */
  public long getDiskReadsAverageLatency();
  
  /**
   * Returns the average latency of disk writes in nanoseconds.
   * @deprecated See corresponding DiskStores latency to get the latency.
   */
  public long getDiskWritesAverageLatency();

  /**
   * Returns the number of entries written per second to disk.
   */
  public float getDiskWritesRate();

  /**
   * Returns the current number of disk writes in progress.
   */
  public long getTotalDiskWritesProgress();
  
  /**
   * 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 average latency of a call to a {@link CacheWriter} in nanoseconds.
   */
  public long getCacheWriterCallsAvgLatency();

  /**
   * Returns the average latency of a call to a {@link CacheListener} in nanoseconds.
   */
  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 number of redundant copies configured for this partitioned
   * region.Only applicable for partitioned regions.
   */
  public int getConfiguredRedundancy();

  /**
   * Returns the actual number of redundant copies available for buckets in this
   * partitioned region. Usually this is the number of redundant copies
   * configured for buckets in the region. However, during initialization or
   * error states the actual number of copies for any given bucket may be less
   * than the configured number. In that case, the value returned will be the
   * smallest number of redundant copies available for any single bucket.
   */
  public int getActualRedundancy();

  /**
   * 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 stored in disk for this region.
   */
  public long getDiskUsage();
  
  /**
   * Returns the aggregate entry size (in bytes) of all entries. This will
   * provide a correct value only if the eviction algorithm has been set to
   * {@link EvictionAlgorithm#LRU_MEMORY}.
   * 
   * For all partition regions it will show entry size in bytes.
   * It will also include size of all the secondary entries in the data store.
   * So while referring to size one should take redundancy into account
   */
  public long getEntrySize();

  /**
   * Returns whether this region sends data using a GatewaySender.
   */
  public boolean isGatewayEnabled();
  
  
  /**
   * Returns the average number of read requests per second.
   */
  public float getAverageReads();

  /**
   * Returns the average number of write requests per second. This include rates
   * of put,putAll & create operations on the region
   */
  public float getAverageWrites();
  
  /**
   * Returns whether persistence is enabled.
   */
  public boolean isPersistentEnabled();

  /**
   * Returns the name/ID of the member hosting this Region.
   */
  public String getMember();
  
  
  /**
   * Returns the maximum amount of local memory that can be used by the region.
   * This attribute is applicable for PartitionedRegion only. For other regions it will be -1
   */
  public int getLocalMaxMemory();
  
  /**
   * Estimated entry count for HDFS Read-Write regions.This may not be accurate but
   * acts as an indicative value. All HDFS Read-Write regions regions are PartitionedRegions. Hence
   * the estimated value will be for primary buckets hosted within the member.
   * 
   * For other regions it will be -1 ( Not Available)
   */
  public long getEstimatedSizeForHDFSRegion();

  /**
   * It is true if its a column table. False for normal row tables
   */
  public boolean isColumnTable();

  /**
   * get number of rows which have been overflown to column batches
   */
  public long getRowsInColumnBatches();

  /**
   * get number of rows in Reservoir
   */
  public long getRowsInReservoir();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy