Class PartitionAttributesFactory<K,V>
A factory that creates instances of PartitionAttributes which are used to create a
partitioned Region. The setter methods follow the self-return idiom so that they can be
"chained" together with the create() method to create PartitionAttributes. For
example:
PartitionAttributes pa =
new PartitionAttributesFactory().setRedundantCopies(1).setLocalMaxMemory(1240).create();
final Region myRegion = new RegionFactory().setPartitionAttributes(pa)
.setKeyConstraint(String.class).setValueConstraint(ArrayList.class).create("myRegion");
PartitionAttributes can also be defined in a declarative fashion using a
cache.xml file. Here is an example of how to
configure a Partitioned Region named "pRoot" whose Scope is
Distributed Ack, which maintains a redundant copy of any given
Region.Entry, configures a
CacheLoader implementation, and sets
global properties as well as
local max memory to use.
<root-region name="pRoot">
<region-attributes scope="distributed-ack" >
<partition-attributes redundant-copies="1", local-max-memory="1240"/>
</region-attributes>
</root-region>
- Since:
- GemFire 5.0
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe default total number of buckets (113).static final StringDeprecated.static final longDefault maximum total size of the region across all processes, in megabytes.static final StringDeprecated.- usesetTotalMaxMemory(long)instead.static final intDeprecated.UsePartitionAttributesImpl.getLocalMaxMemoryDefault()instead.static final StringDeprecated.- please use thesetLocalMaxMemory(int)method instead.static final longstatic final long -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new instance of PartitionAttributesFactory ready to create aPartitionAttributeswith default settings.Creates a new instance of PartitionAttributesFactory ready to create aPartitionAttributeswith the same settings as those in the specifiedPartitionAttributes -
Method Summary
Modifier and TypeMethodDescriptionFixedPartitionAttributes defined for this partitioned region is added to PR attributes.addPartitionListener(PartitionListener listener) adds a PartitionListener for the partitioned region.create()Creates aPartitionAttributeswith the current settings.setColocatedWith(String colocatedRegionFullPath) Sets the name of the PartitionRegion with which this newly created partitioned region is colocatedsetGlobalProperties(Properties globalProps) Deprecated.usesetTotalMaxMemory(long)andsetTotalNumBuckets(int)in GemFire 5.1 and later releasessetLocalMaxMemory(int mb) Sets the maximum amount of memory, in megabytes, to be used by the region in this process.setLocalProperties(Properties localProps) Deprecated.usesetLocalMaxMemory(int)in GemFire 5.1 and later releasessetPartitionResolver(PartitionResolver<K, V> resolver) Sets thePartitionResolverfor the PartitionRegion.setRecoveryDelay(long recoveryDelay) Sets the delay in milliseconds that existing members will wait before satisfying redundancy after another member crashes.setRedundantCopies(int redundantCopies) Sets the number of extra copies of buckets desired.setStartupRecoveryDelay(long startupRecoveryDelay) Sets the delay in milliseconds that new members will wait before satisfying redundancy.setTotalMaxMemory(long mb) Deprecated.since Geode 1.3.0setTotalNumBuckets(int numBuckets) Sets the total number of hash buckets to be used by the region in all processes.
-
Field Details
-
LOCAL_MAX_MEMORY_PROPERTY
Deprecated.- please use thesetLocalMaxMemory(int)method instead.The
local propertyname that sets the maximum heap storage a VM contributes to a partitioned Region. When set to zero, the resulting Region reference allows access to the partitioned Region without any consuming any heap storage.- See Also:
-
LOCAL_MAX_MEMORY_DEFAULT
Deprecated.UsePartitionAttributesImpl.getLocalMaxMemoryDefault()instead.The default maximum amount of memory to be used by this region in this process, in megabytes. -
GLOBAL_MAX_MEMORY_PROPERTY
Deprecated.- usesetTotalMaxMemory(long)instead.The
global propertyname that defines the total maximum size for the partitioned Region.This setting must be the same in all processes using the Region.
- See Also:
-
GLOBAL_MAX_MEMORY_DEFAULT
public static final long GLOBAL_MAX_MEMORY_DEFAULTDefault maximum total size of the region across all processes, in megabytes.- See Also:
-
GLOBAL_MAX_BUCKETS_PROPERTY
Deprecated.- please usesetTotalNumBuckets(int)instead.This setting must be the same in all processes using the Region.
- See Also:
-
GLOBAL_MAX_BUCKETS_DEFAULT
public static final int GLOBAL_MAX_BUCKETS_DEFAULTThe default total number of buckets (113).- See Also:
-
RECOVERY_DELAY_DEFAULT
public static final long RECOVERY_DELAY_DEFAULT- See Also:
-
STARTUP_RECOVERY_DELAY_DEFAULT
public static final long STARTUP_RECOVERY_DELAY_DEFAULT- See Also:
-
-
Constructor Details
-
PartitionAttributesFactory
public PartitionAttributesFactory()Creates a new instance of PartitionAttributesFactory ready to create aPartitionAttributeswith default settings. -
PartitionAttributesFactory
Creates a new instance of PartitionAttributesFactory ready to create aPartitionAttributeswith the same settings as those in the specifiedPartitionAttributes- Parameters:
pa- thePartitionAttributesused to initialize this PartitionAttributesFactory
-
-
Method Details
-
setRedundantCopies
Sets the number of extra copies of buckets desired. Extra copies allow for both high availability in the face of VM departure (intended or unintended) and and load balancing read operations.This setting must be the same in all processes using the Region. Default number of redundant copies is 0.
- Parameters:
redundantCopies- the number of redundant bucket copies, limited to values 0, 1, 2 and 3.- Returns:
- PartitionAttributeFactory.
-
setLocalMaxMemory
Sets the maximum amount of memory, in megabytes, to be used by the region in this process. If not set, a default of 90% of available heap is used.- Parameters:
mb- the maximum amount of memory, in megabytes, to be used by the region in this process- Returns:
- PartitionAttributeFactory.
-
setTotalMaxMemory
Deprecated.since Geode 1.3.0Sets the maximum amount of memory, in megabytes, to be used by the region in all processes.This setting must be the same in all processes using the Region. The default value is Integer.MAX_VALUE.
- Parameters:
mb- the maximum amount of memory, in megabytes, to be used by the region in all processes- Returns:
- PartitionAttributeFactory.
-
setTotalNumBuckets
Sets the total number of hash buckets to be used by the region in all processes.This setting must be the same in all processes using the Region.
A bucket is the smallest unit of data management in a partitioned region.
Entriesare stored in buckets and buckets may move from one VM to another. Buckets may also have copies, depending onredundancyto provide high availability in the face of VM failure.The number of buckets should be prime and as a rough guide at the least four times the number of partition VMs. However, there is significant overhead to managing a bucket, particularly for higher values of
redundancy.The default number of buckets for a PartitionedRegion is 113.
- Parameters:
numBuckets- the total number of hash buckets to be used by the region in all processes- Returns:
- PartitionAttributeFactory.
-
setPartitionResolver
Sets thePartitionResolverfor the PartitionRegion.- Parameters:
resolver- thePartitionResolverfor the PartitionRegion- Returns:
- PartitionAttributeFactory.
-
setColocatedWith
Sets the name of the PartitionRegion with which this newly created partitioned region is colocated- Parameters:
colocatedRegionFullPath- the name of the PartitionRegion with which this newly created partitioned region is colocated- Returns:
- PartitionAttributeFactory.
-
setRecoveryDelay
Sets the delay in milliseconds that existing members will wait before satisfying redundancy after another member crashes. Default value is set to -1 which indicates that redundancy will not be recovered after a failure.- Parameters:
recoveryDelay- the delay in milliseconds that existing members will wait before satisfying redundancy after another member crashes- Returns:
- PartitionAttributeFactory.
- Since:
- GemFire 6.0
-
setStartupRecoveryDelay
Sets the delay in milliseconds that new members will wait before satisfying redundancy. -1 indicates that adding new members will not trigger redundancy recovery. The default (set to 0) is to recover redundancy immediately when a new member is added.- Parameters:
startupRecoveryDelay- the delay in milliseconds that new members will wait before satisfying redundancy- Returns:
- PartitionAttributeFactory.
- Since:
- GemFire 6.0
-
addPartitionListener
adds a PartitionListener for the partitioned region.- Parameters:
listener- the PartitionListener to add- Returns:
- PartitionAttributeFactory.
- Since:
- GemFire 6.5
-
setLocalProperties
Deprecated.usesetLocalMaxMemory(int)in GemFire 5.1 and later releasesSets thePropertiesfor the local instance the partitioned Region. Local properties define how the local instance of the partitioned region and any storage it may provide, behaves. There are currently no non-deprecated local properties.- Parameters:
localProps- thePropertiesfor the local instance the partitioned Region- Returns:
- PartitionAttributeFactory.
-
setGlobalProperties
Deprecated.usesetTotalMaxMemory(long)andsetTotalNumBuckets(int)in GemFire 5.1 and later releasesSets the globalPropertiesfor the nextPartitionAttributescreated. Global properties define how the entire partitioned Region behaves.Note that global settings must be the same in all processes using the Region.
- Parameters:
globalProps- the globalPropertiesfor the nextPartitionAttributescreated- Returns:
- PartitionAttributeFactory.
- See Also:
-
addFixedPartitionAttributes
FixedPartitionAttributes defined for this partitioned region is added to PR attributes.- Parameters:
fpa- the FixedPartitionAttributes to add- Returns:
- PartitionAttributeFactory.
- Since:
- GemFire 6.6
-
create
Creates aPartitionAttributeswith the current settings.- Returns:
- the newly created
PartitionAttributes - Throws:
IllegalStateException- if the current settings violate the compatibility rules
-
setTotalNumBuckets(int)instead.