public class PartitionAttributesFactory<K,V> extends Object
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>
PartitionAttributes
,
AttributesFactory.setPartitionAttributes(PartitionAttributes)
Modifier and Type | Field and Description |
---|---|
static int |
GLOBAL_MAX_BUCKETS_DEFAULT
The default total number of buckets (113).
|
static String |
GLOBAL_MAX_BUCKETS_PROPERTY
Deprecated.
- please use
setTotalNumBuckets(int) instead.
This setting must be the same in all processes using the Region. |
static long |
GLOBAL_MAX_MEMORY_DEFAULT
Default maximum total size of the region across all processes, in megabytes.
|
static String |
GLOBAL_MAX_MEMORY_PROPERTY
Deprecated.
- use
setTotalMaxMemory(long) instead.
The This setting must be the same in all processes using the Region. |
static int |
LOCAL_MAX_MEMORY_DEFAULT
Deprecated.
Use
PartitionAttributesImpl.getLocalMaxMemoryDefault() instead. |
static String |
LOCAL_MAX_MEMORY_PROPERTY
Deprecated.
- please use the
setLocalMaxMemory(int) method instead.
The |
static long |
RECOVERY_DELAY_DEFAULT |
static long |
STARTUP_RECOVERY_DELAY_DEFAULT |
Constructor and Description |
---|
PartitionAttributesFactory()
Creates a new instance of PartitionAttributesFactory ready to create a
PartitionAttributes with default settings. |
PartitionAttributesFactory(PartitionAttributes pa)
Creates a new instance of PartitionAttributesFactory ready to create a
PartitionAttributes with the same settings as those in the specified
PartitionAttributes |
Modifier and Type | Method and Description |
---|---|
PartitionAttributesFactory<K,V> |
addFixedPartitionAttributes(FixedPartitionAttributes fpa)
FixedPartitionAttributes defined for this partitioned region is added to PR attributes.
|
PartitionAttributesFactory<K,V> |
addPartitionListener(PartitionListener listener)
adds a PartitionListener for the partitioned region.
|
PartitionAttributes<K,V> |
create()
Creates a
PartitionAttributes with the current settings. |
PartitionAttributesFactory<K,V> |
setColocatedWith(String colocatedRegionFullPath)
Sets the name of the PartitionRegion with which this newly created partitioned region is
colocated
|
PartitionAttributesFactory<K,V> |
setGlobalProperties(Properties globalProps)
Deprecated.
use
setTotalMaxMemory(long) and setTotalNumBuckets(int) in
GemFire 5.1 and later releases |
PartitionAttributesFactory<K,V> |
setLocalMaxMemory(int mb)
Sets the maximum amount of memory, in megabytes, to be used by the region in this process.
|
PartitionAttributesFactory<K,V> |
setLocalProperties(Properties localProps)
Deprecated.
use
setLocalMaxMemory(int) in GemFire 5.1 and later releases |
PartitionAttributesFactory<K,V> |
setPartitionResolver(PartitionResolver<K,V> resolver)
Sets the
PartitionResolver for the PartitionRegion. |
PartitionAttributesFactory<K,V> |
setRecoveryDelay(long recoveryDelay)
Sets the delay in milliseconds that existing members will wait before satisfying redundancy
after another member crashes.
|
PartitionAttributesFactory<K,V> |
setRedundantCopies(int redundantCopies)
Sets the number of extra copies of buckets desired.
|
PartitionAttributesFactory<K,V> |
setStartupRecoveryDelay(long startupRecoveryDelay)
Sets the delay in milliseconds that new members will wait before satisfying redundancy.
|
PartitionAttributesFactory<K,V> |
setTotalMaxMemory(long mb)
Deprecated.
since Geode 1.3.0
|
PartitionAttributesFactory<K,V> |
setTotalNumBuckets(int numBuckets)
Sets the total number of hash buckets to be used by the region in all processes.
|
@Deprecated public static final String LOCAL_MAX_MEMORY_PROPERTY
setLocalMaxMemory(int)
method instead.
The local property
name 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.
@Deprecated public static final int LOCAL_MAX_MEMORY_DEFAULT
PartitionAttributesImpl.getLocalMaxMemoryDefault()
instead.@Deprecated public static final String GLOBAL_MAX_MEMORY_PROPERTY
setTotalMaxMemory(long)
instead.
The global property
name that defines the
total maximum size for the partitioned Region.
This setting must be the same in all processes using the Region.
public static final long GLOBAL_MAX_MEMORY_DEFAULT
@Deprecated public static final String GLOBAL_MAX_BUCKETS_PROPERTY
setTotalNumBuckets(int)
instead.
This setting must be the same in all processes using the Region.
public static final int GLOBAL_MAX_BUCKETS_DEFAULT
public static final long RECOVERY_DELAY_DEFAULT
public static final long STARTUP_RECOVERY_DELAY_DEFAULT
public PartitionAttributesFactory()
PartitionAttributes
with default settings.public PartitionAttributesFactory(PartitionAttributes pa)
PartitionAttributes
with the same settings as those in the specified
PartitionAttributes
pa
- the PartitionAttributes
used to initialize this
PartitionAttributesFactorypublic PartitionAttributesFactory<K,V> setRedundantCopies(int redundantCopies)
This setting must be the same in all processes using the Region. Default number of redundant copies is 0.
redundantCopies
- the number of redundant bucket copies, limited to values 0, 1, 2 and 3.public PartitionAttributesFactory<K,V> setLocalMaxMemory(int mb)
mb
- the maximum amount of memory, in megabytes, to be used by the region in this process@Deprecated public PartitionAttributesFactory<K,V> setTotalMaxMemory(long mb)
This setting must be the same in all processes using the Region. The default value is Integer.MAX_VALUE.
mb
- the maximum amount of memory, in megabytes, to be used by the region in all processespublic PartitionAttributesFactory<K,V> setTotalNumBuckets(int numBuckets)
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.
Entries
are stored in buckets and buckets may move
from one VM to another. Buckets may also have copies, depending on
redundancy
to 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.
numBuckets
- the total number of hash buckets to be used by the region in all processespublic PartitionAttributesFactory<K,V> setPartitionResolver(PartitionResolver<K,V> resolver)
PartitionResolver
for the PartitionRegion.resolver
- the PartitionResolver
for the PartitionRegionpublic PartitionAttributesFactory<K,V> setColocatedWith(String colocatedRegionFullPath)
colocatedRegionFullPath
- the name of the PartitionRegion with which this newly created
partitioned region is colocatedpublic PartitionAttributesFactory<K,V> setRecoveryDelay(long recoveryDelay)
recoveryDelay
- the delay in milliseconds that existing members will wait before
satisfying redundancy after another member crashespublic PartitionAttributesFactory<K,V> setStartupRecoveryDelay(long startupRecoveryDelay)
startupRecoveryDelay
- the delay in milliseconds that new members will wait before
satisfying redundancypublic PartitionAttributesFactory<K,V> addPartitionListener(PartitionListener listener)
listener
- the PartitionListener to add@Deprecated public PartitionAttributesFactory<K,V> setLocalProperties(Properties localProps)
setLocalMaxMemory(int)
in GemFire 5.1 and later releasesProperties
for 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.localProps
- the Properties
for the local instance the partitioned Region@Deprecated public PartitionAttributesFactory<K,V> setGlobalProperties(Properties globalProps)
setTotalMaxMemory(long)
and setTotalNumBuckets(int)
in
GemFire 5.1 and later releasesProperties
for the next PartitionAttributes
created.
Global properties define how the entire partitioned Region behaves.
Note that global settings must be the same in all processes using the Region.
globalProps
- the global Properties
for the next
PartitionAttributes
createdGLOBAL_MAX_MEMORY_PROPERTY
public PartitionAttributesFactory<K,V> addFixedPartitionAttributes(FixedPartitionAttributes fpa)
fpa
- the FixedPartitionAttributes to addpublic PartitionAttributes<K,V> create()
PartitionAttributes
with the current settings.PartitionAttributes
IllegalStateException
- if the current settings violate the
compatibility rules