スティルハウスの書庫の書庫

はてなダイアリーで書いてた「スティルハウスの書庫」を移転してきました。

2009-09-01から1ヶ月間の記事一覧

Datastore/Memcacheフリーズで消費されたCPU時間のグラフ

MLのやりとりでJasonさんに見せるためにここにアップ。

ITアーキテクト「分散キー/バリュー・ストアの実力」

IDG「ITアーキテクト」の最終号に最初で最後の記事を書きました。バキっぽい出だしにしてみました。Google App Engineの要、Bigtableを通して知る 分散キー/バリュー・ストアの実力 http://www.itarchitect.jp/mag/pdf/ita_vol025_Feature4.pdf (冒頭のみ)

NoClassDefFoundErrorが発生するメカニズム

謎なエラーのひとつ、NoClassDefFoundErrorについてヒントとなりそうなポストがMLにありました。http://groups.google.com/group/google-appengine-java/browse_thread/thread/ec4a06cd90cc49f3# You had a request back at 09-25 06:27AM 29.110 that excee…

sun.misc.Unsafe#parkって何?

Datastoreやmemcacheが固まる時によく出てくる「sun.misc.Unsafe#park」って何だろ?と思ってググってみたら(←なぜか変換できた。ATOKすばらしす)、以下のページによると「Object#wait」みたいなもんらしい。。http://d.hatena.ne.jp/freebeans/20080509/p…

複雑なクエリのためのプロパティを仕込んでおく方法

以前、コンポジットインデックスを自作するというエントリを書きましたが、そのためにわざわざ新しいエンティティを作らずに、普通のエンティティにコンポジットインデックス代わりのプロパティを持たせる方法をちょこちょこ使い始めました。例えば、以下の…

謎なエラーのためにお金を払うの巻

appengineをここ10日くらいproductionで運用して、もうひとつ気づきました。CPUコストのほとんどが、アプリケーションの正常動作ではなくて、Datastoreやmemcacheが勝手に固まる謎のエラーによるものってことです。Datastoreやmemcacheが固まると、そのまま3…

Multihomingというより、もうグローバルな単体計算機の気がす

http://home.att.ne.jp/sigma/satoh/diary.html (個別記事にリンクがない〜) 分散アルゴリズムに多少知識がある方ならば、Paxosを含む3相トランザクションプロトコルは遅いことは常識。だから遅延が大きいことは当初から予想されたことだと思います(個人…

お願い:appengine java night #1 登録には本名が必要です

appengine java night #1 にご登録いただいた皆さんへ、たくさんのご登録ありがとうございました! ひとつ重要なお願いです。告知ページでお知らせしましたとおり、Google東京オフィスの入館には事前に「本名」の事前登録が必要となります。もしappengine ja…

謎なエラーを集めてみよう

appengineを運用していると、ときおり原因不明のエラーが起きます。Googleが説明する0.1%程度のエラーとはちょっと違う感じがします。どれも毎回起きるわけじゃなくて、一時的に頻発したりします。想像するに、特定のApp Serverノード上でデプロイやクラスロ…

appengine java night #1のお知らせ

利用者同士で実践的ノウハウを共有するためのGAE/J勉強会、appengine java night #1の開催のお知らせです。 id:higayasuoさんとshin1ogawaさんをスピーカーに迎え、皆さんとわいわい議論&情報交換できればと思います。ぜひ以下ページからご参加登録ください…

productionサーバーの移行が終わった

ここ2か月ほどは、AIRクライアント+Railsサーバーで動いていた既存サービスをappengineに移行する作業を地道に進めてきました。先週末はそのリリース(ってもユーザーさん的には変化がない)があり、なんとか大きな問題はなく移行が完了しました。リリース…

Migration to a Better Datastoreの要点メモ・その2

Migration to a Better Datastoreの要点の後半です(前半はこちら)。 Megastoreレプリケーションで解決 Megastoreとは、Bigtable上に実装されたGoogle内部のライブラリ 宣言的スキーマ(スキーマ定義ってこと?)、複数行トランザクション、セカンダリイン…

Migration to a Better Datastoreの要点メモ・その1

appengine blogにポストされたMigration to a Better Datastoreの要点をピックアップしてみました。間違い等ありましたらご指摘ください! Googleは「マルチホーミング」を追求している データセンター単位でのダウンに対応する リードオンリータイプのアプ…

Seasarカンファレンスの「Bigtable脳」を見たメモ

