タグ

ブックマーク / songofcloud.gluegent.com (2)

  • Song of Cloud: グローバルトランザクション処理のパターン

    送金のトランザクション処理パターンでは、Google App Engine (GAE)のEntity Groupにまたがるトランザクション処理を行う方法について紹介しました。また、それに少しだけ最適化を施した結果、下図のような処理になりました。 しかし、このトランザクション処理はいくつかの制約があります。 (a) 送金中に合計金額がずれる (b) 送金先の口座に制約をかけられない このトランザクションはEventual Consistency (結果整合性)というレベルの整合性保証しかしないため、2つのEntity Groupの値にずれが発生する場合があります(a)。たとえば、口座(A)から口座(B)に1000円だけ送金する場合、(1)と(2)の間は「口座(A)から出金したが、口座(B)に入金されていない」という状態になります。 また、送金元の口座に制約はかけられますが、送金先の口座に制約

  • Song of Cloud: Slim3 Datastoreに乗り換える(3)

    前回は Slim3 Datastore の導入方法をエントリにしてみました。今回はそれを利用してエンティティのクラスを作る方法を紹介してみようと思います。と、前回に引っ張ってみたのですが、Slim3 Datastore ではあまりに簡単にエンティティを定義できるのでちょっと趣向を変えようと思います。 今回は、エンティティの定義方法を簡単に紹介した後、普段私が気をつけている点について簡単に紹介してみようと思います。また、経済性を考えて、アプリケーションには次のような制約をつけておきます。 エンティティオブジェクトを永続化層以外でも利用する エンティティオブジェクトの生成はnewで行う このあたりはやや宗教的な話も含みますので、参考程度に。 なお、このエントリで言及する注意点などは、少し堅めにApp Engineのデータストアを利用したいひと向けです。非常に小さなアプリケーションを作成する場合

  • 1