Archivo XML de descriptor de política de despliegue

Para configurar una política de despliegue, utilice un archivo XML de descriptor de política de despliegue.

En las siguientes secciones, se definen los elementos y atributos del archivo XML de descriptor de la política de despliegue. Consulte Archivo deploymentPolicy.xsd si desea ver el esquema XML de la política de despliegue.

Elementos del archivo deploymentPolicy.xml
(1) <deploymentPolicy>
(2)		<objectgridDeployment objectGridName="blah">
(3)			<mapSet
(4)				name="mapSetName"
(5)				numberOfPartitions="numberOfPartitions"
(6)				minSyncReplicas="minimumNumber"
(7) 				maxSyncReplicas="maximumNumber"
(8)				maxAsyncReplicas="maximumNumber"
(9)				replicaReadEnabled="true|false"
(10)				numInitialContainers="numberOfInitialContainersBeforePlacement"
(11)				autoReplaceLostShards="true|false"
(12)				developmentMode="true|false"
(13)				placementStrategy="FIXED_PARTITION|PER_CONTAINER">
(14)				<map ref="backingMapReference" />
(15)
(16)			<zoneMetadata>
(17)				<shardMapping
(18)								shard="shardType"
(19)						zoneRuleRef="zoneRuleRefName" />
(20)				<zoneRule 
(21)						name="zoneRuleName"
(22)						exclusivePlacement="true|false" >
(23)						<zone name="ALPHA" />
(24)						<zone name="BETA" />
(25)						<zone name="GAMMA" />
(26)				</zoneRule>
(27)			</zoneMetadata>
(28)	 		</mapSet>
(29)		</objectgridDeployment>
(30)	</deploymentPolicy>

Elemento deploymentPolicy (línea 1)

El elemento deploymentPolicy es el elemento de nivel superior del archivo XML de política de despliegue. Este elemento configura el espacio de nombres del archivo y la ubicación del esquema. El esquema se define en el archivo deploymentPolicy.xsd.

Elemento objectgridDeployment (línea 2)

El elemento objectgridDeployment se utiliza para hacer referencia a una instancia de ObjectGrid desde el archivo XML de ObjectGrid. Dentro del elemento objectgridDeployment puede dividir las correlaciones en conjuntos de correlaciones.
Atributos
objectgridName
Especifica el nombre de la instancia de ObjectGrid a desplegar. Este atributo hace referencia a un elemento objectGrid que está definido en el archivo XML de ObjectGrid. (Necesario)
Por ejemplo, el atributo objectgridName se ha establecido como CompanyGrid en el archivo companyGridDpReplication.xml. El atributo objectgridName hace referencia a CompanyGrid que se ha definido en el archivo companyGrid.xml. Le la información sobre el Archivo XML de descriptor ObjectGrid, que debe emparejar con el archivo de política de despliegue para cada instancia de ObjectGrid.

Elemento mapSet (línea 3)

El elemento mapSet se utiliza para agrupar correlaciones. Las correlaciones dentro de un elemento mapSet se particionan y replican de forma parecida. Cada correlación debe pertenecer sólo a un elemento mapSet.
Atributos
name
Especifica el nombre del mapSet. Este atributo debe ser exclusivo dentro del elemento objectgridDeployment. (Necesario)
numberOfPartitions
Especifica el número de particiones para el elemento mapSet. El valor predeterminado es 1. El número debe ser adecuado para el número de servidores de contenedor que alojan las particiones. (Opcional)
minSyncReplicas
Especifica el número mínimo de réplicas síncronas para cada partición en el mapSet. El valor predeterminado es 0. Los fragmentos no se colocan hasta que el dominio pueda dar soporte al número mínimo de réplicas síncronas. Para dar soporte al valor minSyncReplicas, necesita un servidor de contenedor más que el valor de minSyncReplicas. Si el número de réplicas síncronas cae por debajo del valor minSyncReplicas, ya no se permiten transacciones de grabación para esa partición. (Opcional)
maxSyncReplicas
Especifica el número máximo de réplicas síncronas para cada partición en el mapSet. El valor predeterminado es 0. No se colocan más réplicas síncronas para una partición una vez que un dominio alcanza este número de réplicas síncronas para esa partición específica. La adición de servidores de contenedor que puede dar soporte a este ObjectGrid puede producir un aumento del número de réplicas síncronas si el valor maxSyncReplicas no se ha cumplido ya. (Opcional)
maxAsyncReplicas
Especifica el número máximo de réplicas asíncronas para cada partición en el mapSet. El valor predeterminado es 0. Una vez que se han colocado los primarios y todas las réplicas síncronas para una partición, las réplicas asíncronas se colocan hasta que se cumple el valor maxAsyncReplicas. (Opcional)
replicaReadEnabled
Si este atributo se establece en true, las solicitudes de lectura se distribuyen entre un primario de la partición y sus réplicas. Si el atributo replicaReadEnabled es false, las solicitudes de lectura se direccionan únicamente al primario. El valor predeterminado es false. (Opcional)
numInitialContainers
Especifica el número de servidores de contenedor necesarios antes de que se produzca la colocación inicial para los fragmentos en este elemento mapSet. El valor predeterminado es 1. Este atributo puede ayudar a ahorrar ancho de banda de red y proceso al poner en línea una cuadrícula de datos desde un arranque en frío. (Opcional)
También puede utilizar la propiedad placementDeferralInterval y el mandato xscmd -c suspendBalancing para retardar la colocación inicial de fragmentos en los servidores de contenedor.
Al iniciar un servidor de contenedor se envía un suceso al servicio de catálogo. La primera vez que el número de servidores de contenedor activos es igual al valor de numInitialContainers para un elemento, el servicio de catálogo coloca los fragmentos desde el mapSet, siempre que el valor minSyncReplicas también se pueda satisfacer. Una vez que se ha cumplido el valor numInitialContainers, cada suceso de servidor iniciado de contenedor puede desencadenar un reequilibrio de fragmentos no colocados o colocados previamente. Si sabe aproximadamente cuántos servidores de contenedor va a iniciar para este elemento mapSet, puede establecer el valor numInitialContainers en un valor próximo a ese número para evitar el reequilibrio después de cada inicio de servidor de contenedor. La colocación se produce solo cuando se alcanza el valor numInitialContainers especificado en el elemento mapSet.

