SlideShare a Scribd company logo
1 of 61
Cassandra Meetup in Tokyo
Fall 2016
データ&サイエンスソリューション統括本部
データプラットフォーム本部
開発3部 部長
遠藤 禎士(えんどう ただし)
2012年にヤフーに中途入社 ちょうど5年目
広告のインフラを担当
2015年からデータインフラへ
自己紹介
アジェンダ
1. Cassandra Summit 2016 keynote summary
2. SlowQuery 開発秘話
3. Cassandra Summit 2016 注目セッション報告
4. Cassandra 3.x の最新機能
5. Cassandra データモデリング
6. クロージング
7. 懇親会
Cassandra Summit 2016 keynote summary
Industry Standard
Global
Community
Cassandra Summit 2016 keynote summary
Industry
Standard
GlobalCommunity
2016年10月21日
2016年10月21日6
後藤 泰陽 @ono_matope
Cassandra Summit 2016
注目セッション報告 ①
Sessions
• Cassandra Internals: The Read Path
• CQL performance with Apache Cassandra 3.0
• Myths of big partitions
7
Cassandra Internals: The Read Path
Tyler Hobbs: Datastax
Cassandra Internals: The Read Path
SELECT文発行時のCassanra内部処理の概要を解説
9
Cassandra Internals: The Read Path
10
• ドライバ
• プリペアドステートメント
• DC/Token Aware Selection
• コーディネーターノード
• メトリクスによるレプリカ選択
• Speculative Retry
• レプリカノード
• SSTableファイルの選択・順序付け・検索終了
条件
• キャッシュ, インデックス
感想:C* 初心者の方も是非
CQL performance with Apache Cassandra 3.0
Aaron Morton: The Last Pickle
CQL performance with Apache Cassandra 3.0
• C*3.0の新ストレージエンジンの解説
12
3.0以前のストレージエンジン
13
Row
Row
KVS的レイアウト。シンプルだが無駄が多い
従来のフォーマットの問題点
14
1. クラスタリングが反復
2. カラム名が反復
3. タイムスタンプが反復
4. エンコーディングが固定幅
従来のフォーマットの問題点
15
1. クラスタリングが反復
2. カラム名が反復
3. タイムスタンプが反復
4. エンコーディングが固定幅
Pre 3.0 Storage Layout
16
1. クラスタリングが反復
2. カラム名が反復
3. タイムスタンプが反復
4. エンコーディングが固定幅
Pre 3.0 Storage Layout
17
1. クラスタリングが反復
2. カラム名が反復
3. タイムスタンプが反復
4. エンコーディングが固定幅
Long
3.0 Storage Engine
18
SSTable
Partition: part_a
Row: cluster_a
some foo
and bar
no baz
Row: cluster_b
some foo
and bar
no baz
Partition>Row>Cell(カラム)の階層構造に変更
階層化
19
SSTable
Partition: part_a
Row: cluster_a
some foo
and bar
no baz
Row: cluster_b
some foo
and bar
no baz
クラスタリングの反復を排除
Cell Bitmap
20
SSTable
Partition: part_a
Row: cluster_a
some foo
and bar
no baz
SSTableヘッダでカラム名に番号付け
Rowは出現カラムをビットマップで管理
カラム名の反復を排除!
columns: [foo, bar, baz... ]
bitmap : 0|1|2...
Variable Int
• 時刻のエンコード形式をlong(8Byte)から可変長整数(VarInt)に変更
• 小さい数値は小さいサイズでエンコードできる。
• 127以下なら1Byte
21
Delta Encoding
• SSTableヘッダにminTimestampを格納する
• Timestampを、絶対時刻からminTimestamp
からの相対時刻表現に変更する
• VarIntと合わせてデータ量が削減
22
SSTable
Partition: part_a
minTimestamp: t1
Row: cluster_a
some
foo
varint(t2 - t1)
and bar varint(t2 - t1)
no baz varint(t3 - t1)
Aggregated Cell Metadata
• RowレベルのTimestampを導入
• CellレベルのTimestampがRowレベルと同じ
場合は省略する
23
SSTable
Partition: part_a
Row: cluster_a
some
foo
and bar
no baz t3
timestamp: t2
以上
感想:ストレージの効率化・高
速化のための工夫を知るのは
面白い。
パフォーマンスやキャパシティ
に非常に効いてくるので、よく
理解しておきたい。
24
Myths of big partitions
Robert Stupp: DataStax
Myths of big partitions
• Big Partition
• パーティション内に大量のRow
• CASSANDRA-11206 (C*3.6)
• Big Partition問題を緩和するコミッ
ト
• 何が問題だったのか?
• 何を改善したのか?
26
Big Partition Issue
• SSTableは BloomFilter, Summary, Index, Data などのファイルで構成
• DataファイルにはRowのデータが格納
• IndexファイルにはDataファイルの全てのパーティションへのオフセットが格納
• 一定間隔でサンプリングされたRowのオフセット位置を示すIndexInfoも格納
27
Big Partition Issue
28
READ時処理手順
1. Indexから目的のパーティションを見つける
2. 目的のクラスタリングに近いIndexInfoを見つける
3. Dataファイルを読みに行く
Big Partition Issue
29
READ時処理手順
1. Indexから目的のパーティションを見つける
2. 目的のクラスタリングに近いIndexInfoを見つける
3. Dataファイルを読みに行く
パーティション内の全ての
IndexInfoをヒープにロードしている
Big Partition Issue
• 2GBのパーティションの場合、32,768 IndexInfo (42万Java Objects)
• GCプレッシャーが高まり不安定に
• バイナリサーチにより 15 IndexInfoしか使わないのに。無駄!
30
CASSANDRA-11206
• 一定サイズを超過するIndexInfoはロードせず、ディスクアクセスするよう変更
• column_index_cache_size_in_kb (default: 2)
• GCプレッシャーが大幅に削減され、高速化
• 10個の15GBパーティションをコンパクションしても問題なかった
31
CASSANDRA-9754
• SSTableのIndexのレイアウトそのものを改良するチケット
• B+Treeベースの独自フォーマット
• Cassandra 4.xでのマージを目指している
32
余談
CASSANDRA-12731
• 帰国後、#11206パッチに無駄なIndexInfo配列のアロケーションを発見
• 削除したところ2,30%ほど高速化
• パッチを送ったらマージしてもらえたので、3.10に入ります 😀
• 感想
• 早く3.x入れたい!! Production Readyはいつ…?
34
2016年10月21日
2016年10月21日35
鄭 中翔
Cassandra Summit 2016
注目セッション報告 ②
36
概要
• 運用、チューニング、利用事例に関連するセッションを中心に参
加
• 下記のセッションを紹介します
• Tuning Speculative Retries to Fight Latency, Netflix
• C* Capacity - Planning and Forecasting at scale, Netflix
• How we built user specific search using C* without Solr, Sony
• Always On: Building Highly Available Applications on Cassandra,
The Weather Company (IBM)
Tuning Speculative Retries to Fight Latency,
Netflix
38
Tuning Speculative Retries to Fight Latency,
Netflix
> DESCRIBE TABLE system.local
CREATE TABLE system.local (
key text PRIMARY KEY,
bootstrapped text,
...
truncated_at map<uuid, blob>
) WITH bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
AND comment = 'information about the local node'
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}
AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND dclocal_read_repair_chance = 0.0
AND default_time_to_live = 0
AND gc_grace_seconds = 0
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 3600000
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99.0PERCENTILE';
Speculative retryの説明と実験結果の話
この設定
→レイテンシが設定値を超えた場合に追加のノードにデータを取得しにいく機能
• Cassandra: 12nodes(8cores/60GB RAM) / 120GB data per node
• Client: 6 (8cores/30GB RAM)
• tcコマンドで1ノードにパケット遅延を発生させネットワーク障害を
シミュレート
39
Tuning Speculative Retries to Fight Latency,
Netflix
実験
40
Tuning Speculative Retries to Fight Latency,
Netflix
Speculative Retry なし 95percentile
スループット 50K reads/sec,
3K writes/sec
30K reads/secに低下
write 言及なし
平均レイテンシ 0.5ms 1ms
95th/99th レイテンシ スパイクが2~10倍に増加
• 高負荷な場合
Speculative Retry なし 95percentile
スループット 18K reads/sec,
1K writes/sec
20+K reads/secに増加
write 言及なし
平均レイテンシ 0.5ms 1ms
95th/99th レイテンシ レイテンシ低下
スパイクなし、安定
• 低負荷な場合
→キャパシティを余分に確保しSpeculative Retryを有効にすることで95/99thレイテンシが改善
キャパシティに余裕が無いとパフォーマンスは悪化する可能性があるので注意する
C* Capacity - Planning and Forecasting at scale,
Netflix
C* Capacity - Planning and Forecasting at scale,
Netflix
• Metrics → Atlas → pagerduty
• メトリクス間の複雑な関係のチェックができない
• ハードウェア障害による誤検知が発生する
• Winston
• Atlas→Winston→pagerduty
• メトリクス間の関係性をチェック
• 誤検知を削減
• http://techblog.netflix.com/2016/08/introducing-winston-event-
driven.html
42
C* Capacity - Planning and Forecasting at scale,
Netflix
• アラートを受けたときにはもう遅いかも
→予測して事前に通知させたい
• ARIMA(Auto Regressive Integrated Moving Average
• : 自己回帰和分移動平均)モデルで予測して通知
43
→
How we built user specific search using C*
without Solr, Sony
How we built user specific search using C*
without Solr, Sony
• 購入履歴のデータは複数のサービスからリアルタイムで必要とされた
→高可用性、速さ、スケールのしやすさが必要
→RDBの前にC*を置いて解決
• しかしCQLではJoin、トランザクション、検索ができない
• 各ユーザのデータに対するクエリがほとんどだった→joinはできなくても大丈夫
→購入履歴を非正規化してjson形式でCassandraに保持
主キーはアカウント、一つの購入履歴が1つのカラム
45
PlayStation StoreのRDBに対するクエリの一部をCassandraで受ける
話
Account1 Json 1 Json 2 …. Json n
クエリをから要件を確認
46
How we built user specific search using C*
without Solr, Sony
検索、ソート、フィルタはどのように実現するか?
• セカンダリインデックス
→スケールしない、いろいろつらい
• データをすべてロードしてメモリ内で処理
→できなことはない
• Solr
→ユースケースに合わない
47
How we built user specific search using C*
without Solr, Sony
Account1 Json 1 Json n Version
ユーザ毎にLuceneでインデックスを作成しCassandraに格納
• 行内のすべてを検索できる
• インデックスのサイズも小さい
• クエリのたびにインデックスを引くのは非効率
• 同じ行に異なるサーバから書き込まれると?
しかし
48
How we built user specific search using C*
without Solr, Sony
Account
1
Version
Account
2
Version
Account
3
Version
Account
4
Version
Account
5
Version
Account
6
Version
Account1 jsons Version
Account2 jsons Version
Account3 jsons Version
Account4 jsons Version
Account5 jsons Version
…. … … …
Account n jsons Version
Instance 1
Instance 2
Instance 3
Cassandra
Cassandraの前に分散キャッシュを置いて解決
Always On: Building Highly Available Applications on
Cassandra, The Weather Company (IBM)
Always On: Building Highly Available Applications on Cassandra, The
Weather Company (IBM)
• トポロジーの設定
• 一つのラックにすべてノードを置かない
• Multi-DCクラスタにおいて非LocalなConsistency Levelは避ける等
• Cassandraに適したデータモデル
• 主キーが異なるデータをまとめて書き込む際にbatchは使わない
• 複数のパーティションにまたがるようなクエリを投げない等
• 監視で注目した方がよい点
• C*はSEDAなのでスレッドプールの状態に注意
• コンパションが遅れていないか
• Size-TieredではSStableの数
• LeveledではL0のSStableの数
50
可用性を高めるためにするべきこと、するべきではないことが一通りまとめられてい
る
2016年10月21日
2016年10月21日51
今野 賢
Cassandra Summit 2016
注目セッション報告 ③
概要
• Cassandra Summitでの弊社実績について講演
セッションは、C*の応用や仮想化などを中心に参加
• 下記のセッションを紹介します
• Cassandra @ Yahoo, Yahoo! JAPAN
• CassieQ: The distributed message queue built on
cassandra, Curalate
• Running Cassandra on Apache Mesos Across Multiple
Datacenters at Uber, Uber
52
Cassandra @ Yahoo, Yahoo! JAPAN
• 弊社の運用課題、OSS貢献について講演
53
CassieQ: The distributed message queue built on cassandra, Curalate
• C*(Cassandra)ベースのMQ(MessageQueue)実装
54
CassieQ: The distributed message queue built on cassandra, Curalate
• C*ベースの利点
マスターレス、高可用性、高分散性など
→ アトミック処理実装には軽量トランザクションを利用
• C*ベースのMQは他にも …
Netflix : Astyanax recipe
Comcast : CMB
→ (ただし基本実装はRedis、永続化にC*を利用)
55
CassieQ: The distributed message queue built on cassandra, Curalate
• 関連セッション① : One Billion Black Friday Shoppers on a
Distributed Data Store, Bazaarvoice
EmoDB : C*ベースの高機能(SoR)データストア
→ スナップショット機能や、CRDTデータ型サポート
56
CassieQ: The distributed message queue built on cassandra, Curalate
• 今後、C*の分散基盤ソフトウェアとしての活用にも注目
• 関連セッション② : Clock Skew, and other annoying realities in
distributed systems, PagerDuty
→ 分散システムとしてのC*の整合性、独立性、
原子性など動作についての講演
57
Master Slave
Master
Less
Running Cassandra on Apache Mesos Across Multiple Datacenters at Uber, Uber
• 発表者は元Google、 Borg(Kubernetes)論文の第一著者
• Mesos採用理由
高可用性、リソース抽象化、線形スケラビリティなど
• C*採用理由
高可用性、水平スケラビリティ、低遅延など
58
Running Cassandra on Apache Mesos Across Multiple Datacenters at Uber, Uber
• Custom Seed Provider
ノード増設時に既存Seedノード応答用のAPIを準備
59
Running Cassandra on Apache Mesos Across Multiple Datacenters at Uber, Uber
• Cassandra on Mesosの導入が進む?
• 関連セッション① : Infrastructure for Fast
Delivery, Mesosphere
→ Mesosphereによるベンダー講演
• 関連セッション② : Cassandra @ Yahoo,
Yahoo! JAPAN
→ OpenStack Troveへの取り組み紹介
• 関連情報 : Thousand Instances of
Cassandra using Kubernetes Pet Set
60
Cassandra Meetup in Tokyo, Fall 2016
私たちと、いっしょに働きませんか?
mailto : nosql-jobs@mail.yahoo.co.jp

