SlideShare a Scribd company logo
Yahoo! JAPANにおける 
Apache Cassandraへの取り組み 
ヤフー株式会社 
システム統括本部プラットフォーム開発本部 
鄭 中翔
自己紹介 
• 鄭 中翔(てい ちゅうしょう) 
• 2013年新卒入社 
– 社内向けプラットフォームの運用担当 
• Cassandra歴1年5ヶ月 
• twitter: @zx_zheng 
2 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
発表内容 
• KVSチームの紹介 
• Yahoo! JAPANでのCassandra利用 
• 運用のはなし 
• 学んだこと 
• まとめ 
3 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
KVSチームの紹介 
4 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
KVSチームの紹介 
• ≒ Cassandraチーム 
• Dev 3人, Ops は1人相当 
• Yahoo! JAPANのサービスにCassandraを提供 
5 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
約30のサービスが利用中 
6 
etc.. 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
7 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
? Why Cassandra 
8 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
Why Cassandra 
• 入社したらあった 
• 汎用的に使えるNoSQLのプラットフォー 
ムがなかった 
– 特定の目的に特化した分散データベース 
– 汎用的には使いづらい 
– 運用コスト、初期導入コストが高い 
新しいNoSQLのプラットフォームが求められた 
9 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
Why Cassandra 
• NoSQLプラットフォームに対する要求 
– パフォーマンス 
– スケーラビリティ 
– 高い可用性 
– 運用のしやすさ、導入のしやすさ 
10 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
✔ 
高いパフォーマンス 
✔ 
優れたスケーラビリティ 
✔ 
SPOFが存在しない 
11 
Why Cassandra 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
Yahoo! JAPANでのCassandra利用 
12 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
• httpインターフェース 
• サービス共有環境 
• サービス専用環境 
13 
提供形態 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
運用環境 その1 
2013年5月~ httpインターフェース提供開始 
WebAPI 
thrift 
http 
etc.. 
Cassandra 
最近1.1.5→1.2.15へのバージョンアップを実施 14 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
httpインターフェース 
15 
• httpインターフェースを用意した理由 
– CQL 
• CQL2 は機能が不十分だった 
• CQL3 は beta だった(Ver. 1.1) 
– Thrift 
• 実装コストが高い 
• サービスに使ってもらう際の障壁になる可能性が 
ある 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止 
簡単に使える! ✔ 
httpインターフェース
httpインターフェース 
• httpインターフェースの課題 
– Cassandraの機能追加への対応コスト 
– パフォーマンスの低下 
• Cassandraが使いやすくなった 
– CQL3 
– 様々なドライバ 
✔ 
Cassandraに直接接続する選択肢も提供 
16 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
運用している環境 その2 
2014年8月~ Cassandra共有環境 提供開始 
Cassandra 
Thrift, CQL3 etc… 
17 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
運用している環境 その3 
大規模サービス向けに専用環境も提供 
etc… 
Cassandra 
なんとか 
18 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止 
Cassandra 
Thrift, CQL3 
Thrift, CQL3
運用中の環境 
Cassandra version 1.2.15, 2.0.5, 2.0.10 
Production clusters 9 
Production nodes > 200" 
Cluster size 6 ~ 40+" 
Total read / write of peak" 75kqps / 30kqps 
Data size about 1TB 
19 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
10 
9 
5倍 8 
9倍 
7 
6 
5 
4 
3 
2 
1 
0 
クラスタ数 
2013/11月 2014/11月 
250 
200 
150 
100 
50 
0 
ノード数 
2013/11月 2014/11月 
リクエスト数/秒 
120000 
100000 
80000 
60000 
40000 
20000 
0 
20倍 
2013/11月 2014/11月 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止 © 
Aflo 20
Hardware 
• CPU 
– 8cores ~ 12cores 
• Memory 
– 24GB or 64GB 
• Disk 
– SAS 300GB * 4 
• RAID 0 or RAID 10 
– そろそろSSDも… 
21 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
Configuration 
• Replication factor = 3 
• Consistency level 
– 基本はQUORUM 
– サービスによって異なる 
• vnode 
– 一部のクラスタで有効 
– 40台クラスタでnum_tokens = 32 
22 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
運用のはなし 
23 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
Operations 
• 監視 
– Nagios 
– Graphite + Grafana 
24 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
Grafana 
• イケてるUI 
• 導入が非常に容易 
• 頻繁な機能追加 
25 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
Operations 
• repair & compaction 
– cronで定期的に実施 
• OpsCenter 
– 社内環境と相性(?)が合わず現在未使用 L 
– 導入に向けて再検証中 
• 障害対応 
– 独自Webツールから 
26 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
障害対応ツール 
nodetoolコマンドの一部を実行可能 デモ 
27 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
Operations 
• 定期的にチェックする項目 
– リクエスト数 
– Read/Write latency 
– Java heap使用率 
• 1.1.5では時間経過とともに上昇し性能劣化 
• 1.2系以降では安定しているように見える 
– pending tasks 
– timeout数 
– Disk busy 
– クライアントとのコネクション数 
28 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
とある日の共有クラスタにおける 
クライアントとのコネクション数 
Cassandraの再起動を実施 
29 
クライアントのバグでコネクション数が激増 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
注意していること 
• 新サービスの利用開始時 
– コネクション数が異常に増えていないか 
– リクエスト数が異常に増えていないか 
• 99percentile latencyが悪化してないか 
– GC 
– Disk Busy 
– サービスごとの利用状態 
30 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
学んだこと 
31 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
nodetool cleanup is 大事 
32 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
nodetool cleanup is 大事 
nodetool cleanup … 
cleanup 
[keyspace][table] 
Triggers 
the 
immediate 
cleanup 
of 
keys 
no 
longer 
belonging 
to 
this 
node. 
This 
has 
roughly 
the 
same 
effect 
on 
a 
node 
that 
a 
major 
compaction 
does 
in 
terms 
of 
a 
temporary 
increase 
in 
disk 
space 
usage 
and 
an 
increase 
in 
disk 
I/O. 
Optionally 
takes 
a 
list 
of 
table 
names. 
ノードの増減などによりtoken 
rangeに変更が 
あった時に担当範囲外になったデータを 
cleanupによって削除します 
33 
✔ 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
nodetool cleanupをしないとどうなりま 
すか? 
無駄なデータがノードに残り続けます。 
34 
nodetool cleanup is 大事 
Q 
A 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
無駄なデータがノードに残り続けて 
最悪の場合削除したデータが復活します。 
35 
nodetool cleanup is 大事 
A 
nodetool cleanupをしないとどうなりま 
すか? 
無駄なデータがノードに残り続けます。 
Q 
A 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
前に削除したデータの一部が復活し 
てるけど何かしました? 
KVSチーム(ぼく達) 
サービス担当者 
なにもしてませんが調べてみます 
• repairはちゃんと実行していたので当初原因不明 
• 後にcleanupをしなかったことが原因だと判明 
36 
nodetool cleanup is 大事 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
37 
nodetool cleanup is 大事 
データ復活の順番 :データ 
1. データが保存されている(RF=3) 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
38 
nodetool cleanup is 大事 
:データ 
2. データを持っているノードをはずす 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
39 
nodetool cleanup is 大事 
:データ 
3. token range 変更によりデータも移動 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
40 
nodetool cleanup is 大事 
:ゴミデータ 
:データ 
4. はずしたノードを戻すと  →  になる 
本来は を削除するためにcleanupを実施 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
41 
nodetool cleanup is 大事 
delete 
:ゴミデータ 
5. データ  に削除リクエスト 
担当範囲になっているノードのみに届く 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
42 
nodetool cleanup is 大事 
:データJ 
:ゴミデータ 
6. しばらくするとデータが担当ノードから 
実際に削除される  
 は残ったままだが参照はできない 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
