ストレージおよびスループットの観点からシャードごとの容量を計算した後、ストアで必要な最大ストレージおよびスループットに基づいて、単純な外挿を使用してシャードとパーティションの総数をまとめて見積もることができます。この計算には次の入力を指定する必要があります。
シャードの必要数は、次のようにまずストレージ要件に基づいて計算されます。
MaxKVPairs/MaxKVPairsPerShard
この値は、セルStorageBasedShardsによって計算されます。
その後、シャードの必要数は、次のようにIOスループット要件に基づいて再計算されます。
MaxStorewideOpsPerSec/OpsPerShardPerSec
この値は、OpsBasedShardsという名前のセルによって計算されます。
前述のストレージおよびスループットに基づいて計算されたシャードの最大数は、アプリケーションのストレージとスループットの両方の総要件を満たすのに十分な数です。
値は、セルStoreShardsによって計算されます。選択が行われた基準を強調表示するために、StorageBasedShardsまたはOpsBasedShardsの2つのうち小さい方の値は、線を引いて消されています。
シャードの必要数が決定したら、マシンの必要数を次のように計算します。
MAX(RF, (StoreShards*RF)/DisksPerMachine)
ストア内の各シャードには、1つ以上のパーティションが含まれる必要がありますが、各シャードに複数のパーティションが常に含まれるようにストアを構成することをお薦めします。KVStore内のレコードはKVStoreパーティションに均等に分散され、その結果、シャードにも均等に分散されます。ストアを最初に作成する際、ストアに含めるパーティションの総数を決定します。この数値は静的であり、ストアの存続中に変更することはできないため、重要な初期構成パラメータです。
パーティションの数は、ストアに含まれる予定のシャードの最大数より大きい必要があります。シャードをストアに追加すると、シャード間でパーティションが移動され(これに伴って、データが移動され)、ストアが再均衡化されます。したがって、パーティションの総数は、実質的には、ストアに含めることができるシャードの総数の永続的な制限です。
非常に多数のパーティションを構成すると、一定のオーバーヘッドが伴うことに注意してください。しかし、ストアの拡張に備えて十分な余裕を持たせたパーティション値を選択してもかまいません。シャードの最大数の10倍のパーティション数を選択することは不適切ではありません。
パーティションの数は、セルStorePartitionsによって計算されます。
StoreShards * 10