私は、同じ親を持つ約100,000の新しいエンティティ(ユーザーを表す)を作成しようとしています。エンティティグループごとに1つのエンティティ書き込みの制限があることを読んでいます。要求がタイムアウトする可能性があると思ったので、プッシュキュータスクを使用して10分の時間を延長することにしました。プッシュキュータスクのforループでput()を使用しようとしましたが、まだタイムアウトしました(約8,900個のエンティティしか書き込めません)。Google Datastore - 1秒あたりの書き込み制限を超えるとどうなりますか?
なぜ私は同じグループに複数の書き込みをしようとしたのでエラーが発生しなかったのか混乱しています。タスクは10分でタイムアウトしたので、1分間に890回の書き込みが行われ、1秒あたり約14回の書き込みとなります。これは1秒間に1回の書き込みを超える方法です。私はGoogle App Engine HRD - what if I exceed the 1 write per second limit for writing to the entity group?とGoogle Datastore - Not Seeing 1 Write per Second per Entity Group Limitationの答えを読んでいましたが、私の理解によれば、データストアは1秒あたり5~10エンティティを書き込むことができます。私が得た率はそれよりも高かった。
私もhere
そのデータストアの競合を読んで、単一のエンティティまたはエンティティグループがあまりにも急速に更新されたときに発生します。データストアは、並行待機要求をキューに入れます。タイムアウト時間を過ぎてキュー内で待機している要求は、同時実行例外をスローします。
これは、1書き込み/秒を超えるとエラーがスローされないことを意味しますか?書き込みは単にキューに入れられ、要求のタイムアウトが発生するとエラーが発生します(この場合、タスクキューは10分です)。
保証の上限は1/sです。あなたのコードを見ずに詳細を伝えることはできません – marcadian