Seasar Conference 2009 Autumnのひがさんのセッション「SQL脳からBigtable脳へ」を見てきました。おおこれはB脳だ!と思った部分: レンジスキャンがBigtableのかなめ Bigtableは単なるKVSではなく「ソートされたキー」があるKVSという点が重要 自分の要件…

DXEセミナー「Flex/AIR×GAE/J 開発tips」の資料

本日のDXEセミナー「Flex/AIR×GAE/J開発tips」の資料です。Flashデザイナーさん向けに、Flex/AIRとGAE/Jを組み合わせた事例紹介、Blaze/DS利用法、その他tipsを簡単にまとめてあります。Flex/AIR×GAE/J 開発tipsView more presentations from kazunori279.

Flash Playerのシングルスレッドモデルでハマらない方法

Adobe Developper Connectionに書いた記事が掲載されました:Flex/AIRハマり帳 〜第3回 Flash Playerのシングルスレッドモデルでハマらない方法〜(この筆者近影は数年前のものでいまはもっとぽっちゃりしていることは内緒です)

クラウドへのデプロイ時のチェックリスト

私の環境ではprod/qa/devそれぞれにapp idを分けてます。切り替えながらデプロイするとオペミスがしばしばありますので、チェックリストを作ろうと思いました(随時更新)<デプロイ前> デプロイ先のapp idは間違いないか? cron.xmlの内容は問題ないか?(…

cb nanashiさんのGAE/Jアプリ開発のTIPSまとめ

cb nanashiさんによるすばらしい実践的tipsまとめ!「あるある〜」という感じです。GAE/Jアプリ開発のTIPSまとめ

Task Queue戦記

とても遅かった以前の実装をTask Queueを使って書き換えることができました。感想をまとめると、 Task Queueはすばらしい。30分かかってた処理が3分で終わるようになった(前の実装がヘボいのではという疑惑はさておき) 処理を複数のタスクに分割して並列処…

DatastoreTimeoutExceptionって何?

Datastoreで大量のエンティティを扱うようなコードを走らせると、DatastoreTimeoutExceptionがしょっちゅう出ます。こんな感じ: Caused by: com.google.appengine.api.datastore.DatastoreTimeoutException: Unknown at com.google.appengine.api.datastore…

素朴なBigtable、できること できないこと

@ITに記事が掲載されました。素朴なBigtable、できること できないこと

Task QueueはMapReduceの夢を見るか

いまコーディング中の案件で、Task Queueにぴったりハマる要件があったので、飛びついてみました。 課題:Datasource上の大量のデータをクライアントにダウンロードしたい。30秒内では終わらないので複数のリクエスト/レスポンスに分割してダウンロードする…

SDK 1.2.5の変更点まとめ

bufferingsさんのありがたいまとめ: http://d.hatena.ne.jp/bufferings/20090904/1252080958

App Engineと使うXMPPサーバーを探す

今朝のtwitterはSDK 1.2.5のリリースで賑やかでした。Task Queueはもちろん、さっそく使ってみたいのはXMPPです。ちょうどぴったりな要件があったのですごく嬉しい。。ただひとつ勘違いしてました。。App EngineのXMPPサポートってXMPPクライアント機能のサ…

THANK YOU GOOGLE!

GAE

早速つくってみた。

金融HPCって面白い

わけあって金融グリッド/金融HPCをにわか勉強中。。なかなか面白い。金融分野における計算機のグリッド技術 金融業界では、特にリスク管理の分野において多くの適用事例があります。例えば、数学的に厳密な解を求める方法が見つかっていないデリバティブ商…

twitter/friendfeedとリンクしました。

twitterとfriendfeedとこのブログをリンクしてみました。 twitter: kazunori_279 friendfeed: kazunori279

Protocol Buffer on HTTPでクライアントからDatastoreを直接呼び出し

shin1ogawaさんのエントリ:「#appengine JavaのLow-Level API入門 Relationship編」 ここまで読んでしまうような変態な皆さんは、フックする為に使用しているMyDelegate#makeSyncCall()メソッドが気になって仕方無いですよね。特に第四引数であるbyte[] req…

Datastore Low level APIのわかりやすいまとめ・その2

JDOが水面下でどう水かきしてるか垣間見えて面白いです。shin1ogawaさんのエントリ:「#appengine JavaのLow-Level API入門 Relationship編」 「JDOで色んなRelationshipの方法があるが、結局「EntityGroupはキーだけで構成される」という事がわかります。JD…