PUT(コンテナ整合性)要求

PUT(コンテナ整合性)要求では、コンテナに対して実行される処理に適用する整合性レベルを指定できます。デフォルトでは、新しいコンテナはread-after-new-write整合性レベルを使用して作成されます。

要求

要求のHTTPヘッダー 説明
X-Auth-Token 要求に使用するアカウントのSwift認証トークンです。
x-ntap-sg-consistency コンテナに対する処理に適用される整合性制御レベルです。サポートされる値は次のとおりです。
  • all:すべてのノードが即座にデータを受け取り、受け取れない場合は要求が失敗します。
  • strong-global:すべてのサイトにおけるすべてのクライアント要求について、リードアフターライト整合性が保証されます。
  • strong-site:1つのサイトにおけるすべてのクライアント要求について、リードアフターライト整合性が保証されます。
  • read-after-new-write:新規オブジェクトについてはリードアフターライト整合性が提供され、オブジェクトの更新については結果整合性が提供されます。高可用性が確保され、データ保護が保証されます。
    注: 存在しないオブジェクトに対してアプリケーションがHEAD要求を使用すると、使用できないストレージ ノードがある場合に「500 Internal Server Error」が大量に返される可能性があります。このエラーを回避するには、availableレベルを使用します。
  • available(HEAD処理は結果整合性):read-after-new-write整合性レベルと動作は同じですが、HEAD処理については結果整合性のみ提供されます。ストレージ ノードを使用できない場合に、HEAD処理に対してread-after-new-writeよりも高い可用性が提供されます。
  • weak:結果整合性と高可用性が提供され、最低限のデータ保護が保証されます(特に、ストレージ ノードが障害または使用不可の状態に陥った場合)。高可用性を必要とし、リードアフターライト整合性は必要とせず、ノードに障害が発生した場合のデータ損失を許容できる、書き込み負荷の高いワークロードにのみ適しています。
Host 要求の転送先のホスト名です。

整合性制御とILMルールの相互作用によるデータ保護への影響

整合性制御とILMルールは、どちらもオブジェクトの保護方法に影響します。この2つの設定は相互に作用します。

たとえば、オブジェクトの格納時に使用される整合性制御はオブジェクト メタデータの初期配置に影響し、ILMルールで選択された取り込み動作はオブジェクト コピーの初期配置に影響します。StorageGRIDはクライアント要求に対応するためにオブジェクトのメタデータとデータの両方にアクセスする必要があります。そのため、整合性レベルと取り込み動作で同じ保護レベルを使用すると、初期のデータ保護を適切に実施し、システムの動作をより予測できるようになります。

ILMルールでは、次の取り込み動作を選択できます。
  • Strict:ILMルールで指定されたすべてのコピーが作成されるまで、クライアントに処理の成功は返されません。
  • Balanced:ILMルールで指定されたすべてのコピーの作成が取り込み時にStorageGRIDで試行され、作成できない場合は中間コピーが作成されてクライアントに成功が返されます。可能な場合は、ILMルールで指定されたコピーが作成されます。
  • Dual Commit:オブジェクトの中間コピーがStorageGRIDでただちに作成されてクライアントに成功が返されます。可能な場合は、ILMルールで指定されたコピーが作成されます。
注: ILMルールの取り込み動作にはそれぞれメリットと制限があるため、選択する前にStorageGRIDの管理手順で各オプションの詳細を確認してください。

整合性制御とILMルールの相互作用の例

2サイトのグリッドで次のILMルールと整合性レベル設定を使用しているとします。
  • ILMルール:ローカル サイトとリモート サイトに1つずつ、2つのオブジェクト コピーを作成します。取り込み動作はStrictが選択されています。
  • 整合性レベル:strong-global(オブジェクト メタデータがすべてのサイトにただちに分散されます)。
クライアントがこのグリッドにオブジェクトを格納すると、StorageGRIDは両方のオブジェクト コピーを作成し、両方のサイトにメタデータを分散し、その後クライアントに成功を返します。

ingest successfulメッセージが返された時点でオブジェクトは損失から完全に保護されています。たとえば、取り込み直後にローカル サイトが失われても、オブジェクト データとオブジェクト メタデータの両方のコピーがリモート サイトに残っています。オブジェクトは完全に読み出し可能です。

同じILMルールとstrong-site整合性レベルを使用した場合は、オブジェクト データがリモート サイトにレプリケートされた時点で、オブジェクト メタデータが分散されていなくても、クライアントに成功メッセージが返されることがあります。この場合、オブジェクト メタデータとオブジェクト データで保護レベルが一致していません。取り込み直後にローカル サイトが失われると、オブジェクト メタデータは失われます。オブジェクトを読み出すことはできません。

整合性レベルとILMルールの関係は複雑になることがあります。サポートが必要な場合は、ネットアップにお問い合わせください。

要求例

PUT /v1/28544923908243208806/Swift container
X-Auth-Token: SGRD_3a877009a2d24cb1801587bfa9050f29
x-ntap-sg-consistency: strong-site
Host: test.com

応答

応答のHTTPヘッダー 説明
Date 応答の日付と時刻。
Connection サーバへの接続が開いているかどうか。
X-Trans-Id 要求の一意のトランザクション識別子。
Content-Length 応答の本文の長さ。

応答例

HTTP/1.1 204 No Content
Date: Sat, 29 Nov 2015 01:02:18 GMT
Connection: CLOSE
X-Trans-Id: 1936575373
Content-Length: 0