/*
* 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.cache.partition;
import java.util.Set;
import org.apache.geode.cache.control.ResourceManager;
/**
* Information describing the data storage and distribution of a partitioned region. The
* {@link PartitionRegionHelper} is used to gather <code>PartitionRegionInfo</code>. Each instance
* describes a single partitioned region identified by {@link #getRegionPath()}.
* <p>
* This is an immutable snapshot of the information.
*
* @since GemFire 6.0
*/
public interface PartitionRegionInfo {
/**
* Returns the {@link org.apache.geode.cache.Region#getFullPath() full path} of the partitioned
* region that this object describes.
*
* @return the full path of the partitioned region that this info describes
*/
public String getRegionPath();
/**
* Returns an immutable set of <code>PartitionMemberInfo</code> representing every member that is
* configured to provide storage space to the partitioned region.
*
* @return set of member info configured for storage space
*/
public Set<PartitionMemberInfo> getPartitionMemberInfo();
/**
* Returns the {@link org.apache.geode.cache.PartitionAttributes#getTotalNumBuckets() configured
* number of buckets} for the partitioned region.
*
* @return the configured number of buckets
*/
public int getConfiguredBucketCount();
/**
* Returns the number of actual buckets that have been created to hold data for the partitioned
* region. This is less than or equal to {#link #getConfiguredBucketCount()}.
*
* @return the current number of actual buckets that have been created
*/
public int getCreatedBucketCount();
/**
* Returns the number of created buckets that have fewer than the
* {@link #getConfiguredRedundantCopies() configured redundant copies} for this partitioned
* region.
*
* @return the number of created buckets that have fewer than the configured redundant copies
* @see #getActualRedundantCopies()
*/
public int getLowRedundancyBucketCount();
/**
* Returns the number of {@link org.apache.geode.cache.PartitionAttributes#getRedundantCopies()
* redundant copies} the partitioned region was configured for.
*
* @return the number of redundant copies the partitioned region was configured for
*/
public int getConfiguredRedundantCopies();
/**
* Returns the lowest number of redundant copies for any bucket holding data for the partitioned
* region. If all data is currently at full redundancy then this will return the same value as
* {@link #getConfiguredRedundantCopies}.
*
* @return the lowest number of redundant copies for any bucket of the partitioned region.
*/
public int getActualRedundantCopies();
/**
* Returns the {@link org.apache.geode.cache.Region#getFullPath() full path} of the partitioned
* region that this region has been configured to be
* {@link org.apache.geode.cache.PartitionAttributes#getColocatedWith() colocated with} or null if
* it is not colocated.
*
* @return the full path of the partitioned region that the region is colocated with or null if
* there is none.
*/
public String getColocatedWith();
}