ようへいの日々精進XP

よかろうもん

Cassandra Summit JPN 2014 に行ってきた

はじめに

Cassandra の事を調べる時にいつもお世話になっている id:oranie さんのブログ記事Cassandra Summit の存在を知り居ても立ってもいられず申し込んで行ってきたのでメモ。


参考


参加したセッション

  • Cassandraを含むシステム全体の可視化とパフォーマンス分析
  • Cassandra導入事例と現場視点での苦労したポイント
  • Cassandra100台クラスタを運用して(oranie さんのセッション)
  • Large nodes with Cassandra
  • Cassandraでここまで出来る!こう使える! 技術ネタからEC、監視、M2M案件まで

参加したセッションのメモはこちら


セッションメモ

Cassandra 超初心者の自分が参加したセッション毎に感じた事などを。

Cassandraを含むシステム全体の可視化とパフォーマンス分析

  • システム監視ツール dynaTrace の紹介
  • Cassandra 専用というわけではなくアプリケーション(JavaPHPJavascript)をシステム全体の監視ツール
  • 負荷が低いのが特徴
  • Cassandra1.0 〜 1.2.x に対応
  • アクセスメソッドのトレースや JVM のリソース状況を把握出来る

Cassandra導入事例と現場視点での苦労したポイント

  • ぐるなびの導入事例
  • ぐるなびは月間 10 億 pv(スゲー)
  • レストラン情報を RDBXML で管理していた
  • memcached も利用していたがデータの永続性、データ量、アクセス数増加に耐えれない
  • Cassandra version 0.6 から検証開始
  • 2013 年 6 月から 70 ノード、3 つのリング(データセンター)で運用している
  • スケールし易い、高い性能(◯)
  • トランザクション制御(Zookeeper Lock でトランザクションを実装)(✕)
  • データの削除が面倒(削除したはずのデータが復活してしまうことがある...、古いデータが削除し辛い...)(✕)

Cassandra100台クラスタを運用して(oranie さんのセッション)

以下はセッションのスライド。

  • サイバーエージェントid:oranie さんのセッション
  • これだけを聞きたくて今日は来た*1
  • スマフォ向けソーシャルゲームのインフラとして、データ量、負荷等を考慮して Cassandra を採用
  • 100 台のノードを運用
  • Cassandra 1.1 系
  • 全て物理サーバーで運用(16 core or 24 core CPU/ 64GB / SAS 600GB RAID 10SSD や SATA))
  • 構築は Chef と fabric と Jenkins っを利用*2
  • 監視は Nagios と Jenkins と Perl スクリプト(メール、Push 通知で利用)
  • JMX の監視には jolokia を使っている
  • Cacti や growthforecast + yohoushi も利用している
  • OpsCenter は 100 台となるとキツイ
  • 細かいノードの情報は growthforecast + yohoushi
  • ほとんどのオペレーションで nodetool を利用している
  • ノード障害時のリペアについてはこちらこちらが参考になる
  • スキーマ設計、ハードウェアの安定も重要
  • リペアが重い、データが肥大化する、slow log 的なものが無い、node tool の出力がバージョンによって異なる...ここが困るよ Cassandra

Large nodes with Cassandra

  • 1 ノードに 500GB 以上の容量を Large nodes
  • 一応、メモってはいるが纏められない...
  • Aaron Morton さん、すいません...でも、なぜか Aaron Morton さんには特別な親近感を持てたのはやっぱりスキンヘッドかしら...

Cassandraでここまで出来る!こう使える! 技術ネタからEC、監視、M2M案件まで


最後に

感じたこと

  • Cassandra は SPOF が無くスケールアウトしやすい NoSQL
  • スケールし易いがゆえにデータやノードの管理には苦労しそうだが、ちゃんとした設計をすれば安定稼働する
  • トランザクションが無いので別途アプリケーションやミドルウェアでハンドリングしてあげる必要がある
  • 運用、監視にも Java の知識は確実に必要
  • これからのシェアの広がりと開発コミュニティの盛り上がりを感じた

そして..T シャツを頂きました

ステッカーとかもあるといいなあと思ったけど、このロゴはちょっと怖いかもしれない...。

f:id:inokara:20140126140022p:plain

最後になりますが、登壇された方、主催者、運営者の皆さん、大変お疲れ様でした。有難うございました。

*1:大げさでした...

*2:fabric や Jenkins はどのように構築で利用しているのか?