Container servers, partitions, and shards
The container server stores application data for the data grid. This data is generally broken into parts, which are called partitions. Partitions are hosted across multiple shard containers. As a result, each container server hosts a subset of the complete data. A JVM might host one or more shard containers and each shard container can host multiple shards.
Partitions host a subset of the data in the grid. WebSphere® eXtreme Scale automatically places partitions in a container. A partition consists of one primary shard and optional replica shards. When more container servers become available, replica shards are created and placed. Existing primary and replica shards are also distributed to new containers to maintain an equals number of shards on each container server.
To increase the availability of the data, or increase persistence guarantees, replicate the data. However, replication adds cost to the transaction and trades performance in return for availability. With eXtreme Scale, you can control the cost as both synchronous and asynchronous replication is supported, as well as hybrid replication models using both synchronous and asynchronous replication modes. A synchronous replica shard receives updates as part of the transaction of the primary shard to guarantee data consistency. A synchronous replica can double the response time because the transaction has to commit on both the primary and the synchronous replica before the transaction is complete. An asynchronous replica shard receives updates after the transaction commits to limit impact on performance, but introduces the possibility of data loss as the asynchronous replica can be several transactions behind the primary.