Servidores de contenedor, particiones y fragmentos

El servidor de contenedor almacena los datos de la aplicación para la cuadrícula de datos. Estos datos se dividen normalmente en partes, denominadas particiones, que alojan varios servidores de contenedor. Cada servidor de contenedor a su vez aloja un subconjunto de los datos completos. Una JVM puede alojar uno o más contenedores y cada servidor de contenedor puede alojar varios fragmentos.

Recuerde: Planifique el tamaño de almacenamiento dinámico de los servidores de contenedor, que alojan todos los datos. Configure los valores de almacenamiento dinámico según corresponda.
Figura 1. Servidor de contenedor
Existe un servidor de contenedor en una máquina virtual Java y aloja una serie de fragmentos.
Las particiones alojan un subconjunto de los datos en la cuadrícula. WebSphere eXtreme Scale coloca automáticamente varias particiones en un único servidor de contenedor y propaga las particiones a medida que pasan a estar disponibles más servidores de contenedor.
Importante: Elija cuidadosamente el número de particiones antes del despliegue final, ya que el número de particiones no se puede cambiar de forma dinámica. Se utiliza un mecanismo hash para localizar las particiones en la red y eXtreme Scale no puede volver a realizar hash de todo el conjunto de datos, una vez que se haya desplegado. Como regla general, se puede sobrestimar el número de particiones
Figura 2. Partición
Los fragmentos son instancias de particiones y tienen uno de los roles siguientes: primario o réplica. El fragmento primario y sus réplicas conforman la manifestación física de la partición. Cada partición tiene varios fragmentos que cada uno de éstos incluye todos los datos contenidos en dicha partición. Un fragmento es el primario y las demás son réplicas, que son copias redundantes de los datos del fragmento primario. Un fragmento primario es la única instancia de partición que permite que las transacciones se graben en la memoria caché. Un fragmento réplica es una instancia "duplicada" de la partición. Recibe actualizaciones de forma síncrona o asíncrona del fragmento primario. El fragmento réplica sólo permite a las transacciones leer de la memoria caché. Las réplicas nunca se alojan en el mismo servidor de contenedor como fragmento primario y normalmente no se alojan en la misma máquina que el fragmento primario.
Figura 3. Fragmento
Un fragmento contiene varias correlaciones.

Para aumentar la disponibilidad de los datos, o para aumentar las garantías de persistencia, replique los datos. No obstante, la réplica supone coste en la transacción y cambia rendimiento por disponibilidad. Con eXtreme Scale, puede controlar el coste, ya que se admiten la réplica síncrona y asíncrona, así como modelos de réplica híbridos que usan modalidades de réplica síncrona y asíncrona. Un fragmento réplica síncrona recibe actualizaciones como parte de la transacción del fragmento primario para garantizar la coherencia de los datos. Una réplica síncrona puede doblar el tiempo de respuesta porque la transacción debe confirmar en el fragmento primario y la réplica síncrona antes de que se complete la transacción. Un fragmento réplica asíncrona recibe actualizaciones después de la confirmación de la transacción para limitar el impacto en el rendimiento, pero puede haber pérdida de datos ya que la réplica asíncrona puede estar varias transacciones por detrás del fragmento primario.

Figura 4. ObjectGrid
ObjectGrid