More Related Content

What's hot

Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Yuki Morishita
 
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼうdatastaxjp
 
[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用Kosuke Kida
 
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界Masaru Watanabe
 
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Takuya ASADA
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理maebashi
 
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...Insight Technology, Inc.
 
Persistence on Azure - Microsoft Azure の永続化
Persistence on Azure - Microsoft Azure の永続化Persistence on Azure - Microsoft Azure の永続化
Persistence on Azure - Microsoft Azure の永続化Takekazu Omi
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編irix_jp
 
cassandra調査レポート
cassandra調査レポートcassandra調査レポート
cassandra調査レポートAkihiro Kuwano
 
Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)Daisuke Kikuchi
 
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜Weibo Corporation
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Colin Charles
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlYutuki r
 
各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10-
各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10-各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10-
各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10-Yoshinori Nakanishi
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 

What's hot (20)

Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
[db tech showcase Tokyo 2015] E35: Web, IoT, モバイル時代のデータベース、Apache Cassandraを学ぼう
 
introduction of WalB
introduction of WalBintroduction of WalB
introduction of WalB
 
[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用
 
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
 
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
 
これがCassandra
これがCassandraこれがCassandra
これがCassandra
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
 
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
[db tech showcase Tokyo 2015] A33:Amazon Aurora Deep Dive by アマゾン データ サービス ジャ...
 
Persistence on Azure - Microsoft Azure の永続化
Persistence on Azure - Microsoft Azure の永続化Persistence on Azure - Microsoft Azure の永続化
Persistence on Azure - Microsoft Azure の永続化
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
 
The rethinkingofrepair
The rethinkingofrepairThe rethinkingofrepair
The rethinkingofrepair
 
cassandra調査レポート
cassandra調査レポートcassandra調査レポート
cassandra調査レポート
 
Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)
 
