appengine ja night #6やりました!
先週金曜はappengine ja night #6でした。今回はSlim3 1.0.0をリリースされたばかりのひがやすをさんに、前回からひきつづきSlim3のグローバルトランザクション(gtx)についてソースを見ながらの解説をいただきました。またその前に、予備知識としてのgtxの仕組みについて荒川さんから30分ほど解説いただきました。
<セッション1> 発表者:荒川さん(@ashigeru) テーマ:「図解Global Transaction」 資料:appengine ja night #6 図解Global Transaction <セッション2> 発表者:ひがやすをさん(@higayasuo) テーマ:「Global Transaction・第2部」 参考ページ:Slim3 1.0.0 Released
しげる先生は相変わらず図版(Visioで書いてるそうです)の豊富なわかりやすい資料をきっちりつくっていただいて、非常にありがたい! App Engineにおいて複数のEntity Groupが参加する2相コミット(2PC)を実装する必要性と手法について解説いただきました。ここでジャーナルやTQを使った2PCの実装方法を(たぶんw)理解できたところで、ひきつづきひがさんによる実際のソースを見ながらの解説という贅沢な流れ。今回は特に、前回以降にSlim3に投入された最適化手法についてコードベースで説明していただきました。
Slim3では、gtxを使ってコードを書いても、その中でEGが1つしかなければローカルトランザクションとして処理されるためオーバーヘッドがありません。よってSlim3を使うときは基本gtxで書いておけばいいだろ!むしろフィルタでbegin/commitしとけばいいんじゃね?という私の感想でした。これでもう、複数のEGの取り扱いでコードをぐにゃぐにゃ書いたり怒ったり悩んだり落ち込んだりするような状況から開放されそうです。空回り感のあるJDOの学習(hollow?detached?owned?なんぞそれ)からも開放されました。あらためて1.0.0のリリースに感謝しお祝い申し上げたいです。あとは、こういったgtxのような並列処理的コードはとにかくテストや検証が重要なので、皆さんでガンガン使って早く枯れたフレームワークになっていってほしいですね。すでにSlim3を実開発で使ったという事例も、今回のBeer Talkで発表いただいたまぴおんさんのSlim3事例(大変生々しい^^かつ貴重な情報ありがとうございます!)をはじめ、随所で聞こえ初めています。
皆さんのまとめやBeerTalk資料
- shin1ogawaさん(あざっす!):appengine ja night 6まとめ #ajn6
- marblejenkaさん:#ajn6に参加しました!
- yuroyoroさん:Slim3をScalaで動かすためのいろいろとGAE/JでのScalaのSpinUp時間を計ってみた
- urekatさん:slim3の最適化
- muddydixonさん:appengine ja night #6に参加したよー
- bluerabbitさん:appengine ja night #6に行ってきた。
あと@tokibitoさんもrs2pdf.netでBT参戦いただきありがとうございました!