「HBaseとCassandraの討論会 第1回」に行ってきた

酒を飲みながら開催するイベントであるにも関わらず、会社から東京までの交通費+宿泊費を支給してもらえることになった(酒代は除く)ので、HBaseとCassandraの討論会 第1回 : ATNDに参加してきました。いやはや、非常に濃いディスカッションでたいへん勉強になりました。

討論会イベント開始前

前日の夜にid:kazuki-aranami(@)さんに誘われたので、ホイホイと早めに東京に行き、2人でスタバでお話してました。マンツーマンではてなダイアリーを話してもらっていたりとか!

討論会イベント本番

私のアイコンが並びまくってる第1回HBaseとCassandra討論会 - Togetterがありますが、これを見ながら記憶に残ってる内容を書き出してみます。

分散データベースの世代

丸山先生は、レクチャーシリーズの講演の中で、クラウドにおける分散データベースをいくつかに分類しています。Google BigTableが第1世代、Amazon Dynamoが第2世代、Microsoft SQL Azure Databaseが第3世代です。

ここに書いてある「Microsoft SQL Azure Database」は、「Azure Table」のことを指してるらしいです。私はつっこまれるまでSQL Azureのことだと思ってました。

CassandraとVector Clock

Cassandra 0.7.0 beta2でVersioned Clockというものが実装されたらしいです。(数ヶ月ぐらい前は0.7でVector Clockと言っていた)
補足すると、Vector Clock(Versioned Clock)とは、CassandraでColumn更新時に整合性を保つため(すごく端折って言ってしまえばオプティミスティックロックをかけるため)の仕組みです。0.6.xまではCassandraクライアントから送られてくるtimestamp値によりオプティミスティックロックをかけていたのですが、timestampである以上、すべてのクライアントのシステムクロックを同一にしておく必要でてきます。しかし、NTPを使ってもクロックの精度に限界がでてしまうため、頻繁な更新が発生するとデータ整合性が保てなくなってしまいます。
CassandraのVector ClockについてはASCII.technologies 11月号に非常に良いまとめが書かれていますので、紹介しておきます。

参加者のHBaseとCassandraの利用状況について

HBase・Cassandraを触ったことある・実務で使っている人に挙手をしてもらったところ、次のような人数でした。ちゃんと数えてないので間違ってる可能性大です。

  • HBaseを触ったことがある - 5人ぐらい
  • HBaseを実務で使っている - 3人ぐらい
  • Cassandraを触ったことがある - 8人ぐらい
  • Cassandraを実務で使っている - 4人ぐらい
つづきは後ほど書く

眠くなったので残りはあとで追記します。
第1回HBaseとCassandraの討論会のメモ - ひしだまの変更履歴にしっかりまとまってるので、まぁまとめないでもいいか。