Kafka・Storm・ZooKeeperの認証と認可について #kafkajp
Kafka・Storm・ZooKeeperの認証と認可について #kafkajpKafka・Storm・ZooKeeperの認証と認可について #kafkajp
Kafka・Storm・ZooKeeperの認証と認可について #kafkajp
 
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10-
各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10-各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10-
各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10-
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 

Viewers also liked

ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術Yahoo!デベロッパーネットワーク
 
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試みデータテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試みYahoo!デベロッパーネットワーク
 
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋Yahoo!デベロッパーネットワーク
 
Cassandra Summit 2014: CQL Under the Hood
Cassandra Summit 2014: CQL Under the HoodCassandra Summit 2014: CQL Under the Hood
Cassandra Summit 2014: CQL Under the HoodDataStax Academy
 
Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...
Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...
Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...DataStax
 
Cassandra Troubleshooting 3.0
Cassandra Troubleshooting 3.0Cassandra Troubleshooting 3.0
Cassandra Troubleshooting 3.0J.B. Langston
 
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...DataStax
 
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016DataStax
 

Viewers also liked (20)

Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②
 
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
Yahoo! JAPANのデータ基盤とHadoop #dbts2016Yahoo! JAPANのデータ基盤とHadoop #dbts2016
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
 
Storm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreadingStorm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreading
 
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
ヤフオク!の快適なカスタマー体験を支えるモバイルアプリのライブアップデート技術
 
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試みデータテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
データテクノロジースペシャル:Yahoo! JAPANにおけるメタデータ管理の試み
 
