タグ

Datastoreとindexに関するsatoshieのブックマーク (3)

  • GAE(google app engine) インデックスのトラブルの顛末 - Object Design

    GoogleAppEngineの開発していたところ、ローカルの開発環境でも問題ないのですが、 GAEにアップロードして作動させるとうまく動かないことがありました。 調べてみると、GQLクエリ部分で問題が発生しているようです。 いろいろ調べたり、グーグルグループで質問したりしてなんとか解消できたので、 解消方法をメモしておきます。 基的認識 ローカルの開発環境でうまく作動していても、サーバ上でうまく作動するとは限らない。→GQLクエリ関係 index.yaml が意図通り作成されていない場合は、手動で作成する必要がある → # AUTOGENERATE 行は削除する GQLで条件問い合わせを行う場合は、インデックスが正しく作成されている必要があります。 自動で生成される index.yaml がこちらの意図通りになっていない場合があるので、 手動で index.yaml を書き直す必要があ

  • GAE/Jをデプロイする時はインデクスを定義しとかないと - ありの日記

    ローカルでは動いてるんだけど、appspotにデプロイしたら動かない。下のようなエラーがでてる。どうやら、インデックスが見つかんないよって言ってるらしい。 org.datanucleus.ObjectManagerImpl preCommit: com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. Uncaught exception from servlet javax.jdo.JDOException: Unexpected error during precommit at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:4

    GAE/Jをデプロイする時はインデクスを定義しとかないと - ありの日記
  • GAE/Jでのインデックスの削除方法が分からない

    検索するクエリを多く書いていくと、インデックスが増えていく。 GAE/Jでエンティティを抽出するときは、直接BigTable上のエンティティにフィルタリングしにいくのではなく、別途作成されたインデックスに対してフィルタリングを行う、という仕様になっているらしい。 参考:Java データストアのインデックスの設定 - Google App Engine - Google Code インデックスが増加していくことは仕方ないことなのか、パフォーマンスなどのことを考えて、なるべくインデックスは増やさない方がいいのか、調査する。 すると、やはりGAE/Jでは==などの条件指定に限り、そのほかの条件による絞込みやソートはJavaのロジック側で実装した方が無難らしい。 参考:ローカルでは動作するが、GAE/J環境でエラーになってしまう - Slim3 User Japan | Google グループ エ

  • 1