1

get(Iterable e)は強く一貫性のあるデータまたは最終的には一貫性のあるデータを返します。 私はドキュメントを見てきましたが、答えが見つかりませんでした。Google Cloud Datastoreで取得するバッチの一貫性レベルは何ですか

+0

*すべての "データストア"の実用的な一貫性は、データがどのようにそこに到達するか、ストア内にあるものが「到着時に失礼」であるように変更される可能性があるかどうかによってます。それは...共有リソースとして扱われなければならない共有リソースです。通常の注意点は「Googleかどうか」です。 –

答えて

1

短い答え

バッチGET(500品目を言う)、個々のエンティティの外に全く一貫性の保証を行いません。言い換えれば、それは500個の個々のルックアップと同じ一貫性を持ち、各エンティティは強く一貫しています。トランザクションはアトミックなので、部分的なトランザクションは表示されません。

が長い

現在の実装の詳細(変更の可能性を)回答になります取得バッチは同じEntity Group内のエンティティのための強力な一貫性があるということです。

エンティティグループ間では、最終的に一貫性があります。一例として、

、次の点を考慮してください

あなたがトランザクション(TX1)に包まれたエンティティグループ1(EG1)から5つのエンティティを削除するには、クライアントA(CA)からのリクエストを送信します。コミット後、cAからエンティティグループ2(たとえば2)に5つのエンティティを書き込み、トランザクション(tx2)にもラップされた2番目の要求を発行します。

クライアントB(cB)は、ほぼ同時にこれらの10個のエンティティのバッチ取得を行います。

可能な結果が含ま:TX2は

  • をコミットした後、EG2が読み込まれる

    • 全10個のエンティティが返されTX1がコミットする前に
      • EG1が読み込まれ、何の実体は を返されません
        • EG1はTX1がコミットする前に、EG2がコミットTX2の前に読まれる読まれEG2は
          • EG1を返されEG1から
        • 5エンティティをコミットTX2の前に読み込まれ、コミットTX1後に読み込まれ
        EG2から
      • 5エンティティが返され
        • EG1はコミットTX1後に読み込まれ、EG2 I Cloud Datastoreのトランザクションがアトミックであるため、時間がない時に、

      注意をコミットTX2後に読んSは、部分的な取引の結果が返されます。

  • 関連する問題