市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①
 
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋
 
Cassandra3.0
Cassandra3.0Cassandra3.0
Cassandra3.0
 
Cassandra Summit 2014: CQL Under the Hood
Cassandra Summit 2014: CQL Under the HoodCassandra Summit 2014: CQL Under the Hood
Cassandra Summit 2014: CQL Under the Hood
 
Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...
Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...
Cassandra Tuning - Above and Beyond (Matija Gobec, SmartCat) | Cassandra Summ...
 
CSS Modulesのベストプラクティスを探る #scripty06
CSS Modulesのベストプラクティスを探る #scripty06CSS Modulesのベストプラクティスを探る #scripty06
CSS Modulesのベストプラクティスを探る #scripty06
 
Cassandra Troubleshooting 3.0
Cassandra Troubleshooting 3.0Cassandra Troubleshooting 3.0
Cassandra Troubleshooting 3.0
 
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
How Cassandra Deletes Data (Alain Rodriguez, The Last Pickle) | Cassandra Sum...
 
AmbariでStreamをデプロイ #ambarimeetup
AmbariでStreamをデプロイ #ambarimeetupAmbariでStreamをデプロイ #ambarimeetup
AmbariでStreamをデプロイ #ambarimeetup
 
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
Cassandra at Instagram 2016 (Dikang Gu, Facebook) | Cassandra Summit 2016
 
むずかしくないCSS設計 #scripty06
むずかしくないCSS設計 #scripty06むずかしくないCSS設計 #scripty06
むずかしくないCSS設計 #scripty06
 
Cassandra 3.0
Cassandra 3.0Cassandra 3.0
Cassandra 3.0
 
Yahoo! JAPANのCloud Foundry導入状況
Yahoo! JAPANのCloud Foundry導入状況Yahoo! JAPANのCloud Foundry導入状況
Yahoo! JAPANのCloud Foundry導入状況
 
Ambari運用ツラたん #ambarimeetup
Ambari運用ツラたん #ambarimeetupAmbari運用ツラたん #ambarimeetup
Ambari運用ツラたん #ambarimeetup
 

Similar to Cassandra Summit 2016 注目セッション報告

Guide to Cassandra for Production Deployments
Guide to Cassandra for Production DeploymentsGuide to Cassandra for Production Deployments
Guide to Cassandra for Production Deploymentssmdkk
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
USENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory DisaggregationUSENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory DisaggregationKuniyasu Suzaki
 
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -yoyamasaki
 
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24Rescale Japan株式会社
 
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) Hiroshi Matsumoto
 
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...Insight Technology, Inc.
 
CloudStack Overview(OSC2012Kansai@Kyoto)
CloudStack Overview(OSC2012Kansai@Kyoto)CloudStack Overview(OSC2012Kansai@Kyoto)
CloudStack Overview(OSC2012Kansai@Kyoto)Satoshi Shimazaki
 
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra事例で学ぶApache Cassandra
事例で学ぶApache CassandraYuki Morishita
 
静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携Masaru Horioka
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)Akihiro Kuwano
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係Hiraku Komuro
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows AzureMicrosoft
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要Miho Yamamoto
 
Kubernetesを触ってみた
Kubernetesを触ってみたKubernetesを触ってみた
Kubernetesを触ってみたKazuto Kusama
 
Cld018 コンテナ go_~あなた
Cld018 コンテナ go_~あなたCld018 コンテナ go_~あなた
Cld018 コンテナ go_~あなたTech Summit 2016
 
Cld018 コンテナ go_~あなた
Cld018 コンテナ go_~あなたCld018 コンテナ go_~あなた
Cld018 コンテナ go_~あなたTech Summit 2016
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~decode2016
 

Similar to Cassandra Summit 2016 注目セッション報告 (20)

Guide to Cassandra for Production Deployments
Guide to Cassandra for Production DeploymentsGuide to Cassandra for Production Deployments
Guide to Cassandra for Production Deployments
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
AWS re:Invent2017で見た AWSの強さとは
AWS re:Invent2017で見た AWSの強さとは AWS re:Invent2017で見た AWSの強さとは
AWS re:Invent2017で見た AWSの強さとは
 
USENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory DisaggregationUSENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory Disaggregation
 
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -
 
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
LAMMPS クラウド活用勉強会説明資料(Rescale編) 2017/01/24
 
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
Windows Server 2019 の Hyper-Converged Infrastructure (HCI)
 
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...
[db tech showcase Tokyo 2016] D27: Next Generation Apache Cassandra by ヤフー株式会...
 
