整合性

このページでは、Google Cloud Storage の整合性が強いオペレーションと結果競合性のオペレーションについて説明します。キャッシュ可能な、一般公開されたオブジェクトの場合、オブジェクトに対するオペレーションの整合性のレベルは制御可能です。

整合性が強いオペレーション

Cloud Storage の次のオペレーションでは、データとメタデータの両方を含め、グローバルな強い整合性が保たれます。

  • read-after-write
  • read-after-metadata-update
  • read-after-delete
  • バケットの一覧表示
  • オブジェクトの一覧表示
  • リソースに対するアクセス権の付与

Cloud Storage にオブジェクトをアップロードし、成功のレスポンスを受け取ると、オブジェクトは直ちに、Google がサービスを提供するすべてのロケーションからのダウンロード オペレーションとメタデータ オペレーションの対象になります。これは、新しいオブジェクトを作成する場合でも、既存のオブジェクトを上書きする場合でも同じです。アップロードは非常に整合性が強いため、read-after-write または read-after-metadata-update オペレーションに対して 404 Not Found レスポンスや古いデータを受け取ることはありません。

さらに、アップロード リクエストが成功したということは、データが複数のデータセンターにレプリケーションされることを意味します。Cloud Storage のグローバルな整合性を持つ、レプリケーションされたストアへの書き込み処理のレイテンシは、レプリケーションされていない、または commit されていないストアの場合よりもわずかに高くなる可能性があります。これは、成功のレスポンスが、1 つだけでなく複数の書き込みが完了した場合にのみ返されるためです。

グローバルな強い整合性は、オブジェクトの削除オペレーションにも当てはまります。削除リクエストが成功した直後に、オブジェクトまたはそのメタデータをダウンロードしようとすると、404 Not Found ステータス コードが返されます。削除オペレーションが成功した後にはオブジェクトが存在しないため、404 エラーが返されます。

バケットの一覧表示は強い整合性を保ちます。たとえば、バケットを作成し、その直後に list buckets オペレーションを行うと、返されたバケットのリストに新しいバケットが表示されます。

また、オブジェクトの一覧表示は強い整合性を保ちます。たとえば、バケットにオブジェクトをアップロードし、その直後に list objects オペレーションを行うと、返されたオブジェクトのリストに新しいオブジェクトが表示されます。

バケットについては、read-after-metadata-update オペレーションでのメタデータの更新は強い整合性を保ちますが、結果として得られる設定の変更が反映されるまでに時間がかかる場合があります。たとえば、バケットでオブジェクトのバージョニングを有効にした場合、オブジェクトの削除または上書きを行う前に 30 秒以上待つ必要があります。

結果整合性のオペレーション

以下のオペレーションでは結果整合性が保たれます。

  • リソースに対するアクセス権の取り消し

通常、アクセス権の取り消しが有効になるまでに 1 分ほどかかります。処理に時間がかかる場合もあります。

結果整合性によって発生する可能性がある動作の例を挙げると、バケットに対するユーザーのアクセス権を取り消した場合、この変更はバケットのメタデータにすぐに反映されますが、少しの間、そのユーザーがバケットにアクセスできる場合があります。

キャッシュ制御と整合性

一般公開され、キャッシュされたオブジェクトでは、強い整合性が損なわれる可能性があります。オブジェクトのキャッシュ保存を許可すると、オブジェクトがキャッシュ内にある場合にそのオブジェクトを更新または削除しても、そのキャッシュの有効期間が満了するまで、キャッシュされたオブジェクトは更新または削除されません。

オブジェクトのキャッシュの有効期間は、オブジェクトの Cache-Control メタデータで定義されます。Cache-Control メタデータは、オブジェクトを最初にアップロードするときや、オブジェクトのメタデータを更新するときに、Cache-Control リクエスト ヘッダーを使用して設定できます。Cache-Control メタデータは制御可能であるため、キャッシュされたオブジェクトの整合性のレベルも制御することができます。また、オブジェクトに対するリクエストには独自の Cache-Control ヘッダーを追加できますが、キャッシュのコンテンツを回避するように設定されている場合、Cloud Storage はこれらのヘッダーを無視します。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Storage ドキュメント