読者です 読者をやめる 読者になる 読者になる

#ajn6に参加しました!

ということで、参加してきました。

shin1さんによるtwitterのまとめ


1. あらかわ先生のグローバルトランザクションのはなし

成功が保証される個々の処理を組み合わせて異なる処理の枠組みをつくることをビルディングブロックと呼ぶようです。ちょうどそんな感じ。

このロジックでグローバルトランザクションがall or nothingになってくれるようなので、entity groupについてはあまり考えなくてもよい仕組みが作れるということになります。


2. ひがさんのslim3グローバルトランザクション最適化の実装解説
あらかわさんの説明を実装しているのがslim3で、それをさらにあれやこれやしてパフォーマンスを向上させたのがslim3のグローバルトランザクションです。

詳細が知りたい型は、ustがあるのでそれを見ればいいと思います。

http://www.ustream.tv/recorded/5556617

low level apiと、できればlower level apiの知識がないと聞くのが厳しいかなという感じです。

複数entity gropuをグローバルトンランザクションで制御した場合に同じentity groupをローカルトランザクションでコミットするより速い理由は、low/lower level apiをうまく利用してRPC回数を減らしているというところにあります。

例えば、
・グローバルトランザクションに参加する二回目以降の処理について、ロックの存在チェックと対象
・グローバルトランザクションをコミットする applyのput/deleteはbatch put/deleteにしている

など。

こちらも参考になります。
[gae][ajn6]slim3の最適化


3. ライトニングトーク
・@tokibitoさんのpdf生成ライブラリの説明
appengine/pythonでpdf生成ができるよ、というお話。残念ながらビール祭り開始直後だったので、そっちに夢中でした。


・まぴおんさんの事例紹介
ラボプロジェクトでappengine/slim3を使ってみたよ、というお話。
実装3日とかのスケールでプロジェクトが建てられるのはいいですね。新しいことしたいけどいろいろあってできないとかやたら調整が必要というのは結構ストレスフルだったりするので、なんかいいなぁって感じです。


・@yuroyoroさんのslim3-scala説明
scala hack-a-thonでも聞いてたお話で、aptが必要なモデル部分以外はscala-slim3でappengineのアプリがつくれるようになっています。

Slim3をScalaで動かすためのいろいろ
GAE/JでのScalaのSpinUp時間を計ってみた

appengine/slim3-scalaは実用に堪えるspin upのスピードになっていることもわかってきているようなので、これからどうなっていくのか注目です。


・僕の説明

ということで、「scalaでappengineをしばくぜ!」というタイトルで発表してきました。いろいろ見返していて、low/lower level apiに明るくない人にとってはわかりづらい説明になっているなぁと思ったので、あとでもうちょっと説明を追記します。今週末にリリースするということにしてるし。

また、僕の発表が終わった後に、@yuroyoroさんにscalaのリモート実行の仕組みについていろいろ教えてもらいました。
@yuroyoroさんありがとうございました。


・ひがさんのデータ移行についてのディスカッション
僕はビール祭りであまり聞いてませんでした。
ごめんなさい。


4. appengine ja midnight
限度いっぱいまで飲まないといかん、ということで、さとーさん、urekatさん、あらかわ先生と飲みにいきました。

今度も、破滅するまで飲みたいひと向けにappengine ja midnightをやるかもしれないので、興味がある人はappengine ja nightが終わった後にでも声かけてください。