デプロイメント・ポリシー記述子 XML ファイル
デプロイメント・ポリシーを構成するには、デプロイメント・ポリシー記述子 XML ファイルを使用します。
以下のセクションでは、デプロイメント・ポリシー記述子 XML ファイルのエレメントおよび属性が定義されます。 対応するデプロイメント・ポリシー XML スキーマについては、 deploymentPolicy.xsd ファイル を参照してください。
deploymentPolicy エレメント
deploymentPolicy エレメントは、デプロイメント・ポリシー XML ファイルの最上位エレメントです。 このエレメントは、ファイルの名前空間とスキーマ・ロケーションをセットアップします。 スキーマは deploymentPolicy.xsd ファイルで定義されます。- 出現回数: 1 回
- 子エレメント: objectgridDeployment
objectgridDeployment エレメント
objectgridDeployment エレメントは、ObjectGrid XML ファイルの ObjectGrid インスタンスを参照する場合に使用します。 objectgridDeployment エレメント内では、マップをマップ・セットに分割できます。- 出現回数: 1 回以上
- 子エレメント: mapSet
- objectgridName
- デプロイする ObjectGrid インスタンスの名前を指定します。 この属性は、ObjectGrid XML ファイルで定義されている objectGrid エレメントを参照します。 (必須)
mapSet エレメント
mapSet エレメントは複数のマップをまとめてグループ化するために使用されます。 mapSet エレメント内のマップは同じように区画に分割され、複製されます。 各マップは、単一の mapSet エレメントのみに属している必要があります。- 出現回数: 1 回以上
- 子エレメント:
- マップ
- zoneMetadata
- name
- (必須) MapSet の名前を指定します。 この属性は、objectgridDeployment エレメント内では固有である必要があります。
- numberOfPartitions
- (オプション) MapSet エレメント用の区画の数を指定します。 デフォルト値は 1 です。 この数は、区画をホストしているコンテナー・サーバーの数に適した値である必要があります。 (オプション)
- minSyncReplicas
- 同期レプリカの最小数を MapSet 内の区画ごとに指定します。 デフォルト値は 0 です。 断片は、ドメインが同期レプリカの最小数をサポートできるようになるまで配置されません。 minSyncReplicas 値をサポートするには、minSyncReplicas 値よりも 1 つ多いコンテナー・サーバーが必要です。 同期レプリカの数が minSyncReplicas 値よりも小さくなると、その区画に対しては書き込みトランザクションを行えなくなります。次の構成では、minSyncReplicas 値が 0 より大きい値に設定されると、 レプリカは次のように期待されるため、トランザクションはデータ・グリッドから拒否されます。
- 複数ゾーン構成では、ゾーンは 1 つのみ使用可能です。
- ホストが 1 つのみ使用可能で、developmentMode 属性は false に設定されています。
- allowableShardOverrage プロパティーが構成されている場合、2 番目のゾーンのコンテナー・サーバーの数が、 構成されたパーセンテージを超えるまで、特定の区画のトランザクションは拒否されます。
- maxSyncReplicas
- 同期レプリカの最大数を MapSet 内の区画ごとに指定します。 デフォルト値は 0 です。 ドメインがある区画のこの同期レプリカ数に達すると、その特定の区画に対しては他の同期レプリカは配置されません。 まだ maxSyncReplicas 値を満たしていない場合には、この ObjectGrid をサポートできるコンテナー・サーバーを追加すると、同期レプリカの数を増やすことができます。 (オプション)
- maxAsyncReplicas
- 非同期レプリカの最大数を MapSet 内の区画ごとに指定します。 デフォルト値は 0 です。 1 つの区画に対して 1 次レプリカとすべての同期レプリカが配置されると、 maxAsyncReplicas 値が満たされるまで非同期レプリカが配置されます。 (オプション)
- replicaReadEnabled
- この属性が true に設定されている場合、プライマリー区画とそのレプリカ間に読み取り要求が分散されます。 replicaReadEnabled 属性が false の場合は、読み取り要求はプライマリーにのみ送付されます。 デフォルト値は false です。 (オプション)
- numInitialContainers
- この mapSet エレメント内の断片に対して初期配置が行われる前に必要となるコンテナー・サーバーの数を指定します。 デフォルト値は 1です。 この属性は、コールド・スタートからデータ・グリッドをオンラインにするときに、プロセスとネットワーク帯域幅を節約するのに役立ちます。 (オプション)
- autoReplaceLostShards
- 失われた断片がその他のコンテナー・サーバーに配置されるかどうかを指定します。 デフォルト値は trueです。 コンテナー・サーバーが停止するか、障害を発生すると、コンテナー・サーバーで実行中の断片が失われます。 プライマリー断片が失われると、対応する区画のレプリカ断片のいずれかがプライマリー断片にプロモートされます。 このプロモーションのため、レプリカの 1 つが失われます。 失われた断片を未配置のままにしておく場合は、autoReplaceLostShards 属性を false に設定します。 この設定はプロモーション・チェーンには影響せず、そのチェーン内の最後の断片の置き換えにのみ影響します。 (オプション)
- developmentMode
- この属性を使用すると、ある断片をそのピア断片との関係でどこに配置するかを制御できます。 デフォルト値は trueです。 developmentMode 属性が false に設定されている場合は、同じ区画の 2 つの断片は同じコンピューターには配置されません。 developmentMode 属性が true に設定されている場合は、同じ区画の断片を同じサーバーに配置することができます。 いずれの場合も、同一の区画の 2 つの断片は、同一のコンテナー・サーバーには配置されません。 (オプション)
- placementStrategy
- 配置ストラテジーには 2 つあります。 デフォルトのストラテジーは、 固定区画ストラテジーを使用するものです。 属性 placementStrategy を FIXED_PARTITIONS に設定することで、 使用可能な複数のコンテナー・サーバー間に配置されるプライマリー断片の数は、定義されている区画数にレプリカ数を加えたものになります。 他のストラテジーは、 コンテナーごとのストラテジーを使用するものです。 placementStrategy を PER_CONTAINER に設定することで、 各コンテナー・サーバーに配置されるプライマリー断片の数は、定義されている区画数になり、同じ数のレプリカが他のコンテナー・サーバーに配置されます。 (オプション)
map エレメント
mapSet エレメント内の各 map エレメントは、対応する ObjectGrid XML ファイルで定義されている backingMap エレメントの 1 つを参照します。 分散 eXtreme Scale 環境内のすべてのマップは、1 つの mapSet エレメントにのみ属することができます。- 出現回数: 1 回以上
- 子エレメント: なし
- ref
- ObjectGrid XML ファイル内の backingMap エレメントを参照できるようにします。 mapSet エレメント内の各マップは、ObjectGrid XML ファイルの backingMap エレメントを参照する必要があります。 ref 属性に割り当てられている値は、ObjectGrid XML ファイル内の backingMap エレメントの 1 つの name 属性に一致している必要があります。 (必須)
zoneMetadata エレメント
ゾーンに断片を配置することができます。 ゾーンを使用すると、eXtreme Scale がグリッド上に断片をどのように配置するかを制御できます。 eXtreme Scale サーバーをホストする Java 仮想マシンは、ゾーン ID によってタグ付けすることができます。 デプロイメント・ファイルには 1 つ以上のゾーン・ルールを含めることができます。これらのゾーン・ルールは、断片タイプに関連付けられます。 zoneMetadata エレメントは、ゾーン構成エレメントの容器です。 zoneMetadata エレメントの中で、ゾーンを定義でき、断片配置の振る舞いに影響を及ぼすことができます。
詳しくは、 レプリカ配置用のゾーンを参照してください。
- 出現回数: 0 回または 1 回
- 子エレメント:
- shardMapping
- zoneRule
属性: なし
shardMapping エレメント
shardMapping エレメントを使用して、断片タイプをゾーン・ルールと関連付けます。 断片の配置は、ゾーン・ルールへのマッピングの影響を受けます。- 出現回数: 0 回または 1 回
- 子エレメント: なし
- shard
- zoneRule と関連付ける断片の名前を指定します。 (必須)
- zoneRuleRef
- 断片と関連付ける zoneRule の名前を指定します。 (オプション)
zoneRule エレメント
ゾーン・ルールは、断片を配置できるゾーンのセットを指定します。 zoneRule エレメントを使用して、中に断片タイプのセットを置くことができるゾーンのセットを指定します。 ゾーン・ルールはまた、exclusivePlacement 属性を使用して、断片をゾーン全体でどのようにグループ化するかを決定するためにも使用できます。- 出現回数: 1 回以上
- 子エレメント: zone
- name
- 以前に shardMapping エレメント内の zoneRuleRef として定義したゾーン・ルールの名前を指定します。 (必須)
- exclusivePlacement
- 排他設定は、このゾーン・ルールにマップされた各断片タイプが、ゾーン・リストの異なるゾーンに配置されることを示します。 包含設定は、1 つの断片がリストからゾーンに配置されると、このゾーン・ルールにマップされた他の断片タイプもそのゾーンに配置されることを示します。 同じゾーン・ルールにマップされた 3 つの断片に排他設定を使用する場合、 少なくとも 3 つのゾーンが必要です。 3 つの断片には、プライマリーと 2 つの同期レプリカが含まれます。 (オプション)
zone エレメント
ゾーン・エレメントを使用して、ゾーン・ルール内のゾーンに名前を付けます。 名前を付けられた各ゾーンは、サーバーの起動に使用されるゾーン名と一致する必要があります。例:
<?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>
複製の設定を満たすには、コンテナー・サーバーは 2 つしか必要ありません。 ただし、numInitialContainers 属性は、
カタログ・サービスがこの mapSet エレメントに断片を配置する前に、使用可能なコンテナー・サーバーを 10 個要求します。 ドメインが、CompanyGrid ObjectGrid をサポートできるコンテナー・サーバーを 10 個持つと、mapSet1 エレメント内のすべての断片が配置されます。autoReplaceLostShards 属性が true に設定されている場合、この mapSet エレメント内の、 コンテナー・サーバー障害のために失われた断片は、自動的に別のコンテナー・サーバーに再配置されます。 この再配置は、失われた断片をコンテナー・サーバーがホストできる場合にのみ発生します。 mapSet1 エレメントでは、同じ区画内の断片は、同じサーバーには配置できません。developmentMode 属性が false に設定されているためです。 読み取り専用要求は、区画ごとにプライマリー断片とそのレプリカ間に分散されます。これは、replicaReadEnabled 値が true であるためです。
companyGridDpMapSetAttr.xml ファイルは、この map エレメントの ref 属性を使用して、companyGrid.xml ファイルの各 backingMap エレメントを参照します。
その他の例については、 ゾーン優先ルーティングを参照してください。