CloudStack Overview(OSC2012Kansai@Kyoto)
CloudStack Overview(OSC2012Kansai@Kyoto)CloudStack Overview(OSC2012Kansai@Kyoto)
CloudStack Overview(OSC2012Kansai@Kyoto)
 
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra事例で学ぶApache Cassandra
事例で学ぶApache Cassandra
 
静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows Azure
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows Azure
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要
 
Kubernetesを触ってみた
Kubernetesを触ってみたKubernetesを触ってみた
Kubernetesを触ってみた
 
Cld018 コンテナ go_~あなた
Cld018 コンテナ go_~あなたCld018 コンテナ go_~あなた
Cld018 コンテナ go_~あなた
 
Cld018 コンテナ go_~あなた
Cld018 コンテナ go_~あなたCld018 コンテナ go_~あなた
Cld018 コンテナ go_~あなた
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
 

More from Yahoo!デベロッパーネットワーク

ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかYahoo!デベロッパーネットワーク
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2Yahoo!デベロッパーネットワーク
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcYahoo!デベロッパーネットワーク
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo!デベロッパーネットワーク
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcYahoo!デベロッパーネットワーク
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtcYahoo!デベロッパーネットワーク
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcYahoo!デベロッパーネットワーク
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcYahoo!デベロッパーネットワーク
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcYahoo!デベロッパーネットワーク
 

More from Yahoo!デベロッパーネットワーク (20)

ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
 
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
 
LakeTahoe
LakeTahoeLakeTahoe
LakeTahoe
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability FeaturePersistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
 
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtceコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
 
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtcビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
 
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
 
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtcYahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
 
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
 

