すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:シャード

最終更新日:Aug 20, 2024

シャードは、LogstoreまたはMetricstoreの読み取りおよび書き込み容量を制御するために使用されます。 Simple Log Serviceでは、データはシャードに保存されます。

MD5値の範囲

各シャードにはMD5値の範囲があり、各範囲は [BeginKey, EndKey) の形式で左クローズと右オープンの間隔です。 各範囲は、他のシャードの範囲と重複しません。 MD5値の範囲全体が次の範囲内にあります: [00000000000000000000000000000000, ffffffffffffffffffffffffffffffff) 。 LogstoreまたはMetricstoreを作成するときに、シャードの数を指定できます。 Simple Log Serviceは、各シャードのMD5値の範囲全体を均等に分割します。

  • BeginKey: シャードの始まり。 値は、シャードのMD5値範囲に含まれます。

  • EndKey: シャードの終わり。 値は、シャードのMD5値範囲から除外されます。

この例では、Logstore Aに4つのシャードがあります。 次の表に、各シャードのMD5値の範囲を示します。

表 1. MD5値範囲

シャードID

値の範囲

Shard0

[00000000000000000000000000000000,40000000000000000000000000000000)

Shard1

[40000000000000000000000000000000,80000000000000000000000000000000)

Shard2

[80000000000000000000000000000000, c00000000000000000000000000000000000)

Shard3

[c0000000000000000000000000000000,ffffffffffffffffffffffffffffffff)

シャードからデータを読み取るには、シャードのIDを指定する必要があります。 データをシャードに書き込むには、負荷分散方法を使用するか、ハッシュキーを指定します。

  • 負荷分散方式を使用する場合、各データパケットは使用可能なシャードにランダムに書き込まれます。

    実際の書き込みトラフィックが1つのシャードの容量を超える場合は、負荷分散方法を使用することを推奨します。

  • ハッシュキーを指定すると、MD5値の範囲に指定されたハッシュキーの値が含まれるシャードにデータが書き込まれます。

    たとえば、シャード範囲はMD5値範囲で表示されます。 Logstoreにデータを書き込むためのハッシュキーとして5Fを指定した場合、Shard1のMD5値の範囲にハッシュキー5Fが含まれているため、データはShard1に書き込まれます。 ハッシュキーとして8Cを指定した場合、Shard2のMD5値の範囲にハッシュキー8Cが含まれているため、データはShard2に書き込まれます。

シャード容量

各シャードは読み取り容量と書き込み容量を提供します。 詳細については、「データの読み取りと書き込み」をご参照ください。

実際のデータトラフィックに基づいてシャードの数を調整することを推奨します。 データトラフィックがシャードの読み取りまたは書き込み容量を超える場合は、シャードを複数のシャードに分割して容量を増やすことができます。 データトラフィックがシャードの読み取りまたは書き込み容量よりもはるかに少ない場合は、シャードを別のシャードとマージして容量を減らし、コストを節約できます。

重要
  • Simple Log Service APIを呼び出してデータを書き込むときにエラーコードの403または500が頻繁に返される場合は、CloudMonitorコンソールに移動してトラフィックとステータスコードを確認できます。 次に、シャードの数を増やすかどうかを判断できます。

  • データトラフィックがシャードの容量を超える場合、Simple Log Serviceは可能な限り最高のサービスを提供しようとします。 ただし、Simple Log Serviceはサービスの品質を保証できません。

シャードステータス

シャードは、readwrite (読み取りおよび書き込み) 状態またはreadonly (読み取り専用) 状態にすることができます。

シャードを作成すると、シャードはreadwrite状態になります。 シャードを分割またはマージすると、ステータスがreadonlyに変わります。 新しく生成されたシャードはreadwrite状態です。 シャードのステータスは、シャードの読み取り容量には影響しません。 リードライト状態のシャードにはデータを書き込むことができますが、リードオンリー状態のシャードにはデータを書き込むことはできません。

分割とマージ

Simple Log Serviceを使用すると、シャードを分割およびマージできます。

  • シャードを分割すると、さらに2つのシャードが追加されます。 新しいシャードはreadwrite状態で、元のシャードの下にリストされます。 新しいシャードのMD5値の範囲には、元のシャードのMD5値の範囲が含まれます。

    シャードを分割する前に、シャードはreadwrite状態である必要があります。 シャードを分割すると、シャードのステータスがreadwriteからreadonlyに変わります。 これは、データをシャードから読み取ることはできますが、シャードに書き込むことはできません。

  • 2つのシャードを1つのシャードにマージできます。 新しいシャードはreadwrite状態で、元のシャードの下にリストされています。 新しいシャードのMD5値の範囲には、元の2つのシャードのMD5値の範囲が含まれます。

    シャードをマージするときは、readwrite状態のシャードを指定する必要があります。 このシャードをシャードリストの最後のシャードにすることはできません。 Simple Log Serviceは、MD5値の範囲が指定されたシャードの横にあるシャードを検索し、2つのシャードをマージします。 シャードをマージすると、シャードのステータスがreadwriteからreadonlyに変わります。 これは、データをシャードから読み取ることはできますが、シャードに書き込むことはできません。