タグ

GAEに関するhysaのブックマーク (58)

  • TaskQueueをローカルでデバッグする方法 - ひがやすを技術ブログ

    SDK 1.2.5からGoogle App EngineにTaskQueueが導入されましたが、ローカル(development server)でデバッグはできないと思っている人が結構いるようなので、やり方を書いておきます。 ローカルの環境では、Queueにaddしたタスクは、自動的には実行されず、Queueにたまっています。たまっているタスクを実行するには、http://localhost:8080/_ah/adminにアクセスし、左側のTask Queuesのリンクをクリックします。 すると、Queueの一覧が表示されるので、そこでQueueのリンクをクリックすると、タスクを実行する画面に遷移します。そこで、runのボタンを押すと、ローカルでQueueのタスクを実行できます。 Web ApplicationをDebug Asで起動しておけば、EclipseからDebugすることもできま

    TaskQueueをローカルでデバッグする方法 - ひがやすを技術ブログ
  • [Google App Engine編]大量データの処理はかかる時間に注意

    Google App Engineで大量データを処理する場合、特別な配慮が必要になります。処理時間の制限など、独特の制約に引っ掛かる恐れがあるからです。 大量データを扱うケースとして、テーブルのスキーマ変更、検索結果のダウンロードなど、データの一括処理という三つについて、それぞれの設計ノウハウを解説します。 スキーマのバージョンをフィールドに持つ 一つ目の設計ノウハウは、テーブルのスキーマを変更する際に効果があるものです。 稼働中のシステムにおいて、機能を追加・変更する際、テーブルのスキーマ変更が必要になる場合があります。スキーマの変更に備えて、Google App Engineでは、RDBベースの場合とは違った設計が必要になります。「スキーマのバージョンをフィールドに持つ」というものです。 Datastoreはそもそも、同じテーブル内で、異なるスキーマのレコードが混在していてもかまわない

    [Google App Engine編]大量データの処理はかかる時間に注意
    hysa
    hysa 2011/03/24
  • Google App Engineで全文検索 、階層カテゴリ検索(Googleさん、StorageのNumber of Indexesを増やしてくださいorz) - kissrobberの日記

    Google App Engineで全文検索、階層カテゴリ検索のデモ作りました。 追記 appengine ja night #11の発表の録画をこちらで視聴できます。 http://kissrobber.appspot.com/gae_full_text_search/ とりあえず、データ件数は10000件ちょいのデモですが、速いです。 まだ試してないですが、もっとデータ増えてもイケるはずです。 もし要望があれば、実装の詳細は公開します。 GAE上での日語対応の全文検索は、luceneを動かす試みや、compass?の様な実装等あったりしますが、 どれもデータ件数が多いと動かなかったり(数千件が上限でしょうか)、レスポンスが返ってこなかったりして、 実用レベルのものはまだ無いのではないかと思います。 既にある全文検索の仕組みをどうにかしてGAE上で動かすのではなくて、GAEスペシャルな

    Google App Engineで全文検索 、階層カテゴリ検索(Googleさん、StorageのNumber of Indexesを増やしてくださいorz) - kissrobberの日記
  • Google Developer Day 2010 Japan : appengine ja night と Slim3 の紹介

    Google Developer Day 2010 Japan セッション:「App Engine 開発者コミュニティ「appengine ja night」とフレームワーク「Slim3」の紹介」 スピーカ: 佐藤一憲 ひがやすを 「appengine ja night」は、国内の App Engine 開発者が集まり実践的なノウハウを共有する月一回のイベントです。過去に 10 回実施され、App Engine の最新動向や導入事例を紹介してきました。このセッションでは最近のセッションから話題のトピックをいくつか紹介します。そして「Slim3 」は国内の多くの App Engine 開発事例で導入されているフルスタックの MVC フレームワークです。コンセプトは "Simple" and "Less Is More"。開発者のひがやすをさんによるライブコーディングを通じて Sli

    Google Developer Day 2010 Japan : appengine ja night と Slim3 の紹介
    hysa
    hysa 2011/01/12
    28:05"スケールアウトさせるためには1リクエスト1秒以内にする必要がある""それを実現するためにタスクキューを使う"
  • Google App Engineでの検索パターン - 市中弾き語りの刑

    id:higayasuo さんにTwitter上でいろいろ教わったので、メモ。 検索条件が複雑な場合 業務アプリなどでよく見かける、複雑(不特定)な条件で、かつ、特定の並び順でデータを抽出するような場合のパターンです。 例えば、 データを抽出する条件が 「場所」「日時」「部署」「担当者」...と複数あったとして、 それぞれの項目が、 ユーザーによって指定されたり、されなかったりした場合、ソートがあるために、 入力、未入力の組み合わせの数だけ複合インデックスが必要ですが、 (Datastoreではフィルターとソートのプロパティが異なると複合インデックスが必要です。) これを全て静的に(事前に)定義するのは非現実的です。 で、id:higayasuo さんのアドバイス adhokなqueryはeq filterだけqueryで実行してnot_eqやsortはin-memoryでやるのが最も簡単

    Google App Engineでの検索パターン - 市中弾き語りの刑
    hysa
    hysa 2011/01/10
    "adhokなqueryはeq filterだけqueryで実行してnot_eqやsortはin-memoryでやるのが最も簡単。pagingや件数の問題さえなければそれで大丈夫"
  • 図解 インデックス爆発 - 後ろ回しゲロ

    Google App EngineのDatastoreにはインデックス爆発という現象があります。 こちらで公式に説明されているのですが、 http://code.google.com/intl/ja/appengine/docs/java/datastore/queriesandindexes.html#Big_Entities_and_Exploding_Indexes 自分にとってはすごく分かりにくく、理解するのにとても苦労しましたので、自分なりにメモを残しておきます。 まず2,3の前提を。 基的な事ですが用語が統一されてなくて惑わされましたw 複合インデックス=カスタムインデックス=コンポジットインデックス です。 またGoogle App Engine for Javaでは WEB-INF/appengine-generated/datastore-indexes-auto.xm

    図解 インデックス爆発 - 後ろ回しゲロ
  • Google App Engine上のベスト・プラクティス、その1: Datastore

    Google App Engine上でアプリを作りはじめて約二ヶ月。いろいろと分かって来たこともあるので、自分へのメモも含めてまとめてみる。まずは、Datastoreの話から。 なによりも大切なのはデータベースの設計 あたりまえと言えばあたりまえの話だが、App Engine上でアプリを作る上でもっとも大切なこと(=頭を使うべきところ)は、データベースの設計である。特にリレーショナル・データベース(RDB)上でのアプリ作りに慣れた人には、大きな「発想の転換」が必要なので、ここは注意が必要。 特に絶対にやっては行けないのは、 将来RDB上へ移行できるようにレイヤーを作って、その上にアプリを作る RDB上に作ったアプリをデータモデルを大幅に変更せずにApp Engine上に移植する RDBを前提に設計されたフレームワークをApp Engine上に載せて、その上にアプリを作る など。App En

  • http://localhost:8888/_ah/admin/datastore

    hysa
    hysa 2010/12/30
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

    hysa
    hysa 2010/12/26
    Datastore
  • TechCrunch | Startup and Technology News

    Welcome back to The Interchange! If you want this in your inbox, sign up here. We’ll be taking a break next weekend as Mary Ann and Christine both take much-needed vacations (we didn’t

    TechCrunch | Startup and Technology News
    hysa
    hysa 2010/12/05
  • Google App Engine for Javaで参考になるサイトのまとめ - ありの日記

    先日、友達の会社の勉強会で「初めてのGAE/J開発」というタイトルの発表をさせていただきました。準備不足や時間配分のミスがあったため、後半飛ばしぎみになって申し訳ありませんでした。 GAEの制限ばかりを強調しすぎて逆に使えないような印象をもってしまったかもしれませんが、決してそんなことは無いと思います。(だから、私もいまGAEに注目しているわけですし。)特にBigtableは今までとは違った考え方が必要なので、これまでのRDBのように考えるとうまく行かないのは間違いありせん。(私も何度も悩まされました。いや、今もですが。) しかし、だからといってそれはやり方の問題であって、そのままGAEが使えないという理由にはならないはずです。BigtableにはBigtableのやり方が必ずあるはずです。また、WikipediaTechCrounchによると、GoogleのたくさんのサービスがBigt

    Google App Engine for Javaで参考になるサイトのまとめ - ありの日記
  • リクエスト内で CPU の利用状況をモニターする - 割り当て - Google App Engine - Google Code

    Quotas An App Engine application can consume resources up to certain maximums, or quotas. With quotas, App Engine ensures that your application won't exceed your budget, and that other applications running on App Engine won't impact the performance of your app. Note: The free quota levels described below changed on June 22nd, 2009. See Recent Changes to the Free Quotas below for more details. If y

    hysa
    hysa 2010/11/27
    クォータ、課金の話。CPUの利用状況を調べる方法など。
  • google appengine に関してふた言 - ひがやすを技術ブログ

    AppEngineでJavaPythonどっち使ったほうがいいのかはみんな気になるよね。 根拠なしに、Javaがいいとか、Pythonがいいというのは、聞いて(読んで)くれている人に対して、ちょっと不親切。聞いている人も、自信を持って選ぶためには、その根拠をきちんと納得しておきたいでしょう。 では、どちらがいいか根拠つきで答えましょう。 AppEngine上のJavaPythonは、生産性/パフォーマンスの違いがホトンドないので、好きな方を使うとよいでしょう。他に好きな言語があって、JavaPythonと特に好きではないという方は、LL使いならPython、硬い言語が好きならJavaを選ぶといいでしょう。使い心地は似ているのでそれほど違和感を感じないはずです。 「AppEngine上のJavaPythonは、生産性/パフォーマンスの違いがホトンドない」の根拠を知りたいと今あなた思い

    google appengine に関してふた言 - ひがやすを技術ブログ
    hysa
    hysa 2010/11/14
    "AppEngine上のJavaとPythonは、生産性/パフォーマンスの違いがホトンドないので、好きな方を使うとよいでしょう"
  • AppEngine/Jのspin-upを劇的に改善する方法 - ひがやすを技術ブログ

    AppEngineは、アクセスがあったときにアプリケーションを起動し、しばらくアクセスが無ければアプリケーションを終了させ、また次のリクエストで再起動するという仕組みを導入しています。 そのため、アプリケーションを起動(spin-up)する時間がとても重要になってきます。このspin-upの時間はpython(webapp)で60cpu_ms以下。(cpu_msはcpuが使う仮想的な時間ですがmsと同じ感じで捉えてもらってもとりあえずは大丈夫です)JavaのServletだと600cpu_msくらいです。PythonでもDjangoような大きなフレームワークだと1000cpu_msくらい(アプリによる)かかりますが、許容範囲内。JavaだとSlim3で1300cpu_ms、Springだと早くて7000cpu_msという感じで、Slim3がギリギリ許容範囲内でしょうか。ほんとうは、1000

    AppEngine/Jのspin-upを劇的に改善する方法 - ひがやすを技術ブログ
    hysa
    hysa 2010/11/10
    "AppEngineでは、HTMLをstaticファイルとして登録しておくと、App Serverまで処理がわたらず手前の専用のstaticファイルサーバーで処理されるので高速です。(JSPだとstaticファイルとして登録できない)"
  • AppEngineにどんなアプリが向いているのかを知ろう - ひがやすを技術ブログ

    AppEngineは、万能なプラットフォームではありません。むしろ、かなり使い道は限定されていると言ってもいいでしょう。 向いていないアプリで使うとかなりはまって、アプリが完成しないリスクがあります。 一方、向いているアプリで使うとこれまでよりかなり費用を節約できたりとか、儲けにつなげることができます。 AppEngineにどのようなアプリが向いているかというと、AppEngineがGoogleの既存のインフラをそのまま利用していることをまず知っておく必要があります。 Googleのインフラは、(極端に単純化すると)大量のデータを多くの人に同時に見せるために最適化されています。 AppEngineも同様で、大量のデータに大量にアクセスがあっても大丈夫なように、BigtableというKVSを使っています。また、自動でスケールアウトするWebのFront Endも既存のインフラをそのまま使って

    AppEngineにどんなアプリが向いているのかを知ろう - ひがやすを技術ブログ
  • Cloud上の分散データベース(pdf)

    2009/1/12 1 Cloud上の分散データベース -- BigTable, SimpleDB, Azure SDS -- 早稲田大学 丸山不二夫 はじめに Cloudのエンタープライズ利用の焦点の一つ は、Cloud上のデータベースをどのよ うに利 用するのかということである。 企業内の 全てのシステムが一度にクラウドに 移行するわけではないとしても、データベース 部分を Cloudに依存するというソリューション は、Scalabilityの担保という点でも、コ スト削 減という点でも、Cloud利用の一つの有力な 選択肢たりうる。 はじめに 今回は、 Cloud上のデータベースとして先行し ている、GoogleのBigTable、AmazonSimpleDBMicrosoftのAzure SDSを取り 上げる。 Cloud上のデータ ベースは、従来のリレーショ ナル・データベ

  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

    hysa
    hysa 2010/09/29
  • Local Unit Testing - Google App Engine - Google Code

    Python Overview CGI Environment Storing Data Overview Entities and Models Creating, Getting and Deleting Data Keys and Entity Groups Queries and Indexes Transactions Types and Property Classes GQL Reference Statistics Reference Model Expando PolyModel Property Query GqlQuery Key Functions Exceptions Services Memcache Overview Using Memcache Reference Client Functions URL Fetch Overview Reference T

    hysa
    hysa 2010/09/20
    GAEの最新Ver.に対応したJUnitのサンプルコード。日本語版は古いバージョンのためコンパイルエラーが出る。
  • AppEngine用のアプリケーションの自動テストについて(1)

    AppEngine用のアプリケーションのテストの手法について、公式ドキュメントがあまりにも貧弱なためそれを補足する資料を作ろうと思います。 DatastoreはもちろんMail送信やQueueへのTask投入等のテストを行う説明まで何回かに分けて徐々に書いていき、 最終的にはそれらのエントリを清書してWikiにまとめたいと思います。これはその第一回目で、テストのための仕組みの説明と基的なテストの手順について説明します。 文中でApiProxyと書かれているクラスはcom.google.apphosting.api.ApiProxyの事です。 この説明での「AppEngine環境」とは、データストアサービスなどのAppEngineで提供されている各種サービス群を利用するための環境のことをさします。 テストのためにAppEngine環境を起動するには、大きくわけると ApiProxy.set

    hysa
    hysa 2010/09/20
  • MavenからGAE/Jの単体テスト

    最低限のpomを記載しておく。ポイントは”datanucleus-appengine"と"datanucleus-core"のscopeをruntimeにしておく事。こいつらがビルド時に取り込まれてしまうとmaven-datanucleus-pluginでのエンハンス中にエラー停止してしまう。 先のエントリで書いた単体試験の内容で、$ mvn clean testしてテストが通る事を確認できるはずだ。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.x