Cassandra Summit 2016 注目セッション報告

  • 1. Cassandra Meetup in Tokyo Fall 2016
  • 2. データ&サイエンスソリューション統括本部 データプラットフォーム本部 開発3部 部長 遠藤 禎士(えんどう ただし) 2012年にヤフーに中途入社 ちょうど5年目 広告のインフラを担当 2015年からデータインフラへ 自己紹介
  • 3. アジェンダ 1. Cassandra Summit 2016 keynote summary 2. SlowQuery 開発秘話 3. Cassandra Summit 2016 注目セッション報告 4. Cassandra 3.x の最新機能 5. Cassandra データモデリング 6. クロージング 7. 懇親会
  • 4. Cassandra Summit 2016 keynote summary Industry Standard Global Community
  • 5. Cassandra Summit 2016 keynote summary Industry Standard GlobalCommunity
  • 7. Sessions • Cassandra Internals: The Read Path • CQL performance with Apache Cassandra 3.0 • Myths of big partitions 7
  • 8. Cassandra Internals: The Read Path Tyler Hobbs: Datastax
  • 9. Cassandra Internals: The Read Path SELECT文発行時のCassanra内部処理の概要を解説 9
  • 10. Cassandra Internals: The Read Path 10 • ドライバ • プリペアドステートメント • DC/Token Aware Selection • コーディネーターノード • メトリクスによるレプリカ選択 • Speculative Retry • レプリカノード • SSTableファイルの選択・順序付け・検索終了 条件 • キャッシュ, インデックス 感想:C* 初心者の方も是非
  • 11. CQL performance with Apache Cassandra 3.0 Aaron Morton: The Last Pickle
  • 12. CQL performance with Apache Cassandra 3.0 • C*3.0の新ストレージエンジンの解説 12
  • 14. 従来のフォーマットの問題点 14 1. クラスタリングが反復 2. カラム名が反復 3. タイムスタンプが反復 4. エンコーディングが固定幅
  • 15. 従来のフォーマットの問題点 15 1. クラスタリングが反復 2. カラム名が反復 3. タイムスタンプが反復 4. エンコーディングが固定幅
  • 16. Pre 3.0 Storage Layout 16 1. クラスタリングが反復 2. カラム名が反復 3. タイムスタンプが反復 4. エンコーディングが固定幅
  • 17. Pre 3.0 Storage Layout 17 1. クラスタリングが反復 2. カラム名が反復 3. タイムスタンプが反復 4. エンコーディングが固定幅 Long
  • 18. 3.0 Storage Engine 18 SSTable Partition: part_a Row: cluster_a some foo and bar no baz Row: cluster_b some foo and bar no baz Partition>Row>Cell(カラム)の階層構造に変更
  • 19. 階層化 19 SSTable Partition: part_a Row: cluster_a some foo and bar no baz Row: cluster_b some foo and bar no baz クラスタリングの反復を排除
  • 20. Cell Bitmap 20 SSTable Partition: part_a Row: cluster_a some foo and bar no baz SSTableヘッダでカラム名に番号付け Rowは出現カラムをビットマップで管理 カラム名の反復を排除! columns: [foo, bar, baz... ] bitmap : 0|1|2...
  • 21. Variable Int • 時刻のエンコード形式をlong(8Byte)から可変長整数(VarInt)に変更 • 小さい数値は小さいサイズでエンコードできる。 • 127以下なら1Byte 21
  • 22. Delta Encoding • SSTableヘッダにminTimestampを格納する • Timestampを、絶対時刻からminTimestamp からの相対時刻表現に変更する • VarIntと合わせてデータ量が削減 22 SSTable Partition: part_a minTimestamp: t1 Row: cluster_a some foo varint(t2 - t1) and bar varint(t2 - t1) no baz varint(t3 - t1)
  • 23. Aggregated Cell Metadata • RowレベルのTimestampを導入 • CellレベルのTimestampがRowレベルと同じ 場合は省略する 23 SSTable Partition: part_a Row: cluster_a some foo and bar no baz t3 timestamp: t2
  • 25. Myths of big partitions Robert Stupp: DataStax
  • 26. Myths of big partitions • Big Partition • パーティション内に大量のRow • CASSANDRA-11206 (C*3.6) • Big Partition問題を緩和するコミッ ト • 何が問題だったのか? • 何を改善したのか? 26
  • 27. Big Partition Issue • SSTableは BloomFilter, Summary, Index, Data などのファイルで構成 • DataファイルにはRowのデータが格納 • IndexファイルにはDataファイルの全てのパーティションへのオフセットが格納 • 一定間隔でサンプリングされたRowのオフセット位置を示すIndexInfoも格納 27
  • 28. Big Partition Issue 28 READ時処理手順 1. Indexから目的のパーティションを見つける 2. 目的のクラスタリングに近いIndexInfoを見つける 3. Dataファイルを読みに行く
  • 29. Big Partition Issue 29 READ時処理手順 1. Indexから目的のパーティションを見つける 2. 目的のクラスタリングに近いIndexInfoを見つける 3. Dataファイルを読みに行く パーティション内の全ての IndexInfoをヒープにロードしている
  • 30. Big Partition Issue • 2GBのパーティションの場合、32,768 IndexInfo (42万Java Objects) • GCプレッシャーが高まり不安定に • バイナリサーチにより 15 IndexInfoしか使わないのに。無駄! 30
  • 31. CASSANDRA-11206 • 一定サイズを超過するIndexInfoはロードせず、ディスクアクセスするよう変更 • column_index_cache_size_in_kb (default: 2) • GCプレッシャーが大幅に削減され、高速化 • 10個の15GBパーティションをコンパクションしても問題なかった 31
  • 34. CASSANDRA-12731 • 帰国後、#11206パッチに無駄なIndexInfo配列のアロケーションを発見 • 削除したところ2,30%ほど高速化 • パッチを送ったらマージしてもらえたので、3.10に入ります 😀 • 感想 • 早く3.x入れたい!! Production Readyはいつ…? 34
  • 36. 36 概要 • 運用、チューニング、利用事例に関連するセッションを中心に参 加 • 下記のセッションを紹介します • Tuning Speculative Retries to Fight Latency, Netflix • C* Capacity - Planning and Forecasting at scale, Netflix • How we built user specific search using C* without Solr, Sony • Always On: Building Highly Available Applications on Cassandra, The Weather Company (IBM)
  • 37. Tuning Speculative Retries to Fight Latency, Netflix
  • 38. 38 Tuning Speculative Retries to Fight Latency, Netflix > DESCRIBE TABLE system.local CREATE TABLE system.local ( key text PRIMARY KEY, bootstrapped text, ... truncated_at map<uuid, blob> ) WITH bloom_filter_fp_chance = 0.01 AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' AND comment = 'information about the local node' AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'} AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'} AND dclocal_read_repair_chance = 0.0 AND default_time_to_live = 0 AND gc_grace_seconds = 0 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 3600000 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99.0PERCENTILE'; Speculative retryの説明と実験結果の話 この設定 →レイテンシが設定値を超えた場合に追加のノードにデータを取得しにいく機能
  • 39. • Cassandra: 12nodes(8cores/60GB RAM) / 120GB data per node • Client: 6 (8cores/30GB RAM) • tcコマンドで1ノードにパケット遅延を発生させネットワーク障害を シミュレート 39 Tuning Speculative Retries to Fight Latency, Netflix 実験
  • 40. 40 Tuning Speculative Retries to Fight Latency, Netflix Speculative Retry なし 95percentile スループット 50K reads/sec, 3K writes/sec 30K reads/secに低下 write 言及なし 平均レイテンシ 0.5ms 1ms 95th/99th レイテンシ スパイクが2~10倍に増加 • 高負荷な場合 Speculative Retry なし 95percentile スループット 18K reads/sec, 1K writes/sec 20+K reads/secに増加 write 言及なし 平均レイテンシ 0.5ms 1ms 95th/99th レイテンシ レイテンシ低下 スパイクなし、安定 • 低負荷な場合 →キャパシティを余分に確保しSpeculative Retryを有効にすることで95/99thレイテンシが改善 キャパシティに余裕が無いとパフォーマンスは悪化する可能性があるので注意する
  • 41. C* Capacity - Planning and Forecasting at scale, Netflix
  • 42. C* Capacity - Planning and Forecasting at scale, Netflix • Metrics → Atlas → pagerduty • メトリクス間の複雑な関係のチェックができない • ハードウェア障害による誤検知が発生する • Winston • Atlas→Winston→pagerduty • メトリクス間の関係性をチェック • 誤検知を削減 • http://techblog.netflix.com/2016/08/introducing-winston-event- driven.html 42
  • 43. C* Capacity - Planning and Forecasting at scale, Netflix • アラートを受けたときにはもう遅いかも →予測して事前に通知させたい • ARIMA(Auto Regressive Integrated Moving Average • : 自己回帰和分移動平均)モデルで予測して通知 43 →
  • 44. How we built user specific search using C* without Solr, Sony
  • 45. How we built user specific search using C* without Solr, Sony • 購入履歴のデータは複数のサービスからリアルタイムで必要とされた →高可用性、速さ、スケールのしやすさが必要 →RDBの前にC*を置いて解決 • しかしCQLではJoin、トランザクション、検索ができない • 各ユーザのデータに対するクエリがほとんどだった→joinはできなくても大丈夫 →購入履歴を非正規化してjson形式でCassandraに保持 主キーはアカウント、一つの購入履歴が1つのカラム 45 PlayStation StoreのRDBに対するクエリの一部をCassandraで受ける 話 Account1 Json 1 Json 2 …. Json n クエリをから要件を確認
  • 46. 46 How we built user specific search using C* without Solr, Sony 検索、ソート、フィルタはどのように実現するか? • セカンダリインデックス →スケールしない、いろいろつらい • データをすべてロードしてメモリ内で処理 →できなことはない • Solr →ユースケースに合わない
  • 47. 47 How we built user specific search using C* without Solr, Sony Account1 Json 1 Json n Version ユーザ毎にLuceneでインデックスを作成しCassandraに格納 • 行内のすべてを検索できる • インデックスのサイズも小さい • クエリのたびにインデックスを引くのは非効率 • 同じ行に異なるサーバから書き込まれると? しかし
  • 48. 48 How we built user specific search using C* without Solr, Sony Account 1 Version Account 2 Version Account 3 Version Account 4 Version Account 5 Version Account 6 Version Account1 jsons Version Account2 jsons Version Account3 jsons Version Account4 jsons Version Account5 jsons Version …. … … … Account n jsons Version Instance 1 Instance 2 Instance 3 Cassandra Cassandraの前に分散キャッシュを置いて解決
  • 49. Always On: Building Highly Available Applications on Cassandra, The Weather Company (IBM)
  • 50. Always On: Building Highly Available Applications on Cassandra, The Weather Company (IBM) • トポロジーの設定 • 一つのラックにすべてノードを置かない • Multi-DCクラスタにおいて非LocalなConsistency Levelは避ける等 • Cassandraに適したデータモデル • 主キーが異なるデータをまとめて書き込む際にbatchは使わない • 複数のパーティションにまたがるようなクエリを投げない等 • 監視で注目した方がよい点 • C*はSEDAなのでスレッドプールの状態に注意 • コンパションが遅れていないか • Size-TieredではSStableの数 • LeveledではL0のSStableの数 50 可用性を高めるためにするべきこと、するべきではないことが一通りまとめられてい る
  • 52. 概要 • Cassandra Summitでの弊社実績について講演 セッションは、C*の応用や仮想化などを中心に参加 • 下記のセッションを紹介します • Cassandra @ Yahoo, Yahoo! JAPAN • CassieQ: The distributed message queue built on cassandra, Curalate • Running Cassandra on Apache Mesos Across Multiple Datacenters at Uber, Uber 52
  • 53. Cassandra @ Yahoo, Yahoo! JAPAN • 弊社の運用課題、OSS貢献について講演 53
  • 54. CassieQ: The distributed message queue built on cassandra, Curalate • C*(Cassandra)ベースのMQ(MessageQueue)実装 54
  • 55. CassieQ: The distributed message queue built on cassandra, Curalate • C*ベースの利点 マスターレス、高可用性、高分散性など → アトミック処理実装には軽量トランザクションを利用 • C*ベースのMQは他にも … Netflix : Astyanax recipe Comcast : CMB → (ただし基本実装はRedis、永続化にC*を利用) 55
  • 56. CassieQ: The distributed message queue built on cassandra, Curalate • 関連セッション① : One Billion Black Friday Shoppers on a Distributed Data Store, Bazaarvoice EmoDB : C*ベースの高機能(SoR)データストア → スナップショット機能や、CRDTデータ型サポート 56
  • 57. CassieQ: The distributed message queue built on cassandra, Curalate • 今後、C*の分散基盤ソフトウェアとしての活用にも注目 • 関連セッション② : Clock Skew, and other annoying realities in distributed systems, PagerDuty → 分散システムとしてのC*の整合性、独立性、 原子性など動作についての講演 57 Master Slave Master Less
  • 58. Running Cassandra on Apache Mesos Across Multiple Datacenters at Uber, Uber • 発表者は元Google、 Borg(Kubernetes)論文の第一著者 • Mesos採用理由 高可用性、リソース抽象化、線形スケラビリティなど • C*採用理由 高可用性、水平スケラビリティ、低遅延など 58
  • 59. Running Cassandra on Apache Mesos Across Multiple Datacenters at Uber, Uber • Custom Seed Provider ノード増設時に既存Seedノード応答用のAPIを準備 59
  • 60. Running Cassandra on Apache Mesos Across Multiple Datacenters at Uber, Uber • Cassandra on Mesosの導入が進む? • 関連セッション① : Infrastructure for Fast Delivery, Mesosphere → Mesosphereによるベンダー講演 • 関連セッション② : Cassandra @ Yahoo, Yahoo! JAPAN → OpenStack Troveへの取り組み紹介 • 関連情報 : Thousand Instances of Cassandra using Kubernetes Pet Set 60
  • 61. Cassandra Meetup in Tokyo, Fall 2016 私たちと、いっしょに働きませんか? mailto : nosql-jobs@mail.yahoo.co.jp

