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

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

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

Excelの高階関数とVisual FP

Excelに高階関数が備わっているのはご存じですか? 多くの人がよく使っている、式の一括コピーのことです。例えば数値が並んでいる列があるとき、その頭のセルの右となりに式を設定して、なにがしかの式を定義をします(例えば「=A1+1」など)。そしてCtrlを…

merge-joinを明示的に実行する方法

はありません、とMLで教えてもらいました。http://groups.google.com/group/google-appengine-java/browse_thread/thread/35ede3e4a299a2e6/bb64cb6dd3e6c913#bb64cb6dd3e6c913 As long as your query consists entirely of equality filters and does not h…

アプリのversion等を取得する方法

MLで聞いたら教えてもらえました。ありがたや。。http://groups.google.com/group/google-appengine-java/browse_thread/thread/e6bfcbfafd4f6e1e You can try using ApiProxy: import com.google.apphosting.api.ApiProxy; ... String version = ApiProxy.g…

XPathをつかう

App EngineでXPathを使うときはXalanが必要でした。以下のまとめを参考にしたところ動きました。http://jx-script.blogspot.com/2009/05/gaejxml.html http://groups.google.com/group/google-appengine-java/browse_thread/thread/dda1848382d3da8/ee9b0761…

分散KVS、あるいは人の脳

Bigtable/Datastoreでプログラミングしつつ、トイレで「ブラックスワン」を読んでいると、分散KVSと人の脳が似ているとちょっと思った。 容量の心配はいらなくて、たくさん詰め込んでも遅くならない キーから値を取り出す(連想)のはまあまあ速い 書き込み…

SDKの外部JARも切り替えよう

SDKを1.2.2にアップデートしたところ、Datastoreを使う単体テストが通らなくなってしまいました(NoSuchMethodExceptionが出る)。一瞬はまりましたが、原因は、単体テスト用にEclipseのビルドパスで「外部JAR」として参照していたSDKの各種JARファイルが1.2…

BigtableとBigTable、GAEとApp Engine

ライティングの仕事をしているととても気になるのですが、「Bigtable」と「BigTable」のどっちが正式名でしょう?Bigtable論文では「Bigtable」表記なので、私はこれを使っています。でも、GoogleフェローJeff Dean様のプレゼン資料には「BigTable」と書いて…

Datastoreに長い文字列を保存する

Datastoreのエンティティでは、String型のフィールドに500文字バイト以上の文字列を保存することができません。代わりに「com.google.appengine.api.datastore.Text」型を使います(この型のフィールドにはインデックスを張れません)。しかし、いま作ってい…

memcacheとDatastoreでライトバック付きKVSをつくる

Datastoreの鬼門である集計関数の代わりのカウンター等を実装するとき、sharded counterより高速なものを求めると、「とりあえずmemcacheに書き込んで、cron/TQでDatastoreに非同期に保存する」ような仕組みがほしくなります。カウンターに限らず、「ライト…

@Transactionalでお手軽にトランザクション管理(するにはコンテナが必要でした)

Datastoreでトランザクション管理をするには、 try { tx.begin(); <更新処理> pm.makePersistent(members); tx.commit(); } finally { if (tx.isActive()) { tx.rollback(); } }といったコードを書きます。これを毎回書くのが面倒なので、AOPやテンプレー…

7/17GAEセミナーのプレゼン資料

7/17に開催予定のセミナー「Google App EngineとBigtableってどう使う?」で使用する資料です。tipsページの内容をベースに説明を補足してあります。・Google App EngineとBigtableってどう使う?資料

オバマ大統領も満足したGoogle App Engineのスケーラビリティ

日経ITproに以下の記事が掲載されました。 オバマ大統領も満足したGoogle App Engineのスケーラビリティ

分散キャッシュはあくまでキャッシュ

先の@ITの記事では、memcachedなど、分散キャッシュとして使われているKVSについては取り上げていません。なぜなら、一般的にはそれらは「RDBの置き換え」としては使われておらず、「スケールしにくいDBをスケールさせる手段」として使われているからです。…

OODBはこんなことができた

イリジウムのシステムをOODBで構築した話。昔、JavaWorldにOODB特集を書いたときにもちょっと取り上げました。Iridium - Object Oriented Databases vs Relational Databases The system includes over 66 low -earth-orbit (LEO) satellites, in order to w…

CISCはこんなことができた

http://h50146.www5.hp.com/products/software/oe/openvms/manual/vax_to_i64/HTML/DOCU_020.HTM 複雑命令セット・コンピュータ (CISC): メモリ内の位置に対して直接実行される複雑な操作も含めて,個別の命令で複雑な操作を実行するコンピュータ。このよう…

@IT「もう1つの、DBのかたち、分散Key-Valueストアとは」

@ITにて新連載「分散Key-Valueストアの本命「Bigtable」」を開始しました。 その第1回として、以下の記事が掲載されました。「もう1つの、DBのかたち、分散Key-Valueストアとは」#実は私はエヴァンゲリオンを通して見たことがありません。