タグ

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

  • Song of Cloud: AppEngine1.3.0 Blobstore API入門

    AppEngine1.3.0で新しいAPIとして50MBまでのファイルを登録することが出来るBlobstore APIが公開されました。今までは10MBのアップロード、Datastoreには1MBずつしか登録出来なかったので、これは非常に期待がもてるAPIです。折角なので公式ドキュメントを参考に一通り試してみました。 Blobstoreとは? BlobstoreはDatastoreの厳しいサイズ制限を超えて50MBまでのファイルを登録し、利用することができるサービスです。(Billingを有効にしていないと利用することが出来ません。)このサービスは、Datastoreの様に直接アクセスして利用するのではなく、サービスの受け口に対してWebフォームや、HTTP POSTメソッドによって行われます。従って、アップロード/ダウンロードにかかる処理時間はAppEngineの30秒制限の影響受けるこ

  • Song of Cloud: SDK 1.2.8 Release Notesで語られなかったこと

    先日App Engine SDK 1.2.8 for Javaがリリースされました。 公式のリリースノートに記載されていない非常に重要な機能追加がありますので、ここで紹介します。基的にすべてデータストアのお話です。しかもLow-Level API。 ご指摘いただきまして、ミスリードしそうな個所について修正しました。今後もわかったことがあれば追記していく予定です。 プロダクション環境でカーソルが予想外の動きをしました。このため、開発環境と両方で動くコードに更新しました カーソルの追加 これまでデータストアでページング処理を行う場合には、ページング用のプロパティを用意したり、ページング用のインデックスを用意したりと、様々な力技が提案されてきました。 しかし、今回のアップデートでCursorという「クエリの現在位置を覚えておくオブジェクト」がひっそりと追加されました。これを利用すると簡単にペー

  • Song of Cloud: 分散トランザクション処理の最適化

    前回の「送金のトランザクション処理パターン」では、EntityGroupにまたがるトランザクション処理について簡単に紹介しました。 様々なコメントいただきまして(ありがとうございます)、どうやら「Distributed Transactions on App Engine - Nick's Blog」のやり方が非常に優れているようですので、今回は「送金のトランザクション処理パターン」で紹介した手法に最適化を施して、Nickさんのやり方に近付けてみようと思います。 今回紹介する最適化は、前回のような「狭い範囲のACIDトランザクション」と「べき等性による処理の伝搬」を組み合わせた分散トランザクション一般に適用できそうな手法です。そんなに大層なことはしていませんが、例によってまだ構想段階ですので、また至らない点があればご指摘いただければ幸いです。 おさらい 送金のトランザクション処理パターンで

  • Song of Cloud: 送金のトランザクション処理パターン

    App Engineで現実的な送金処理について考え中です。 ドラフト版なので、怪しい点があればご指摘いただければ幸いです。 コメントで情報いただきました。 Distributed Transactions on App Engineで紹介されてる方法と基的に同じなので、おそらく問題なく動きそうです。ありがとうございました。 今回はこんな図を使います。 この図の読み方は、矢印の方向にユースケースの一連の処理(またはリクエストの処理)が流れていて、右に行くほど時間が経過しています。そして、矢印がくし刺しにしている四角形は、そのユースケース中で操作するエンティティを表しています。 また、左右の位置が同じ矢印は、基的には同じ時刻に発生したイベントを表しています。上記の図では、A, B, Cがそれぞれの口座エンティティを同時に操作している感じです。 並行性制御(おさらい) 最初の図のように、それ

  • 1