Si necesita sobrescribir el valor numInitialContainers, por ejemplo, al realizar mantenimiento en los servidores y desea que se continúe ejecutando la colocación de fragmentos, puede utilizar el mandato xscmd -c triggerPlacement. Esta sustitución es temporal y se aplica al ejecutar el mandato. Después de ejecutar el mandato, todas las ejecuciones subsiguientes de colocación utilizan el valor numInitialContainers.

autoReplaceLostShards
Especifica si los fragmentos perdidos se colocan en otros servidores de contenedor. El valor predeterminado es true. Cuando se detiene un servidor de contenedor o falla, los fragmentos en ejecución en el servidor de contenedor se perderán. La pérdida de un fragmento primario hace que uno de sus fragmentos de réplica se promocione al fragmento primario para la partición correspondiente. Debido a este ascenso, se pierde una de las réplicas. Si desea que los fragmentos perdidos permanezcan sin colocar, establezca el atributo autoReplaceLostShards en false. Este valor no afecta a la cadena de ascensos, sólo la sustitución del último fragmento en la cadena. (Opcional)
developmentMode
Con este atributo, puede influir en el lugar en el que se coloca el fragmento en relación a sus fragmentos iguales. El valor predeterminado es true. Cuando el atributo developmentMode se establece en false, ninguno de los dos fragmentos de la misma partición se colocan en el mismo sistema. Cuando el atributo developmentMode se establece en true, los fragmentos de la misma partición se pueden colocar en la misma máquina. En cualquiera de los dos casos, no se colocarán nunca dos fragmentos de la misma partición en el mismo servidor de contenedor. (Opcional)
placementStrategy
Existen dos estrategias de colocación. La estrategia predeterminada es FIXED_PARTITION, donde el número de fragmentos primarios que se colocan en los servidores de contenedor disponibles es igual al número de particiones definidas, aumentado por el número de réplicas. La estrategia alternativa es PER_CONTAINER, donde el número de fragmentos primarios que se colocan en cada servidor de contenedor es igual al número de particiones que se definen, con un número igual de réplicas colocado en otros servidores de contenedor. (Opcional)

Elemento map (línea 14)

Cada correlación de un elemento mapSet hace referencia a los elementos backingMap que se definen en el correspondiente archivo XML de ObjectGrid. Cada correlación de un entorno de eXtreme Scale puede pertenecer sólo a un elemento de mapSet.
Atributos
ref
Proporciona una referencia a un elemento backingMap en el archivo XML de ObjectGrid. Cada correlación de un elemento mapSet debe hacer referencia a un elemento backingMap del archivo XML de ObjectGrid. El valor que se asigna al atributo ref debe coincidir con el atributo name de uno de los elementos backingMap del archivo XML de ObjectGrid, como en el siguiente fragmento de código. (Necesario)

Elemento zoneMetadata (línea 16)

Puede colocar fragmentos en zonas. Esta función le permite tener más control sobre cómo eXtreme Scale coloca los fragmentos en una cuadrícula. Las Java™ virtual machine que alojan un servidor eXtreme Scale se pueden marcar con un identificador de zona. El archivo de despliegue puede incluir una o más reglas de zona y estas reglas de zona están asociadas a un tipo de fragmento. El elemento zoneMetadata es un receptáculo de elementos de configuración de zona. En el elemento zoneMetadata, se pueden definir zonas y se puede influenciar el comportamiento de la colocación de fragmentos.

