表題の通りなんですが、GAEを無料枠で使っていたところ、Datastoreの書き込みエンティティ数上限に引っかかってしまいました。そこで実際に何件書けたかを調べたところ、20000件/日がクォータのはずのところが20994件書いたところでそれ以上書き込めなくなっていました。仕組み上、クォータを超えたところで即座に落とすことはできないのでしょう。とはいえこのタイムラグはそれほど長くなさそうです。正確なところは不明ですが、体感値としては1分程度のように思います。
クォータオーバーのときのエラー内容
GAE/GoでDatastoreのクォータを超えると、たとえばdatastore.Put()
が失敗します。戻り値err
にinternal.CallError
が戻ってきて、fmt.Printf("%v")
で表示するとOver quota:
となり原因がわかります。また、appengine.IsOverQuota()
などを使えばエラー原因も判定できます。
クォータのリセット時間は日本時間の17時
料金計算のリセット時間はどのリージョンを使っていても一緒のようです。ですから、クォータオーバーの実験をするなら日本時間の16時頃がオススメです。