今週に入ってから、ようやく少し本気でGoogle App Engineでプログラムを書き始めている私だが、ようやく Entity Group の使い方が分かって来たので簡単に解説してみる。 Entity Groupとは、一口で言えば「トランザクションを使ったアトミックな読み書きの対象となるEntity(=データベース上のオブジェクト)の集まり」である。 イメージとしては、まず「一つのハノイの塔を三人で同時に遊んでいる姿」を思い浮かべると分かりやすいかも知れない。全くのルールなしで皆で同時に遊ぼうとすると、腕が交錯してぐちゃぐちゃになってしまう。 そこで、「ある時点でハノイの塔ボード(三つの棒を支えている水平に置かれた板)に触ることが出来る人は常に一人。一度ボードに触った人はすべての円盤をいずれかの棒の位置に置いた状態にしてからしか手を離してはいけない。もし自分がハノイの塔に触りたい時に、す
GAE/Jのメモね。 以下、エンティティブループでトランザクションが可能な理由を,同一マシン上のテーブルに配置しているから、と予測していましたが、当時BigTableの実装方法は不明であり推測でしたた。実際には、rootによる楽観的排他制御でトランザクションを実装しているとのことであり、結果的に「同一マシン上である」という理由に必然性は無いと思われます。修正してお詫び申し上げます。(2010/6/2) Entity GroupはGAE上のトランザクション処理の制約に関係する*1、インスタンス間の関係です。UMLでいうとコラボレーション図上にツリーとして現れてくるような関係です。またこれは、従来のリレーション(1:1、1:多とか、到達性とか)とは本来直交する概念です*2。 Entity Groupの意味ですが、同じEntity Groupに所属するEntity群の間でのみ、トランザクションが
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く