|Developing with Pivotal GemFire / Distributed and Replicated Regions|
To work with replicated and preloaded regions, you should understand how their data is initialized and maintained in the cache.
Replicated and preloaded regions are configured by using one of the REPLICATE region shortcut settings, or by setting the region attribute data-policy to replicate, persistent-replicate, or preloaded.
While a region is being initialized from a replicated or preloaded region, if the source region crashes, the initialization starts over.
If a union of regions is used for initialization, as in the figure, and one of the individual source regions goes away during the initialization (due to cache closure, member crash, or region destruction), the new region may contain a partial data set from the crashed source region. When this happens, there is no warning logged or exception thrown. The new region still has a complete set of the remaining members' regions.
Once initialized, the preloaded region operates like the region with a normal data-policy, receiving distributions only for entries it has defined in the local cache.
If the region is configured as a replicated region, it receives all new creations in the distributed region from the other members. This is the push distribution model. Unlike the preloaded region, the replicated region has a contract that states it will hold all entries that are present anywhere in the distributed region.