GemFire 5.7

com.gemstone.gemfire.cache
Class PartitionAttributesFactory

java.lang.Object
  extended by com.gemstone.gemfire.cache.PartitionAttributesFactory

public class PartitionAttributesFactory
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" togeather 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");
 

Partitioned attributes can also be definied in a delarative 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:
5.0
See Also:
PartitionAttributes, AttributesFactory.setPartitionAttributes(PartitionAttributes)

Field Summary
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.
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.
static int LOCAL_MAX_MEMORY_DEFAULT
          The default maximum amount of memory to be used by this region in this process, in megabytes.
static String LOCAL_MAX_MEMORY_PROPERTY
          Deprecated - please use the setLocalMaxMemory(int) method instead.
 
Constructor Summary
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
 
Method Summary
 PartitionAttributes create()
          Creates a PartitionAttributes with the current settings.
 PartitionAttributesFactory setCacheLoader(CacheLoader cacheLoader)
          Deprecated. AttributesFactory.setCacheLoader(com.gemstone.gemfire.cache.CacheLoader) allows you to establish a cache loader for a partitioned region
 PartitionAttributesFactory setGlobalProperties(Properties globalProps)
          Deprecated. use setTotalMaxMemory(long) and setTotalNumBuckets(int) in GemFire 5.1 and later releases
 PartitionAttributesFactory setLocalMaxMemory(int mb)
          Sets the maximum amount of memory, in megabytes, to be used by the region in this process.
 PartitionAttributesFactory setLocalProperties(Properties localProps)
          Deprecated. use setLocalMaxMemory(int) in GemFire 5.1 and later releases
 PartitionAttributesFactory setRedundantCopies(int redundantCopies)
          Sets the number of extra copies of buckets desired.
 PartitionAttributesFactory setTotalMaxMemory(long mb)
          Sets the maximum amount of memory, in megabytes, to be used by the region in all processes.
 PartitionAttributesFactory setTotalNumBuckets(int numBuckets)
          Sets the total number of hash buckets to be used by the region in all processes.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOCAL_MAX_MEMORY_PROPERTY

public static final String LOCAL_MAX_MEMORY_PROPERTY
Deprecated - please use the 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.

See Also:
Constant Field Values

LOCAL_MAX_MEMORY_DEFAULT

public static final int LOCAL_MAX_MEMORY_DEFAULT
The default maximum amount of memory to be used by this region in this process, in megabytes.


GLOBAL_MAX_MEMORY_PROPERTY

public static final String GLOBAL_MAX_MEMORY_PROPERTY
Deprecated - use 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.

See Also:
Constant Field Values

GLOBAL_MAX_MEMORY_DEFAULT

public static final long GLOBAL_MAX_MEMORY_DEFAULT
Default maximum total size of the region across all processes, in megabytes.

See Also:
Constant Field Values

GLOBAL_MAX_BUCKETS_PROPERTY

public static final String GLOBAL_MAX_BUCKETS_PROPERTY
Deprecated - please use setTotalNumBuckets(int) instead.

This setting must be the same in all processes using the Region.

See Also:
Constant Field Values

GLOBAL_MAX_BUCKETS_DEFAULT

public static final int GLOBAL_MAX_BUCKETS_DEFAULT
The default total number of buckets (113).

See Also:
Constant Field Values
Constructor Detail

PartitionAttributesFactory

public PartitionAttributesFactory()
Creates a new instance of PartitionAttributesFactory ready to create a PartitionAttributes with default settings.


PartitionAttributesFactory

public PartitionAttributesFactory(PartitionAttributes pa)
Creates a new instance of PartitionAttributesFactory ready to create a PartitionAttributes with the same settings as those in the specified PartitionAttributes

Parameters:
pa - the PartitionAttributes used to initialize this PartitionAttributesFactory
Method Detail

setRedundantCopies

public PartitionAttributesFactory setRedundantCopies(int redundantCopies)
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.

Parameters:
redundantCopies - the number of redundant bucket copies, limited to values 0, 1, 2 and 3.
Returns:
this

setCacheLoader

public PartitionAttributesFactory setCacheLoader(CacheLoader cacheLoader)
Deprecated. AttributesFactory.setCacheLoader(com.gemstone.gemfire.cache.CacheLoader) allows you to establish a cache loader for a partitioned region

Sets the cache loader for the next PartitionAttributes created.

Parameters:
cacheLoader - the cache writer or null if no cache writer
Returns:
this

setLocalMaxMemory

public PartitionAttributesFactory setLocalMaxMemory(int mb)
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


setTotalMaxMemory

public PartitionAttributesFactory setTotalMaxMemory(long mb)
Sets 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.


setTotalNumBuckets

public PartitionAttributesFactory setTotalNumBuckets(int numBuckets)
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. 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.


setLocalProperties

public PartitionAttributesFactory setLocalProperties(Properties localProps)
Deprecated. use setLocalMaxMemory(int) in GemFire 5.1 and later releases

Sets the Properties 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.

Parameters:
localProps -
Returns:
PartitionAttributeFactory.

setGlobalProperties

public PartitionAttributesFactory setGlobalProperties(Properties globalProps)
Deprecated. use setTotalMaxMemory(long) and setTotalNumBuckets(int) in GemFire 5.1 and later releases

Sets the global Properties 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.

Parameters:
globalProps -
Returns:
PartitionAttributeFactory.
See Also:
GLOBAL_MAX_MEMORY_PROPERTY

create

public PartitionAttributes create()
Creates a PartitionAttributes with the current settings.

Returns:
the newly created PartitionAttributes
Throws:
IllegalStateException - if the current settings violate the compatibility rules

GemFire 5.7

Copyright © 2002-2008 GemStone Systems, Inc. All Rights Reserved.