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

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

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

Seasar Conference 2009 Autumnのひがさんのセッション「SQL脳からBigtable脳へ」を見てきました。

おおこれはB脳だ!と思った部分:

  • レンジスキャンがBigtableのかなめ
    • Bigtableは単なるKVSではなく「ソートされたキー」があるKVSという点が重要
    • 自分の要件をいかにレンジスキャンに落とすか、そういう発想を身につける必要性を感じた
  • Datastoreでは並列でget/putできる
    • これもっと意識的に使わなきゃと思いました。RDBとは違ってBigtableでは並列化するほどスループットがあがるので、がしがし使おう
    • 例えば1:Nの関連を作るとき、子のkeyを並べたList Propertyを親に持たせ、getObjectsById(Collection)で子を一括取得するとか..こんな感じ?
  • コンポジットインデックスを使わずにインメモリで処理
    • シングルプロパティインデックスのクエリ結果をインメモリでソートしたりフィルタしたり
    • 自分でRDBを実装する感覚と思った
  • 「joinなんてもちろんのことできません!(`・ω・´)キリッ」
    • joinが許されるのは小学(ry って感じの優越感さえ感じます。いやあ惚れます
  • セッション後にスピーカーズコーナー?で教えていただいたことなど、思い出せるキーワード
    • 補償txを実装:変更前の値を一時テーブルに入れておき、競合発生時はそこから戻す。Task Queueも活用…う〜ん、もっと詳しく聞きたかった。今度聞くぞ。
    • BASEトランザクションAS400に似ている:そのあたりのメインフレームのテクニックも詳しく聞きたいです
    • JDOの楽観排他とDatastoreの楽観排他:両者の違いを理解する必要性を教えていただいた
    • エンティティグループいらなくね?owned関連重すぎ。
    • DatanucleusのAndyのコードはきれいだ。GoogleのMaxのコードは…。
    • などなど、う〜む、これはまたじっくりと「B脳中級編」をお願いしたい!

追記

そうそう、ひがさんがいま書かれているSlim3本(だったかな?)には、こうしたB脳な話やBASEトランザクションのパターンなども盛り込まれるそうです。これは期待!