2009-06-14 Bigtable論文を読んだメモ メモ GAE Bigtable: A Distributed Storage System for Structured Dataをざっと読んだ感想: Bigtableは単なるソートされたkey-valueペアだ Multidimensionalという言葉に惑わされない方がよい レコードをイミュータブルにして履歴を残し、たまにGCするのはpgsqlやInterBaseなどのバージョニング系DBと同じ row keyとcolumn keyを組み合わせて1つのキーをつくり、2次元の表のように使っているが、実態は単なる超巨大なkey-valueペア column familyとかlocality groupも、とりあえず忘れてOK アクセス権チェックとか、でかいBlobだけ遅延読み込みするとか、そういうやつだ Bigtableはこれしかできない keyを指定して特定行をatomicにCRUDする 分散txは社内でもモメたけど結局付けなかったよ keyの前方一致検索で複数行を一括取得する(scan) ソートしてあるからこれは速い(single disk seek) valueに基づく検索は一切不可! こんな棒人間みたいな仕様でもAnalyticsとかEarthとかOrkutとか60以上のプロジェクトをこなせたよ! GAEではBigtableをどう使っているか value内容(ex 名前)を検索条件に指定すると、「テーブル名+名前」をkeyとする新しいindex表を自動的に作る。このkeyの範囲指定で該当行を引っ張ってくる だからクエリの種類が増えたり複雑なクエリに頼りすぎるとindexが爆発する