途中までですが、Cassandra Conference in Tokyoに参加してきたので、とってきたメモの共有をしたいと思います。
例によって写真で紹介する会場の模様。
- 場所は品川シーサイド(写真:左、楽天タワー前のオーバルガーデン)、あいにくの雨でした。会場は楽天タワー4F、パイプ椅子がかなりきつかったです。ケツが死にました orz(写真:右)
わたしの参加のモチベーション。
- HBase とよく比較される Cassandra。HBase at Facebook で facebook ではもう Cassandra を使っていないという話を聞いていたりしたので、実際のところ Cassandra がどの程度盛り上がっているものなのか肌で感じてみようという動機で参加しました。
では、以降よりわたしのとってきたメモの共有になります。
(*注1) 日本語のセッションは日本語、英語のセッションは英語で書いています。
(*注2) メモですのでわかりづらい点が多いだろうということを先にお詫びしておきます。
(*注3) スライド等の共有が後からなされるかと思うので、それらは分かり次第追記していきます。
13:00-13:50 ■基調講演: Cassandra 1.0 and the future of big data
英語スピーチ&同時通訳付き!(Skype経由)
DataStax社 CTO Jonathan Ellis
About me
- 3years work with Cassandra
- Distributed system background
- at Mozy, built a multi patabyte, scaleable storage system based on read solomon encoding
- Founder and CTO, DataStax
About DataStax
- founded in april 2010
Job Trends (indeed.com)
Big Data
- Analytics (Hadoop)
- Realtime(NoSQL)
- big two circle between both demand is marked "?"
Some Cassandra users
- Financial
- Social media
- Advertising
- Entertainment
- Energy
- Health Care
- Government
Common Use case
- Time series data
- messaging
- Larger than memory data set
- Best in class performance
- Fully durable
- Integrated caching
- tunable consistency
Why peolbe choose Casssandra
- Multi master, multi DC
- Linearly scalable
- Larger than mermory dataset
- Best in class performance
- Integrated cashing
0.7
- Create column family
- expiring columns (TTL)
- secondary column indexes
- Efficient streaming
- Efficient cross data center writes
0.8
- CQL
- counters (without locking another row???)
- Automatic meltable tuning
- New bulk load interface
1.0
- Compression
- Read performance
- Leveled ...
Compression
rows-per-block or blocks-per-row
Classic size-tiered compaction
Level-based compaction
- SSTables are non-overlapping within a level
- Bounds the number that can contagion a given row
- what will happened the each level data file is fueled?
#can't hear...- L0: newly flushed
- L1: 100MB
- L2: 1,000MB
Read performance: maxtimestamp
- Sort sstables by maximum client-provided timestamp
- Only merge sstables until we have the columns requested
- Allows pre-merging highly fragmented rows without waiting for compaction
Result
- Read and write performance comparison between 0.6 and 1.0
- #Graph shows read performance significantly improved
CQL
- select * from users where state="UT" and birth_date > 1970;
CQL2.0
- Alter counter support
- TTL support
- Select count(*)
Post-1.0 features
- ease of use
- CQL
- native transport
- composite columns
- prepared statement
- Triggers
- Entity groups
- Smarter range queries
- Enables more-efficient analytics
The evolution of analytics
- History of analytics?
- Analytics + Realtime (highend one machine)
- Analytics <- replication - Realtime (highend to highend)
- ETL (cluster to cluster)
- DataStax Enterprise.
- Bridge both Analytics and Realtime
- #Lastly he begins sales X)
DataStax Enterprise re-unifies realtime and analytics
- Portfolio Manager Demo.
- Data model: realtime (3types) - Data model: analytics
- Portfolio Demo dataflow
Operations
- Vanilla Hadoop
- 8+ servers to setup, monitor, backup, and recover
- SPOF
- cant separate online and offline processing
- DataStax Enterprise
- single, simplified component
- self-organized ...
- #Appealing how DataStax is attractive.
OpsCenter
QA
- http://datgastax.com/dev/blog
- jonathan@datastax.com
Q1. 実際の事例について聞きたい
- Cassandraを利用している最大規模の事例、Read Heavyなものが知りたい
- 400 Node Cluster, US government???
事前の質問に対する回答集
14:00-14:30 ■ハイパフォーマンス・スケーラビリティーデータベース Apache Cassandra(講演概要:TBA)
株式会社INTHEFOREST
冨田 和孝
自己紹介
@railute
2 ヶ月おきに Cassandra 勉強会を実施していた
大きな規模のカンファレンスをしたかった
この機会をつくれて感無量
Cassandraの概要
- 分散データベース構造
- ノードにロール(役割)がない
- SPOFがない
- ゴシッププロトコルを用いたP2P通信によるクラスタ管理
- コンシステントハッシング
- 接続、どこに接続しても建前的には同じ結果
- ノードダウン時の書き込み、レプリケーション3セットのうち一台が死んだとき、設定にもよるが他の2台が生きていれば正常にリターンする。サービスは止まらない。
- ノードダウン時の読み込み、読み込みノードが死んでいても正常にリターンできる
- 多元ハッシュデータ構造
- 4次元ないし、5次元ハッシュ
- 単純なKVSではない
- Column Family
e.g.
test0001
question1, value
question2, value
question3, value - Super Column family
e.g.
tp0001
- text0001
-- question1, value ; question2, value
- Column Family
- 結果整合性
- データ読み取り時は、複数ノードから取得し最新のデータを返す
- データ書き込み時は、一定数(指定数)のノードに書き込んだら正常リターン
- データ複製にタイムラグが生じる可能性がある
- ノードの異常により書き込みができなくてもデータを保存し、バックエンド処理で同期をとる
Cassandraの得意分野
- マルチデータセンター
- 結果整合性をもとにつくられている
- 通常のうごき
- クライアント書き込み
- Appサーバーデータ受信
- AppサーバーがCassandraにデータ書き込み
- 受信 Cassandra ローカルデータセンターのノード群へ 2 レプリカ、リモートのデータセンターのノード群へ 2 レプリカ
- ローカルの 2 レプリカが書き込み終了した時点で書き込み正常終了
- ノードダウン時のうごき
- DC間断絶時のうごき
- プライマリDC停止したとき
→DC2がプライマリになる
- 通常のうごき
商用サポート
- 0.6, 0.7, 0.8, 1.0
- リリースが頻繁、追いかけるのが大変。
- プラチナ、ゴールド、スタンダードの3種類
- プラチナは無制限
- OSS、緊急パッチをつくって提供
- Issueとしても報告する
Fluent Plugin Cassandra (OSS)
- Fluent
- Treasure Data の太田さんと古橋さん
- イベントログ収集ツール
- Ruby でかかれたログ収集エンジン
- そのPluginを自分で書いた
- 解析までのタイムラグを短時間に
- Web -> JSON -> fluent-plugin-cassandra -> Cassandra -> Web
- gem search fluent cassandra
- git
QA
Q1. 今まで苦しんで解決した事例
- RAC
- 某会社、書き込みのアクセス、セッション数多かった
- セッションが発生するたびにラッチロックが発生した
- ノード間のデータ通信がボトルネックに
- MySQL
- レプリケーション間の遅延
- シングルスレッドのレプリケーションゆえに
Q2. fluent plugin casssandra
- 先にスキーマを定義なくてはならないが、どういうスキーマを定義なくてはならないがしているか
- キースペースひとつにカラムファミリーをひとつに。カラムとバリューのワンセットで。単純に。
14:35-15:05 ■「Cloudian(クラウディアン)」におけるCassandra (英語スピーチ&同時通訳付き!)
Amazon S3 準拠のマルチテナント・クラウドストレージ・ソフトウェア製品である 「Cloudian」の概要、Cassandraを選択した理由、Cassandraの使用方法、 Cassandraの課題、そしてラージオブジェクトのために実装したMulti-Partと ディスクスペースの有効利用のために開発したHyperStoreについて、 開発者であるGary Ogasawaraより説明いたします。
Gemini Mobile Technologies Inc.
Gary Ogasawara
What is Cloudian?
- Cloudian = S3 Cloud Storage as packaged software
Cloudian Features
- Full AWS S3 API compatibility, including error codes
- Multi DC, peer-to-peer architecture, no SPOF
- multi-tenants: QoS controls, billing, reporting by each user and each group
- Public and private Clouds, Elastic capacity: small start and scale-out as needed
- System, Group, and User management by Management Console or REST API (Browser based tool)
- Easy to use, 24x7 carrier grade support team with 10 years experience in Japan (Gemini)
Cloudian customers
- CLARA online
- Launched nifty cloud storage
Cloudian use cases
- public cloud storage service
- use case: S3 API compatible service
- by DC, cloud service providers...
- size PB to EB
- Enterprise private Cloud/NAS
- use case: secure, low cost, reliable easy
- by...
Cassandara in Cloudian
- Why Cassasndra?
- Scalable
- Scale out by adding nodes to running system
- Distributed (P2P architecture), no SPOF
- Reliable
- Resilient to NW or HW failures
- Multi-DC replication
- Tunable data consistency level
- Fast
- Write path especially fast
- Scalable
Cloudian: Logical architecture
- Application, Web UI
- Management Console
- S3 Server, allowed to access HTTP or HTTPS
- Credentials DB, QoS DB
- ....
NW design: Minumum Redundant Configuration
- Load balancer (Browser request, Application requests)
- ...
NW design: Multi DC Example
User routed to their home DC using S3...
Cassandra for Object Store
- Blob Storage
- column family for each group
- Row key is
/
- Object metadata
-
- ACL
- Cassandra row cache
-
- Large object support
- Multi part
- Amazon S3 multi-part API.
- Chunking
- Break single objects into smaller chunk.
- Hyperstore
- store large objects on native file system.
- Multi part
Cassandra for Account info
- Data model
- User
- Group
- Rating plan
- security credential Notes
- Static data. fixed number of columns
- Secondary index in user CF on groupID. allows query to get all userIDs for specified groupID
- Cloud be put in RDB like MySQL, but no need to add another component
Cassandra for Reports
- Data model
- Raw column family
- User, group, system....
- Rollup column family
- rollup hour: summarizes data for each hour using Raw data.
- - rollup day
- rollup month
- Raw column family
- Notes
- High write rate. Low read rate
- Automatic deletion using Cassandra TTL (time-to-live)
HyperStore
- Object metadata is still stored in Cassandra
- Use Cassandra's distributed systems methods for data partitioning , replication, node health detection
- Fork Cassandra source for customization
Note
- Better performance
- More capacity per node
- Higher disk utilization
- Storage layer flexibility
HyperStore: Hybrid Storage Example
- Optional solution is to choose the storage method that minimize latency
centrally, you want to maximize/minimize U, a performance metric, based on random variables X using a mixture of N storage layers
- in a single case,
- U average latency
- X object size
- N cassandra, ext4 fs
HyperStore: Initial Results on Latency
- PUT performance : 30% faster than Cassandra
- Get performance : 400% faster than Cassandra
HyperStore: Next step
QA
Q1. Use case についての質問
- NAS + Cloudian combination
- NAS はバックアップ目的など使い分け
Q2. Gemini は Hibari も開発してるのになぜ Cassandraか
- Multi-DC support is well tested for 3 years. its trust worthy they think.
Q3. Object の Lock はあるか?
- No, S3 not providing that.
- S3 API provides just simply put, get, delete. so they simply implement that.
ここでわたしは撤収してしまいました。以降のセッションは資料が up されたらリンクをはって勉強していきたいと思います。
15:10-15:40 ■スマートフォン×Cassandraによるハイパフォーマンスサービス
基盤の構築事例
GeQuu(ジクウ)とはスマートフォン向けのソーシャル・位置情報共有サービスです。 GeQuuが目指す非常にハードなシステム要求を実現するためにRDBからCassandraに移行した経緯や、スマートフォンを絡めたアーキテクチャ設計などのトピックに「業務系の視点」を織り交ぜた内容をお話します。
株式会社コスモルート
terurou
16:00-16:30 ■Cassandra上でトランザクションを操る”NanaHoshi”とその展開例
Cassandraで多数のカラムファミリー(RDBのテーブル相当)に渡るトランザクションを可能にするNanaHoshiの基本機能をご紹介し、その実案件への応用例や、今後のECサイト・決済システム構築やアプリ展開について実際の現場レベルでご説明致します。
株式会社エスキュービズム
岸本 康二
16:35-17:05 ■Webアプリケーションから見たCassandra
ワークスアプリケーションズではWebmailプロジェクトとして、Cassandraをデータベースとして利用するWebアプリケーション・サービスの開発を一年半進めてきました。 本セッションでは、このWebmailプロジェクトで得られた知見に基づき、企業向けエンタープライズの観点からCassandraのマッチするフィールドや運用方法を紹介する予定です。
株式会社ワークスアプリケーションズ
堤 勇人
17:10-17:40 ■KVSを活用したログ保管・解析基盤構築の実例
ウルシステムズ株式会社では2年ほど前からOSSの分散処理フレームワークHadoopを 活用した基幹バッチ処理の高速化やデータ解析基盤の構築に取り組んでいます。 Hadoopのようなデータ解析基盤を構築する上で課題となるのは、解析対象となる 大量データの取扱いであり、KVSは大量データを活用する上で不可欠な技術です。 ログ保管・解析基盤の構築現場から、KVS活用における課題や解決策の実例をご紹介します。
ウルシステムズ株式会社
中村 秀剛
17:45-18:15 ■Cassandra を使った大規模データ保存の事例紹介(Issues and Tips for Big Data on Cassandra)
楽天が持っている大量のデータをCassandraに保存し、サービス提供につなげています。その際にぶつかった様々な問題とその対処法について紹介いたします。
楽天株式会社
神尾 正太郎
感想
- Cassandra は十分に魅力のあるプロダクトだと認識しました。
- RDB と比較してより Scalable であることはもちろんですが、特に Multi DC というのは企業にとってかなり魅力として映るように思いました。 日本では 0311 の震災があって以降、より BCP をどうするという気運が高まっていますから。
- まだマチュアじゃないからというのが大きいのだと思いますが、更新が頻繁で、しかもバージョンごとに大きな変更が入るっていうのは、追いかけるのが大変なのでかなりコストが大きいとも思いました。(リソースを多く持ってる企業ならそれほど苦ではないのかもしれないですが…)
- 会場に関しては、ちょっと不満がありました。肝心の最初の基調講演はほとんど音声が聞こえませんでした(今回ばかりは副音声の機械をかりていたほうがよかったな、と思いましたorz)パイプ椅子も長時間だと辛いですね。暑かったのもきつかったです。