Editor's Notes

  1. データプラットホームの後藤です。
  2. 僕は、Cassandraの実装周りに興味があったので、アーキテクチャ関係のセッションに重点的に参加してきました。 その中から特に印象深かった3セッションを紹介しようと思います。
  3. 最初に紹介したいのは、DataStaxのTyler Hobbsさんによる、Cassandra Internals: The Read Path のセッションです。 これは、ユーザーがCassandraにSELECT文を発行した時に、Cassandraどこで何が起こっているのかっていうのを解説したものです
  4. 例えばドライバであれば、コーディネーターノードを選んで、プリペアドステートメントを管理して、クエリを発行します、 それを受けたコーディネーターはどのような方法でレプリカノードを選択しているかとか、リトライはどうなっているのか、 さらにレプリカの中ではどのようにSSTableファイルにアクセスしているかというの、というのを解説しています。 感想としては、Cassandra利用者にとって大事なポイントを非常にわかりやすく説明しているので、初心者の方も是非ビデオを確認してもらいたいなと思いました。
  5. 次に、 Aaron Mortonさんの”CQL performance with Apache Cassandra 3.0”を紹介します。 これは、Cassandra 3.0ではSSTableに新しいストレージエンジンが採用され、高速かつ高効率になったんですが、 ファイルフォーマットがどう変わったのかというのを、3.0以前の実装と比較しながら説明されています。
  6. 従来のSSTableでテーブルが実際にどのようにSSTableに書かれるかというデータレイアウトを表現したのが右の図です。 クラスタリング値とカラムの名前をキーとした、KVS的なレイアウトになっています。 これはシンプルでよかったんですが、色々と無駄が多いと。
  7. どういうところが無駄かというと、 まず、全てのカラム値のキーとして、クラスタリング値が何回も書かれていて無駄です
  8. 同様の理由で、カラム名がRowごとに毎回書かれているとか、
  9. タイムスタンプがなんども出てくるとか
  10. 数値のエンコーディングが固定だとか。色々問題があります。
  11. Cassandra 3.0以降のストレージレイアウトでは、右図のように、パーティション、Row、カラムが階層構造を構成しています。
  12. 階層化されているので、クラスタリング値が全てのカラムで反復しません。
  13. SSTableのヘッダに、全てのカラム名のインデックスを格納して、Rowレベルでは出現カラムをビットマップで格納しているので、 カラム名が毎回書かれることがありません。
  14. タイムスタンプについて、まずはエンコード形式を8Byteのlong型から、VarIntという可変長整数に変更しました。 VarIntは、小さい数値は小さいサイズでエンコードできるという性質があり、たとえば127以下なら1Byteで済みます。
  15. そのVarIntとの合わせ技なんですが、 SSTableのヘッダに、最小のTimestampを格納します。 各カラムのTimestampを、ヘッダに書いた最小Timestampとの差分に変更することで、数値が小さくなるので、VarIntの性質によりデータ量が減ります。
  16. さらにTimeStampを減らす仕掛けが入っています。 Timestampって、ほとんどがInsert時にRow単位で同じ値が設定されるので、Row単位でまとめたTimestampというものを書いてしまって、 このタイムスタンプと同じTimestampの場合は省略する、という仕組みになっています。
  17. (ここまで4:51)
  18. 次は “Myths of big partition”を紹介します。 Big Partitionというのはパーティションキーの中に大量のRowが存在する状態のことで、Cassandraが不安定になるからまず避けろというデータモデリング上のアンチパターンにもなっています。 Cassandra 3.6で、この問題を緩和するコミットが入ったのですが、そのコミット作者のRobert Stuppさんが、 Big Partitionはなにが問題だったのか、3.6で何が改善されたのか、というのを解説しました。
  19. まず、CassandraのSSTableは主に、Bloom Filter, Summary, Index, Dataファイルで構成されていて、Dataファイルには全てのRowのデータが格納されています。 一方Indexファイルには、Dataファイルの全てのパーティションのオフセット位置情報と、64KB間隔でサンプリングされたパーティションのRowのオフセット位置を情報を含むIndexInfoも格納されています
  20. リード時は、Indexファイルから目的のパーティションのインデックスを見つけて、そこから目的のクラスタリングに近いIndexInfoを探し、 それからデータファイルを読みに行くわけですが、問題は、IndexInfoを見つけるとき、
  21. パーティション内の全てのIndexInfoをディスクからロードしているという点です。
  22. パーティションが大きい場合、たとえば2GBのパーティションの場合は3万2千個のIndexInfoがヒープにロードされます。 これはJava Objectでいうと42万オブジェクトにもなり、これだけの大量のオブジェクトが生成されることで、JVMのGCプレッシャーがやばいことになります。 このGCプレッシャーの高まりがCassandraの性能を落として、様々なオペレーションを困難にして、最悪OutOfMemoryエラーでノードごと落としてしまうということになります。 ですが、実際にはロードしたIndexInfoはバイナリサーチで検索されるので、実際にアクセスされるIndexInfoはたかだか15個程度です。 これは非常に無駄ですと。
  23. そこで、11206チケットでは、 IndexInfoを2KBまでしかヒープニロードせず、それ以上のサイズの場合は都度ディスクアクセスするように変更しました。 この変更によって、ヒープの使用量が減り、GCプレッシャーが削減され、ビッグパーティションのリードが大幅に高速化しました。 15GBのパーティションでも問題なかったそうです。
  24. さらに、Cassandra 4.xに向けて、Indexファイルのインデックスの持ち方自体を改良するチケットも進行中です。 僕も読んでますが、独特なファイルフォーマットになっていて面白いです。
  25. あと余談なんですが
  26. 帰国後、Robertのパッチを読んでいたら、一部に無駄な配列のアロケーションが残ってるのを見つけました。 試しに削除してみたらさらに2,30%くらい速くなったので、パッチを送ったところ、Robertにマージしてもらえたので、3.10ではもうちょっと速くなります。 はい、というわけで、3.x系早く投入したいので、早く安定して欲しいと思います。Production readyになるのはいつなんでしょうね…。 以上、後藤からのレポートでした。ありがとうございます。 (37s)
  27. Paper応募 Summitで講演してきました。 木本さんに助けて クラスタやトラフィック規模 OSS、星井 次世代インフラ - OpenStack Trove, Bare Metal Cluster
  28. 今回、Cassandra SummitでC*ベース .... 色々と紹介、その中の一つ
  29. 彼らの利点、なぜC*ベースにしたか スライドで簡単な紹介もありましたが
  30. MQだけでなく、他にもありました 題目を読む
  31. 今後も増える Uberセッション、Mesos マスターレスじゃない 題目を読む、 物理クロック、NTP ....
  32. 実演自体はコマンドラインで、スクリプトBash 注目としては、ノード増設時に問い合わせ 動的なAPI