1回目の感想をblogに書いてなくてごめんなさい。ごめんなさい。blogに書くまでが勉強会ですよね。
さて、今回は一気に70人以上の会場になりました(前回は30人ほど)。会場が大きいと質問をしにくくなって質問が減ってしまうのではないかと心配していましたが、ぶいてくのたけざきさんがガシガシ質問してくれたので良かったです。これがappengine java nightが求める勉強会の空気です。appengineはわからないことが多いのでみんな誰かに相談(質問)したいそれを実現する場なのです。
今回のめも
- appengineのトランザクションはRDBのトランザクションとは異なり、EntityGroup毎のトランザクションとなる。
- DatastoreService#getCurrentTransaction()は直前に実行したトランザクションを取得する。
- 1000件以上の取得
- DatastoreService#prepare()して、PreparedQuery#asList()では1000件以上取れる
- single property index
- やっとすっきりしたよ。
IndexもKVSになってて下記のように格納されている。
Key | Value |
---|---|
Emp/age/20 | key1 |
Emp/age/30 | key2 |
Emp/name/aaa | key3 |
Emp/name/bbb | key4 |
-
- インデックスのKey
- KeyはKind/property/valueで構成されていてソートされている。
- インデックスのvalue
- Entity(行)のKeyが格納されている。
- インデックスのKey
(あとでいつか詳しく書きますね。)
-
- Whereでn個のプロパティに条件をつけるとn回の検索がbigtable上では実行される。その後マージされる。なので1回にしましょうね。
- slim3demoのソースでJDO2はKeyを自分で作成してコードでEntityGroup化した場合の例
- あとでソースチェックする
- shin1oさんのProtocol Buffer on HTTP
- 自作のRemoteApiなり。これすごいよ。
- ローカルからappengineのDatasotreを使ってテストを実行可能
- appengineのDatastoreからデータをexp、impしたりできるようになる
- appengineのDatastoreをローカルで参照できるためデータビューアの作成が可能(いずれshin1oさんがeclipse-plugin作ってくれるはず!)
- 自作のRemoteApiなり。これすごいよ。
- インデックスの作成タイミングの話(いきなり振られてあせった。話聞いてなかった時だった。。)
- コミットされたからと言ってインデックスが更新されているとは限らないという話、詳しくは下記のエントリーを参照
- appengineはRead Committed相当だがcommit()には2つのマイルストーンがあることを忘れてはいけない - あおうさ@日記
appengine java night #2の発表資料など
- 本編
- LT
Mashup Awards
- MA5は応募してうまくいけば100万円もらえます
- MA5に登録するとgoogle waveアカウントがもらえます
- appengineはその環境だけでマッシュアップしたと判定されます
- appengineで作成しただけで応募資格を満たすようです。