SlideShare a Scribd company logo
Web アプリケーションから見た Cassandra ワークスアプリケーションズ 堤 勇人
自己紹介 堤 勇人 ワークスアプリケーションズ ATE 本部  Webmail 主に DB 周りやバッチ処理、 最近では Cassandra 担当 twitter : 2t3
今日話すこと 基本: Cassandra を検討する際の一助となる 内容: Cassandra を使ったプロジェクト、 Webmail の説明 何故 Cassandra を使ったか Cassandra の使い方
Webmail とは? ワークスアプリケーションズが 2010 年 4 月に 開始したプロジェクト バックエンドは基本的に Cassandra のみ Amazon EC2 上で動作中 Cassandra を含め、全て OSS を利用 メールデコード等、有用な物は OSS として 公開予定
Webmail とは? こんな画面
バックエンドに要求されるスペック TB 単位のデータに 500ms 以下でアクセス ACID( 原子性、一貫性、独立性、永続性 ) を満たす 常に Read/Write ができる スモールスタート、スケーリングが可能
候補は色々 SQL: Oracle, DB2, MySQL,etc... NoSQL: HBase, Voldemort, MongoDB, MemcacheDB, Cassandra, etc...
判断 要求を完全に満たす DB は、 現状存在しない スケーリングと常時アクセスを重視すると、 有力なのが Cassandra
Cassandra のできること 保存したデータがちゃんと返ってくる 一台落ちても、アクセスが阻害されない 動かしたままバージョンアップが可能 最低三台から始めて、必要な分だけ 追加できる
Cassandra の設定 強い一貫性を持たせて運用する レプリカを 3 台に Read/Write を QUORUM で行う Write Read
使ってみた軌跡
スケールの変化 最初期 (2010/4) 150GB c1.medium × 3 181$ 現在 (2011/10) 13,000GB m1.large × 18 7,326$ 1 日 30 万通程度
かかる費用 EC2 での値を出すと、 運用、バックアップが取りやすい形式なら 500$/TB ・月 なるべく安く頑張るなら 350$/TB ・月
まとめ 実際に Web アプリケーションのバックエンドとして Cassandra を使うことは可能 高可用性や、一貫性と遅延をトレードオフできる柔軟性などは、これまで不可能だった要求を満たせる可能性がある 特にスケーリングは RDB で苦労していた 部分がとても楽になる
まとめ 以下のどれかに該当する新規プロジェクト なら、 Cassandra を検討に入れてよい TB 単位のデータを扱う 小さなデータからスモールスタートする システムを無停止で運用する
以上、ありがとうございました 質問があればこちらまで twitter : 2t3
Cassandra の障害対策 一台落ちても、アクセスできる じゃあレプリカが二台落ちたら? appendix Write Read
Cassandra の障害対策 一貫性を落として 残りの 1 台でやりくりします じゃあ 3 台落ちたら? appendix Write Read
Cassandra の障害対策 バックアップを直接読みます appendix Read
Cassandra の設定プロファイル Web アプリケーションのバックエンドのような 強い一貫性が必要な場合 レプリカ 3 台 Read/Write を QUORUM で行う では他の場合は? appendix 2
Cassandra の設定プロファイル ロギングなど、データの書き込み速度を 重視する場合 レプリカ 2~3 台 Write を ONE で行う Read の前に flush や repair を行う appendix 2
Cassandra の設定プロファイル 検索 index など、定期的なデータ作成と その頻繁な読み出しを行う場合 レプリカ 1 台 Read を ONE で行う Write は ALL で行うが、ノードのダウン時 には回復を待っても良い appendix 2
Cassandra の O/R マッパー Cassandra は Column の自由度が高いのでデータ構造がややこしくなりがち Thrift の API もちょっと煩雑 CQL でも基本同じ なので O/R マッパーを実装しました appendix 3
Cassandra の O/R マッパー オブジェクトでやりとり appendix 3 Mail mail = kvs.get(“tsutsumi201110051650”, Mail.class); mail.subject = “test”; kvs.insert(mail); List<Mail> mails = kvs.search(“tsutsumi”, Mail.class); kvs.delete(mails);
Cassandra の O/R マッパー アノテーションで管理 appendix 3 @Entity public class Mail { @Key public String emailId; @Family public String subject; }
Cassandra の O/R マッパー カウンターも実装 appendix 3 @Entity public class MailFolder { @Key public String folderId; @Family public String name; @Counter public long unreadCount; }
Cassandra の O/R マッパー 詳細は ASCII.technologies の 連載に書きました 2011 年 1 月号 休刊なので見つからない と思います appendix 3
Cassandra の O/R マッパー OSS として公開予定 appendix 3
おわり 質問があればこちらまで twitter : 2t3