Para obtener información adicional, consulte Configuración de zonas para la colocación de réplicas.

Atributos: ninguno

Elemento shardMapping (línea 17)

El elemento shardMapping se utiliza para asociar un tipo de fragmento a una regla de zona. La colocación del fragmento está influenciada por la correlación a la regla de zona.
Atributos
fragmento
Especifique el nombre de un fragmento al que desea asociar un zoneRule. (Necesario)
zoneRuleRef
Especifique el nombre de un zoneRule al que desea asociar el fragmento. (Opcional)

Elemento zoneRule (línea 20)

Una regla de zonas especifica el conjunto de zonas posible en el que se puede colocar el fragmento. El elemento zoneRule se utiliza para especificar un conjunto de zonas en el que se puede colocar un conjunto de tipos de fragmento. La regla de zona también se puede utilizar para determinar cómo se agrupan los fragmentos en las zonas utilizando el atributo exclusivePlacement.
Atributos
name
Especifique el nombre de la regla de zona que ha definido anteriormente, como el zoneRuleRef de un elemento shardMapping. (Necesario)
exclusivePlacement
Un valor exclusivo indica que cada tipo de fragmento correlacionado con esta regla de zona se coloca en una zona distinta en la lista de zonas. Un valor inclusivo indica que tras colocar un fragmento en una zona de la lista, los otros tipos de fragmento correlacionados con esta regla de zona también se colocan en esa zona. Tenga en cuenta que la utilización de un valor exclusivo con tres fragmentos correlacionados con la misma regla de zona (un primario y dos réplicas síncronas) necesitaría como mínimo 3 zonas para que se pudieran colocar todos los fragmentos. (Opcional)

Elemento zone (líneas 23 a 25)

El elemento de zona se utiliza para denominar una zona en una regla de zona. Cada zona denominada debe corresponder a un nombre de zona utilizado para lanzar servidores.

Ejemplo

En el siguiente ejemplo, se utiliza el elemento mapSet para configurar una política de despliegue. El valor se establece en mapSet1 y está dividido en 10 particiones. Cada una de estas particiones debe tener como mínimo una réplica síncrona disponible y no más de dos réplicas síncronas. Cada partición también tiene una réplica síncrona si el entorno puede darle soporte. Se colocan todas las réplicas síncronas antes de que se coloquen las réplicas asíncronas. Además, el servicio de catálogo no intenta colocar los fragmentos para el elemento mapSet1 hasta que el dominio pueda dar soporte al valor minSyncReplicas. El soporte del valor minSyncReplicas requiere dos o más servidores de contenedor: uno para el primario y dos para la réplica síncrona.
<?xml version="1.0" encoding="UTF-8"?>
<deploymentPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://ibm.com/ws/objectgrid/deploymentPolicy ../deploymentPolicy.xsd"
	xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">

	<objectgridDeployment objectgridName="CompanyGrid">
		<mapSet name="mapSet1" numberOfPartitions="10"
			minSyncReplicas="1" maxSyncReplicas="2"	maxAsyncReplicas="1"
		 	numInitialContainers="10" autoReplaceLostShards="true"
			developmentMode="false" replicaReadEnabled="true">
			<map ref="Customer"/>
			<map ref="Item"/>
			<map ref="OrderLine"/>
			<map ref="Order"/>
		</mapSet>
	</objectgridDeployment>

</deploymentPolicy>
Aunque solo se requieren dos servidores de contenedor para satisfacer los valores de réplica, el atributo numInitialContainers requiere 10 servidores de contenedor disponibles antes de que el servicio de catálogo intente colocar cualquiera de los fragmentos en este elemento mapSet. Una vez que el dominio tenga 10 servidores de contenedor que puedan dar soporte al ObjectGrid CompanyGrid, se colocan todos los fragmentos del elemento mapSet1.

Debido a que el atributo autoReplaceLostShards está establecido en true, cualquier fragmento de este elemento mapSet que se pierde como resultado de la anomalía del servidor de contenedor normalmente se sustituye en otro servidor de contenedor, siempre que haya un servidor de contenedor disponible para alojar el fragmento perdido. Los fragmentos de la misma partición no pueden colocarse en la misma máquina para el elemento mapSet1 porque el atributo developmentMode está establecido en false. Las solicitudes de sólo lectura se distribuyen por el fragmento primario y sus réplicas para cada partición porque el valor replicaReadEnabled es true.

El archivo companyGridDpMapSetAttr.xml utiliza el atributo ref en la correlación para hacer referencia a cada uno de los elementos backingMap del archivo companyGrid.xml.

Consulte Direccionamiento a zonas según preferencias para ver ejemplos que impliquen configuraciones de zona.