appengine ja night 6まとめ #ajn6

ハッシュタグで抽出して、当日開始直後からの状態にしたもの。
5
前へ 1 2 ・・ 24 次へ
shin1ogawa @shin1ogawa

ユーザがチケットを買う際、AliceがTicketAを買うとしたら…?ひとつのEGに収める?でも、bobがTicketAを買いたいかも・・?これらもおなじEGに入れる?→超デカイEGができちゃった!!ってなっちゃうよ。 #ajn6 #appengine

2010-03-19 19:11:35
shin1ogawa @shin1ogawa

こんなカンジにEG設計は難しい! #ajn6 #appengine

2010-03-19 19:11:57
Hidemoto Nakada @hidemotoNakada

エンティティグループの設計が難しい,っていうか無理.#ajn6

2010-03-19 19:12:14
もか/ıʞnzns uıɥsıǝʞ @mochawan

1EGのスループットの最大は20tps位。 #ajn6

2010-03-19 19:12:20
Kazuma Andoh @KazumaAndoh

ポイントでチケットを買うシステム。さてどうする? 人のポイント講座も、チケットがすべてのEGに入る。これだとダメ。同時に、一人が一つのチケットしか買えない。GAEでは20tps。つまり1秒に20枚まで。こら、あかん。 #ajn6

2010-03-19 19:12:41
shin1ogawa @shin1ogawa

ひがさんが本日初ツッコミ。AppEngineの更新操作のスループットについて。 #ajn6 #appengine

2010-03-19 19:12:51
Hidemoto Nakada @hidemotoNakada

1エンティティグループの更新は,1秒20回ぐらいしかできない.全体を一つのエンティティグループにすると,これが限界. #ajn6

2010-03-19 19:13:19
shin1ogawa @shin1ogawa

RT @mochawan: 1EGのスループットの最大は20tps位。 #ajn6

2010-03-19 19:13:20
kashisan @kashisan

つっこみがなくて予想よりさくさく進んでいるっぽい。さすがのわかりやすさ! #ajn6

2010-03-19 19:13:35
shin1ogawa @shin1ogawa

実際は、20tpsも出ない。getしてputしたりして、RPCの往復が必要となることが殆どだしね。 #ajn6 #appengine

2010-03-19 19:14:03
Kazuma Andoh @KazumaAndoh

20 tpsは、本当の上限。理論値なので、実際は10tpsを切る。1秒間に5回を超える更新をするなと、Googleはいっている。#ajn6

2010-03-19 19:14:21
Hidemoto Nakada @hidemotoNakada

get/putだと100ms ぐらいかかるので実際には10/sぐらいしか 1エンティティグループに対する操作はできない. #ajn6

2010-03-19 19:14:30
materia @materia_x64

EG単位のスループット理論値は20tpsとなる。(1putの最短が50ms)実感だと10tpsくらいとのこと。 #ajn6

2010-03-19 19:14:32
shin1ogawa @shin1ogawa

1EGをでかくすると、いい事ないね。というお話。 #ajn6 #appengine

2010-03-19 19:14:36
Kazuma Andoh @KazumaAndoh

グローバルトランザクションとは、複数EGにまたがるトランザクションのこと。参加するEGを選択して独占できる。EGとはEntity Groupのこと。 #ajn6

2010-03-19 19:15:20
shin1ogawa @shin1ogawa

グローバルトランザクション…複数のEGにまたがるトランザクションのこと。どのEGを独占するか?を選択して、更新操作を行う。 #ajn6 #appengine

2010-03-19 19:15:27
kashisan @kashisan

slim3のグローバルトランザクションは、参加するEGを選択して独占する! #ajn6

2010-03-19 19:15:41
shin1ogawa @shin1ogawa

今回は、グローバルトランザクションを考えていく上で、「うまくいかないパターン」を順に紹介していく、というふうに説明するよ。 #ajn6 #appengine

2010-03-19 19:16:22
Kazuma Andoh @KazumaAndoh

題材。Aliceがチケット ajn6を500ポイントで買う。残ポイントないと、買えない。チケットには限りがある。 #ajn6

2010-03-19 19:16:25
materia @materia_x64

#ajn6 とか言うチケットをAliceが購入すると言う題材で説明。

2010-03-19 19:16:31
Kazuma Andoh @KazumaAndoh

Aliceは5000ポイント持っている。チケットは90枚。それぞれ別のEGで実装すると、ダメ。 #ajn6

2010-03-19 19:17:53
shin1ogawa @shin1ogawa

aliceが5000pt持っていてajn6チケット買おう。EG1:alice, EG2:ajn6ticket。EG1のaliceの口座から残高を減らした後、EG2のajn6ticket残数を減らす。これを順に処理するとどーなんの? #ajn6 #appengine

2010-03-19 19:18:10
shin1ogawa @shin1ogawa

この例だと、チケットが売り切れてたらaliceの残高を元に戻す、補償トランザクションが必要になっちゃうね! #ajn6 #appengine

2010-03-19 19:18:42
Kazuma Andoh @KazumaAndoh

アリスのポイントを500減らして、いざチケットを買おうとすると、ないとき。あとでアリスのポイントを戻さないといけない。でもGAEでは30秒で処理切られるので、保証できない。逆の順序でもダメ #ajn6

2010-03-19 19:19:12
shin1ogawa @shin1ogawa

今のが順次ローカルトランザクション。次は並行トランザクション。 #ajn6 #appengine

2010-03-19 19:19:19
前へ 1 2 ・・ 24 次へ