More Related Content

PPT
インフラエンジニアのためのcassandra入門
DOC
cassandra調査レポート
PDF
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
PPTX
事例で学ぶApache Cassandra
PPT
Cassandra(no sql)によるシステム提案と開発
PDF
Cassandraとh baseの比較して入門するno sql
PDF
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
PPTX
Cassandra Meetup Tokyo, 2016 Spring
インフラエンジニアのためのcassandra入門
cassandra調査レポート
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
事例で学ぶApache Cassandra
Cassandra(no sql)によるシステム提案と開発
Cassandraとh baseの比較して入門するno sql
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
Cassandra Meetup Tokyo, 2016 Spring

What's hot (20)

PDF
DB Tech showcase Tokyo 2015 Works Applications
 
PDF
Db tech showcase 2016
PDF
Guide to Cassandra for Production Deployments
PDF
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...
PDF
cassandra 100 node cluster admin operation
PDF
SparkとCassandraの美味しい関係
PPT
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
PPT
Cassandraのしくみ データの読み書き編
PPTX
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
PPTX
RDB開発者のためのApache Cassandra データモデリング入門
PPTX
The rethinkingofrepair
PDF
Cassandra Summit Tokyo 2015 - intra-mart
PPTX
これがCassandra
PDF
[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...
PPTX
Cassandra Meetup Tokyo, 2016 Spring 2
PPTX
Apache Cassandra最新情報まとめ
PDF
はじめるCassandra
PPTX
Cassandraのバックアップと運用を考える
PDF
Datastax Enterpriseをはじめよう
PDF
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
DB Tech showcase Tokyo 2015 Works Applications
 
Db tech showcase 2016
Guide to Cassandra for Production Deployments
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...
cassandra 100 node cluster admin operation
SparkとCassandraの美味しい関係
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Cassandraのしくみ データの読み書き編
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
RDB開発者のためのApache Cassandra データモデリング入門
The rethinkingofrepair
Cassandra Summit Tokyo 2015 - intra-mart
これがCassandra
[Cassandra summit Tokyo, 2015] Apache Cassandra日本人コミッターが伝える、"Apache Cassandra...
Cassandra Meetup Tokyo, 2016 Spring 2
Apache Cassandra最新情報まとめ
はじめるCassandra
Cassandraのバックアップと運用を考える
Datastax Enterpriseをはじめよう
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
Ad

Similar to Webアプリケーションから見たCassandra (14)

PDF
Yahoo! JAPANにおけるApache Cassandraへの取り組み
PDF
RDB脳でCassandra/MSAを始めた僕達が、 分散Drivenなトランザクション管理に たどり着くまで
PDF
RDB脳でCassandra / MSAを始めた僕達が、分散Drivenなトランザクション管理にたどり着くまで / A journey to a...
PPTX
Apache Cassandra 入門編
PPTX
1.2新機能と1.2から始めるcql3
PDF
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
PPT
081108huge_data.ppt
PPTX
Cassandra Summit 2016 注目セッション報告
PPT
Cassandra0.7
PDF
appengine java night #3
PDF
Random partionerのデータモデリング
 
PDF
RDBからの脱却: 新ERP"HUE"におけるCassandra
 
PPTX
Coherenceを利用するときに気をつけること #OracleCoherence
Yahoo! JAPANにおけるApache Cassandraへの取り組み
RDB脳でCassandra/MSAを始めた僕達が、 分散Drivenなトランザクション管理に たどり着くまで
RDB脳でCassandra / MSAを始めた僕達が、分散Drivenなトランザクション管理にたどり着くまで / A journey to a...
Apache Cassandra 入門編
1.2新機能と1.2から始めるcql3
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
081108huge_data.ppt
Cassandra Summit 2016 注目セッション報告
Cassandra0.7
appengine java night #3
Random partionerのデータモデリング
 
RDBからの脱却: 新ERP"HUE"におけるCassandra
 
Coherenceを利用するときに気をつけること #OracleCoherence
Ad

Webアプリケーションから見たCassandra

Editor's Notes

  • #4: 専門的な設定は時間が余ったら話す。 Twitter とかで聞いて貰っても良い。
  • #8: Hbase, Cassandra, sharding MySQL + Memcached が候補
  • #13: 1 秒 4 通弱 大体 3 ヶ月で 2 倍
  • #18: レプリカの範囲内で落ちたのが一台ならアクセスできる。だから 18 台中 6 台を落としても動く。