まめージェント

Android, GAE, AngularJSの技術ネタ中心。Twitter: @mame01112

GAEのDatastore Read Operations

GAEのDatastore Read Operationsの無料枠、
2014年6月末時点では0.05M (5万回)なんですが、
JMeterで負荷テストをしていて、この上限にあっという間に到達してビビったので
その情報をシェア。

DatastoreをQueryするときは、
だいたい下記のような感じでクエリすると思います。

String query = "select from " + (table名)
List<データの型> users = (List<データの型>) pm.newQuery(query).execute();

このとき、取得できたListの数が10であればこのRead Operationは10となるようです。
知らなかった。。

これを防ぐには、下記のようにwhere句をちゃんと指定する必要があるとのこと。

String query = "select from " + (table名) + " where (Tableのカラム) ==" + (条件);
List<データの型> users = (List<データの型>) pm.newQuery(query).execute();

こうやって、取得できる数を極力減らさないとすぐに無料枠を使い切ってしまいます。
これまで、Frontend Instanceの28.00はかなり意識していたんですが、
ここにきて思わぬ刺客が・・・。

ちなみにDatastore Read Operationsが5万回に到達時点で、
Frontend Instanceは1.31 of 28.00 (5%くらい)でした。
※もちろん、この値はJMeterでクエリされる内容に大きく依存すると思いますが。

とりあえずDatastore Read Operationsも注意しましょう、という内容でした。