Google App Engine のDatastoreには、通常のリレーショナルデータベースと比べた時にいくつかの制限があるが、その一つが「このプロパティの値は常にユニークでなければならない」という指定(ユニーク制限)ができないことである。 Invoice IDのように自動生成するものであれば、アプリケーション側でなんとかすることも簡単だが、メールアドレスやハンドル名など、ユーザーが入力するものになると、ユニークであることをきちんと判定した上でEntityを作ることが必要になる。 もちろん、単純に「有無をチェックして、なければ作る」というプログラムではスレッド間の競合に対応できないので、そこはトランザクションを使ってアトミックに処理をする必要がある。 App Engine上でトランザクションを実現するには、エンティティグループという仕組みを使って行うが、気をつけなければいけないのは、エン
Google App EngineのDBサービスはジョインができないなどの制約があるので,パフォーマンスを高めるには工夫が必要だ。キーワードは「キャッシュ」「非正規化」「分散」「事前計算」など。そのほか,処理性能の予測やフレームワークの利用などに注意したい。 米Googleの「Google App Engine」(以下,GAE)は,Webアプリケーションの開発・実行環境を提供するサービスです。前回はGAEの概要編として,サービスの全体像や開発の流れ,データベース・サービスの概要などを説明しました。Java言語とPython言語で開発でき,各種ライブラリやアプリケーション・フレームワークがそろっている一方で,「データベースのジョインができない」といった制約があることを解説しました。 今回はGAEの設計編として,GAE上で動作するアプリケーションを設計する際のコツを,主にデータベース設計を中心
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く