43 
nodetool cleanup is 大事 
:データJ 
:ゴミデータ 
7. データを持っていたノードを再びはずす 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
44 
nodetool cleanup is 大事 
:データL 
8. token range 変更 
  →  に昇格しデータを参照可能になる 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
45 
nodetool cleanup is 大事 
:データLLL 
9. repairにより全ノードにデータ復活 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
ノードの増減時にcleanupをしないと 
忘れた頃に削除したデータが復活する 
ことがあります 
46 
nodetool cleanup is 大事 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
ちゃんとしているとは思いますが… 
cleanupしましょう 
47 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
まとめ 
48 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
まとめ 
• Yahoo! JAPANにおけるApache 
Cassandraの利用は爆速で拡大しています 
• cleanupはちゃんとやりましょう 
• 運用は“わかっていれば”結構楽です 
– 普段の運用業務だけなら1,2人で回っています 
49 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
今後の予定 
• Cassadra2.1系の導入 
• SSD検証、本番投入 
• 1.2系→2.0系へのバージョンアップ 
• 今後も利用は拡大していきます 
– 大きい案件が複数進行中 
– データ量が一気に増える予感 
• DataStaxへの要望 
– PHPのドライバをDataStaxで出してほしい 
なぁ 
50 
Copyright 
(C) 
2014 
Yahoo 
Japan 
Corporation. 
All 
Rights 
Reserved. 
無断引用・転載禁止
ご清聴ありがとうございました 
❤ 
51

More Related Content

Yahoo! JAPANにおけるApache Cassandraへの取り組み

  • 1. Yahoo! JAPANにおける Apache Cassandraへの取り組み ヤフー株式会社 システム統括本部プラットフォーム開発本部 鄭 中翔
  • 2. 自己紹介 • 鄭 中翔(てい ちゅうしょう) • 2013年新卒入社 – 社内向けプラットフォームの運用担当 • Cassandra歴1年5ヶ月 • twitter: @zx_zheng 2 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 3. 発表内容 • KVSチームの紹介 • Yahoo! JAPANでのCassandra利用 • 運用のはなし • 学んだこと • まとめ 3 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 4. KVSチームの紹介 4 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 5. KVSチームの紹介 • ≒ Cassandraチーム • Dev 3人, Ops は1人相当 • Yahoo! JAPANのサービスにCassandraを提供 5 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 6. 約30のサービスが利用中 6 etc.. Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 7. 7 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 8. ? Why Cassandra 8 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 9. Why Cassandra • 入社したらあった • 汎用的に使えるNoSQLのプラットフォー ムがなかった – 特定の目的に特化した分散データベース – 汎用的には使いづらい – 運用コスト、初期導入コストが高い 新しいNoSQLのプラットフォームが求められた 9 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 10. Why Cassandra • NoSQLプラットフォームに対する要求 – パフォーマンス – スケーラビリティ – 高い可用性 – 運用のしやすさ、導入のしやすさ 10 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 11. ✔ 高いパフォーマンス ✔ 優れたスケーラビリティ ✔ SPOFが存在しない 11 Why Cassandra Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 12. Yahoo! JAPANでのCassandra利用 12 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 13. • httpインターフェース • サービス共有環境 • サービス専用環境 13 提供形態 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 14. 運用環境 その1 2013年5月~ httpインターフェース提供開始 WebAPI thrift http etc.. Cassandra 最近1.1.5→1.2.15へのバージョンアップを実施 14 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 15. httpインターフェース 15 • httpインターフェースを用意した理由 – CQL • CQL2 は機能が不十分だった • CQL3 は beta だった(Ver. 1.1) – Thrift • 実装コストが高い • サービスに使ってもらう際の障壁になる可能性が ある Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 簡単に使える! ✔ httpインターフェース
  • 16. httpインターフェース • httpインターフェースの課題 – Cassandraの機能追加への対応コスト – パフォーマンスの低下 • Cassandraが使いやすくなった – CQL3 – 様々なドライバ ✔ Cassandraに直接接続する選択肢も提供 16 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 17. 運用している環境 その2 2014年8月~ Cassandra共有環境 提供開始 Cassandra Thrift, CQL3 etc… 17 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 18. 運用している環境 その3 大規模サービス向けに専用環境も提供 etc… Cassandra なんとか 18 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 Cassandra Thrift, CQL3 Thrift, CQL3
  • 19. 運用中の環境 Cassandra version 1.2.15, 2.0.5, 2.0.10 Production clusters 9 Production nodes > 200" Cluster size 6 ~ 40+" Total read / write of peak" 75kqps / 30kqps Data size about 1TB 19 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 20. 10 9 5倍 8 9倍 7 6 5 4 3 2 1 0 クラスタ数 2013/11月 2014/11月 250 200 150 100 50 0 ノード数 2013/11月 2014/11月 リクエスト数/秒 120000 100000 80000 60000 40000 20000 0 20倍 2013/11月 2014/11月 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 © Aflo 20
  • 21. Hardware • CPU – 8cores ~ 12cores • Memory – 24GB or 64GB • Disk – SAS 300GB * 4 • RAID 0 or RAID 10 – そろそろSSDも… 21 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 22. Configuration • Replication factor = 3 • Consistency level – 基本はQUORUM – サービスによって異なる • vnode – 一部のクラスタで有効 – 40台クラスタでnum_tokens = 32 22 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 23. 運用のはなし 23 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 24. Operations • 監視 – Nagios – Graphite + Grafana 24 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 25. Grafana • イケてるUI • 導入が非常に容易 • 頻繁な機能追加 25 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 26. Operations • repair & compaction – cronで定期的に実施 • OpsCenter – 社内環境と相性(?)が合わず現在未使用 L – 導入に向けて再検証中 • 障害対応 – 独自Webツールから 26 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 27. 障害対応ツール nodetoolコマンドの一部を実行可能 デモ 27 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 28. Operations • 定期的にチェックする項目 – リクエスト数 – Read/Write latency – Java heap使用率 • 1.1.5では時間経過とともに上昇し性能劣化 • 1.2系以降では安定しているように見える – pending tasks – timeout数 – Disk busy – クライアントとのコネクション数 28 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 29. とある日の共有クラスタにおける クライアントとのコネクション数 Cassandraの再起動を実施 29 クライアントのバグでコネクション数が激増 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 30. 注意していること • 新サービスの利用開始時 – コネクション数が異常に増えていないか – リクエスト数が異常に増えていないか • 99percentile latencyが悪化してないか – GC – Disk Busy – サービスごとの利用状態 30 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 31. 学んだこと 31 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 32. nodetool cleanup is 大事 32 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 33. nodetool cleanup is 大事 nodetool cleanup … cleanup [keyspace][table] Triggers the immediate cleanup of keys no longer belonging to this node. This has roughly the same effect on a node that a major compaction does in terms of a temporary increase in disk space usage and an increase in disk I/O. Optionally takes a list of table names. ノードの増減などによりtoken rangeに変更が あった時に担当範囲外になったデータを cleanupによって削除します 33 ✔ Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 34. nodetool cleanupをしないとどうなりま すか? 無駄なデータがノードに残り続けます。 34 nodetool cleanup is 大事 Q A Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 35. 無駄なデータがノードに残り続けて 最悪の場合削除したデータが復活します。 35 nodetool cleanup is 大事 A nodetool cleanupをしないとどうなりま すか? 無駄なデータがノードに残り続けます。 Q A Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 36. 前に削除したデータの一部が復活し てるけど何かしました? KVSチーム(ぼく達) サービス担当者 なにもしてませんが調べてみます • repairはちゃんと実行していたので当初原因不明 • 後にcleanupをしなかったことが原因だと判明 36 nodetool cleanup is 大事 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 37. 37 nodetool cleanup is 大事 データ復活の順番 :データ 1. データが保存されている(RF=3) Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 38. 38 nodetool cleanup is 大事 :データ 2. データを持っているノードをはずす Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 39. 39 nodetool cleanup is 大事 :データ 3. token range 変更によりデータも移動 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 40. 40 nodetool cleanup is 大事 :ゴミデータ :データ 4. はずしたノードを戻すと  →  になる 本来は を削除するためにcleanupを実施 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 41. 41 nodetool cleanup is 大事 delete :ゴミデータ 5. データ  に削除リクエスト 担当範囲になっているノードのみに届く Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 42. 42 nodetool cleanup is 大事 :データJ :ゴミデータ 6. しばらくするとデータが担当ノードから 実際に削除される   は残ったままだが参照はできない Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 43. 43 nodetool cleanup is 大事 :データJ :ゴミデータ 7. データを持っていたノードを再びはずす Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 44. 44 nodetool cleanup is 大事 :データL 8. token range 変更   →  に昇格しデータを参照可能になる Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 45. 45 nodetool cleanup is 大事 :データLLL 9. repairにより全ノードにデータ復活 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 46. ノードの増減時にcleanupをしないと 忘れた頃に削除したデータが復活する ことがあります 46 nodetool cleanup is 大事 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 47. ちゃんとしているとは思いますが… cleanupしましょう 47 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 48. まとめ 48 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 49. まとめ • Yahoo! JAPANにおけるApache Cassandraの利用は爆速で拡大しています • cleanupはちゃんとやりましょう • 運用は“わかっていれば”結構楽です – 普段の運用業務だけなら1,2人で回っています 49 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
  • 50. 今後の予定 • Cassadra2.1系の導入 • SSD検証、本番投入 • 1.2系→2.0系へのバージョンアップ • 今後も利用は拡大していきます – 大きい案件が複数進行中 – データ量が一気に増える予感 • DataStaxへの要望 – PHPのドライバをDataStaxで出してほしい なぁ 50 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止