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

org.apache.geode.management.RegionMXBean Maven / Gradle / Ivy

Go to download

Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing

There is a newer version: 1.15.1
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
 * agreements. See the NOTICE file distributed with this work for additional information regarding
 * copyright ownership. The ASF licenses this file to You 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 org.apache.geode.management;

import org.apache.geode.cache.CacheListener;
import org.apache.geode.cache.CacheWriter;
import org.apache.geode.cache.EvictionAlgorithm;
import org.apache.geode.cache.Region;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission.Operation;
import org.apache.geode.security.ResourcePermission.Resource;

/**
 * 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.
 * 
 * @since GemFire 7.0
 *
 */
@ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
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.
   * 
   * @deprecated this API is scheduled to be removed
   */
  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.
   *
   */
  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.
   * 
   * @deprecated This attribute is removed from 8.0 for being incorrect and impacting performance.
   */
  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();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy