Weitere ähnliche Inhalte Ähnlich wie [db tech showcase Tokyo 2015] C32:「データ一貫性にこだわる日立のインメモリ分散KVS~こだわりの理由と実現方法とは~」 by 株式会社日立製作所 情報・通信システム社 和田洋祐 (20) Mehr von Insight Technology, Inc. (20) Kürzlich hochgeladen (12) [db tech showcase Tokyo 2015] C32:「データ一貫性にこだわる日立のインメモリ分散KVS~こだわりの理由と実現方法とは~」 by 株式会社日立製作所 情報・通信システム社 和田洋祐2. © Hitachi, Ltd. 2015. All rights reserved.
自己紹介
1
和田 洋祐(わだ ようすけ)
2010年度入社
ミドルウェア設計・開発
分散KVS歴 3年
COBOL歴 2年
3. © Hitachi, Ltd. 2015. All rights reserved.
1. 分散KVSとは何か
2. 分散KVSの悩み事 【一貫性】
3.一貫性へのこだわりと実現方法
Contents
2
5. © Hitachi, Ltd. 2015. All rights reserved.
分散KVS、簡単に言えば・・・
4
RDBと同じ、「データを管理するソフトウエア」
だけど、RDBではない。
KVSというデータ構造を持つ
RDB 分散KVS
KVS = Key Value Store
データ管理 データ管理
Table
Table
Table
Key Value
Key Value
Key Value
Key Value
Key Value
6. © Hitachi, Ltd. 2015. All rights reserved.
登場の背景
5
データ管理と言えばRDB
RDB
システムの
データ
システムの
データ
システムの
データ
7. © Hitachi, Ltd. 2015. All rights reserved.
システムの
データシステムの
データ
システムの
データ
登場の背景
6
RDB
システムの
データ
システムの
データ
システムの
データ
システムの
データ
Table
Table
Table
Table
複雑化する
テーブル
大量リクエスト
スケールアップ
の限界
求められる
耐障害性
大量データ システム開発の
短期化
データ管理と言えばRDB
8. © Hitachi, Ltd. 2015. All rights reserved.
登場の背景
7
システムの
データ
システムの
データ
システムの
データ
システムの
データ
システムの
データ
システムの
データ
KVS KVS KVS
KVS
RDBを補う形で分散KVSは登場した。
クラスタリング
9. © Hitachi, Ltd. 2015. All rights reserved.
分散KVSの具体的な特徴
8
高スループット
スケーラビリティ
高可用性
10. © Hitachi, Ltd. 2015. All rights reserved.
高スループット
9
各サーバで分散処理する
A aaa
write
write
write
write B
write A
write C
B bbb
C ccc
11. © Hitachi, Ltd. 2015. All rights reserved.
スケーラビリティ
10
簡単にスケールアウトできる
A aaa
D ddd
B bbb
C ccc
write B
write A
write C
write D
12. © Hitachi, Ltd. 2015. All rights reserved.
高可用性
11
障害が起きても、他のサーバで業務継続
A aaa
C ccc
D ddd
D ddd
B bbb
A aaa
C ccc
B bbb
同じデータを
複数サーバで保持する
get D
13. © Hitachi, Ltd. 2015. All rights reserved.
A aaa
C ccc
D ddd
D ddd
B bbb
A aaa
C ccc
B bbb
高可用性
12
障害が起きても、他のサーバで業務継続
マシンが壊れても
他のマシンからデータが
取れる。
♪
get D
14. © Hitachi, Ltd. 2015. All rights reserved.
分散KVSの使われ方
13
RDB
バッファ キャッシュ
メッセージング ストア
write read
add take update
高可用性を活かした構成
高スループットを活かした構成
update
15. © Hitachi, Ltd. 2015. All rights reserved.
具体例:コンテンツキャッシュ
14
HITACHI Net Shopp ing
商品DB
DBのキャッシュとして,大量アクセスに対応
ECサイト分散KVS
16. © Hitachi, Ltd. 2015. All rights reserved.
具体例:センサーデータバッファリング
15
1000万超の検針装置から数分おきにデータ発信
検針装置 電力会社分散KVS
17. © Hitachi, Ltd. 2015. All rights reserved.
携帯電話
具体例:高速メッセージング
16
メールサーバ1台あたり、1時間に1300万通
管理システム分散KVS
18. © Hitachi, Ltd. 2015. All rights reserved.
具体例:無停止基幹システム
17
搬入
分散KVS
管理
配送
物流センターの業務無停止化
19. © Hitachi, Ltd. 2015. All rights reserved.
分散KVSとは何か -まとめ-
18
ビッグデータ時代のデータ管理製品
高スループット・スケーラビリティ・高可用性
KVS構造でも使い方は多種多様
21. © Hitachi, Ltd. 2015. All rights reserved.
データの一貫性ってどういうこと?
20
分散したデータの内容が同じであること
C ccc
D ddd
D ddd
A aaawrite D
get D
22. © Hitachi, Ltd. 2015. All rights reserved.
一貫性って当たり前じゃないの?
21
対策しないと簡単に崩れます
23. © Hitachi, Ltd. 2015. All rights reserved.
難関:ダウンの誤検知
22
通信が
できない?
ダウン?Write A=bbb
A aaa
A aaa
Aを更新
します
スプリットブレインが起きたとき・・・
A aaa
24. © Hitachi, Ltd. 2015. All rights reserved.
難関:ダウンの誤検知
23
Write A=bbb
Write A=ccc
Aの処理
は引き継
ぎます。
A bbb
A ccc
A aaa
他から
応答が
来ない?
スプリットブレインが起きたとき・・・
25. © Hitachi, Ltd. 2015. All rights reserved.
難関:ダウンの誤検知
24
Write A=bbb
Write A=ccc
Aはこっちの
担当だよ?
引き継ぎ
済みですよ?
A bbb
A ccc
A ???
どっちを
信じれば・・
バチバチ
26. © Hitachi, Ltd. 2015. All rights reserved.
一貫性には強度がある
25
結果整合性 強一貫性
強弱 一貫性の強度
27. © Hitachi, Ltd. 2015. All rights reserved.
結果整合性
26
A a1 A a2
データがずれることを許容
A a1 A a2
今どんな
感じ?
Aがズレて
ますね
A a2 A a2
互いに確認して修正
いつかは一致する
28. © Hitachi, Ltd. 2015. All rights reserved.
中間的な一貫性
27
A a1 A a1
安定状態で一貫性あり
A a1 A a1
苦手なパターンの障害が発生すると
A a2 A a3
ずれてしまうことがある
相手と
通信できない
ダウンしたの
かな?
29. © Hitachi, Ltd. 2015. All rights reserved.
強一貫性
28
A a1 A a1
安定状態で一貫性あり
A a1 A a1
A a2 A a2
ずれることはない
様々なパターンの障害が発生しても
30. © Hitachi, Ltd. 2015. All rights reserved.
一貫性には強度がある
29
崩れても良い
いつか一致する。
苦手な障害で
崩れてしまう。
多様な障害でも
一貫性あり。
結果整合性 強一貫性
強弱 一貫性の強度
31. © Hitachi, Ltd. 2015. All rights reserved.
一貫性が崩れるとどうなるの? (ケース1)
30
A ---
C ---
D M
B ---
C ---
B ---
♪
write D Nさん
たとえばECサイトで予約するとき・・・
D N
A ---
HITACHI Net Shopp ing
Nさん
♪
Mさん
write D Mさん
商品D
限定1名様
32. © Hitachi, Ltd. 2015. All rights reserved.
一貫性が崩れるとどうなるの? (ケース1)
31
A ---
C ---
D M
B ---
C ---
B ---
異なるデータが格納されてしまう。
D N
A ---
HITACHI Net Shopp ing
どっちが
正しいの?
管理者Lさん
get D
商品D
限定1名様
33. © Hitachi, Ltd. 2015. All rights reserved.
一貫性が崩れるとどうなるの? (ケース2)
32
A ---
C ---
D ---
B ---
C ---
B ---
♪
write D Nさん
たとえばECサイトで予約するとき・・・
D N
A ---
HITACHI Net Shopp ing
Nさん
商品D
限定1名様
34. © Hitachi, Ltd. 2015. All rights reserved.
D N
A ---
一貫性が崩れるとどうなるの? (ケース2)
33
A ---
C ---
D ---
B ---
C ---
B ---
不整合な時に障害が起きると
HITACHI Net Shopp ing
商品D
限定1名様
35. © Hitachi, Ltd. 2015. All rights reserved.
A ---
D N
一貫性が崩れるとどうなるの? (ケース2)
34
A ---
C ---
D ---
B ---
C ---
B ---
♪
get D
HITACHI Net Shopp ing
Mさん
商品D
限定1名様
情報が消えてしまう。
36. © Hitachi, Ltd. 2015. All rights reserved.
一貫性には強度がある
35
崩れても良い
いつか一致する。
苦手な障害で
崩れてしまう。
多様な障害でも
一貫性あり。
性能 速極速
メール
チケット予約
課金システム
コンテンツキャッシュ
センサー監視
得意分野
結果整合性 強一貫性
強弱 一貫性の強度
37. © Hitachi, Ltd. 2015. All rights reserved.
分散KVSの悩み事 【一貫性】 -まとめ-
36
一貫性とは、分散したデータが揃っていること
一貫性にも強度がある(結果整合性 ~ 強一貫性)
強度ごとに適材適所がある。
強度が強いほど,多様なシステムに適用しやすい。
40. © Hitachi, Ltd. 2015. All rights reserved.
一貫性が崩れるとどうなるの? (ケース1)
39
A ---
C ---
D M
B ---
C ---
B ---
異なるデータが格納されてしまう。
D N
A ---
HITACHI Net Shopp ing
どっちが
正しいの?
管理者Lさん
get D
商品D
限定1名様
41. © Hitachi, Ltd. 2015. All rights reserved.
A ---
D N
一貫性が崩れるとどうなるの? (ケース2)
40
A ---
C ---
D ---
B ---
C ---
B ---
♪
get D
HITACHI Net Shopp ing
Mさん
商品D
限定1名様
情報が消えてしまう。
42. © Hitachi, Ltd. 2015. All rights reserved.
一貫性が崩れる原因
41
Write A=bbb
Write A=ccc
Aの処理
は引き継
ぎます。
A bbb
A ccc
A aaa
他から
応答が
来ない?
43. © Hitachi, Ltd. 2015. All rights reserved.
一貫性には強度がある
42
結果整合性 強一貫性
強弱 一貫性の強度
崩れても良い
いつか一致する。
苦手な障害で
崩れてしまう。
多様な障害でも
一貫性あり。
性能 速極速
メール
チケット予約
課金システム
コンテンツキャッシュ
センサー監視
得意分野
44. © Hitachi, Ltd. 2015. All rights reserved.
日立の分散KVSへの取り組み
43
Big Data
モノ の発信
人 の発信
電力メーター
運行情報
カーナビ
GPS
監視映像
環境・気象データ
設備監視
物流トレース
ICカード利用
診断画像・
電子カルテ
データベース
メール・オフィス文書
つぶやき
SNS
通話ログ
スマートフォン
人の移動
ネット購入
コンテンツダウンロード
動画・画像・音声
データ不整合によるシステムトラブルは許容されない
45. © Hitachi, Ltd. 2015. All rights reserved.
日立の分散KVSへの取り組み
44
強一貫性の分散KVS
EADS
(Hitachi Elastic Application Data Store)
46. © Hitachi, Ltd. 2015. All rights reserved.
強一貫性 の 実現方法
45
分散合意アルゴリズム
Paxos
47. © Hitachi, Ltd. 2015. All rights reserved.
分散合意アルゴリズムとは?
46
みんなで「やることを決める」ための仕組み
Write A=bbb Write A=ccc
Aのデータを
cccに更新しよう
A bbb A ccc
Aのデータを
bbbに更新しよう
それぞれが,勝手に「やることを決める」と・・・
一貫性は崩れる
48. © Hitachi, Ltd. 2015. All rights reserved.
分散合意アルゴリズムとは?
47
みんなで「やることを決める」ための仕組み
Write A=bbb Write A=ccc
Aの件,
了解しました。
A bbb A bbb
Aのデータを
bbbにしたい
あらかじめ,更新内容を決めてから実行すれば
一貫性は保たれる
49. © Hitachi, Ltd. 2015. All rights reserved.
そんなに難しいこと?
48
テレビ会議をイメージしてください。
ちゃんと決定できますか?
network
通信到着順序は
各人でバラバラ
急用で席を
外す人もいる
通信が
途切れる
複数人が
発言する
50. © Hitachi, Ltd. 2015. All rights reserved.
そんなに難しいこと?
49
テレビ会議をイメージしてください。
ちゃんと決定できますか?
networkそば
牛丼
パスタ電話中
通信到着順序は
各人でバラバラ
急用で席を
外す人もいる
通信が
途切れる
複数人が
発言する
51. © Hitachi, Ltd. 2015. All rights reserved.
Paxosはどのように「決定」しているのか
50
更新内容と順序を多数決
決定内容の補完
事前の進捗確認
52. © Hitachi, Ltd. 2015. All rights reserved.
更新内容と順序を「提案」する
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
51
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
するよ!
53. © Hitachi, Ltd. 2015. All rights reserved.
決定は過半数承認(多数決)で行う
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
52
[1] write A
承認!
[1] write A
するよ!
Slave
Slave
Master
[1] write A
承認!
A ---
A ---
A ---
54. © Hitachi, Ltd. 2015. All rights reserved.
承認した内容は覚えておく。
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
53
[1] write A
承認!
[1] write A
するよ!
Slave
Slave
Master
[1] write A
承認!
[1] write A
[1] write A
[1] write A
A ---
A ---
A ---
55. © Hitachi, Ltd. 2015. All rights reserved.
多数決を勝ち取ったら「決定」したことを通知する。
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
54
[1] は決定
しました
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
[1] write A
[1] write A
56. © Hitachi, Ltd. 2015. All rights reserved.
通知を受けたら更新内容を反映する。
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
55
Slave
Slave
Master
A data
A data
A data
[1] write A
[1] write A
[1] write A
57. © Hitachi, Ltd. 2015. All rights reserved.
もし障害が起きていたら・・・
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
56
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
するよ!
58. © Hitachi, Ltd. 2015. All rights reserved.
他が承認してくれるので,「決定」できる。
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
57
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
承認!
[1] write A
するよ!
[1] write A
承認!
59. © Hitachi, Ltd. 2015. All rights reserved.
承認した内容を覚えておく。
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
58
[1] write A
承認!
[1] write A
するよ!
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
承認![1] write A
[1] write A
[1] write A
60. © Hitachi, Ltd. 2015. All rights reserved.
多数決を勝ち取って「決定」したことを通知する。
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
59
[1] は決定
しました
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
[1] write A
[1] write A
61. © Hitachi, Ltd. 2015. All rights reserved.
更新を反映する。
EADS2
EADS3
EADS4
EADS5
EADS1
更新内容と順序を多数決
60
Slave
Slave
Master
A data
A data
A ---
[1] write A
[1] write A
[1] write A
62. © Hitachi, Ltd. 2015. All rights reserved.
更新内容と順序を多数決
61
Paxosは過半数承認で決定するから,
一部障害では止まらない。
63. © Hitachi, Ltd. 2015. All rights reserved.
障害から回復したら・・
EADS2
EADS3
EADS4
EADS5
EADS1
決定内容の補完
62
Slave
Slave
Master
A data
A data
A ---
[1] write A
[1] write A
[1] write A
[2] change A
するよ!
※末尾に
2を付ける
64. © Hitachi, Ltd. 2015. All rights reserved.
新しい更新の多数決に参加する
EADS2
EADS3
EADS4
EADS5
EADS1
決定内容の補完
63
Slave
Slave
Master
A data
A data
A ---
[1] write A
[1] write A
[1] write A
[2] change A
するよ!
[2] change A
承認!
[2] change A
承認!
65. © Hitachi, Ltd. 2015. All rights reserved.
承認した内容を覚える
EADS2
EADS3
EADS4
EADS5
EADS1
決定内容の補完
64
Slave
Slave
Master
A data
A data
A ---
[1] write A
[1] write A
[2] change A
[1] write A
[2] change A
[2] change A
するよ!
[2] change A
承認!
[2] change A
承認!
[2] change A
66. © Hitachi, Ltd. 2015. All rights reserved.
多数決を勝ち取って「決定」したことを通知する。
EADS2
EADS3
EADS4
EADS5
EADS1
決定内容の補完
65
[2] は決定
しました
Slave
Slave
Master
A data
A data
A ---
[1] write A
[1] write A
[2] change A
[1] write A
[2] change A
[2] change A
67. © Hitachi, Ltd. 2015. All rights reserved.
更新を反映しようとするけど・・・
EADS2
EADS3
EADS4
EADS5
EADS1
決定内容の補完
66
Slave
Slave
Master
A data2
A data2
A ---
[1] write A
[1] write A
[2] change A
[1] write A
[2] change A
[2] change A
あれ?
[1]は?
※末尾に
2を付ける
68. © Hitachi, Ltd. 2015. All rights reserved.
抜けている更新内容は他から教えてもらう。
EADS2
EADS3
EADS4
EADS5
EADS1
決定内容の補完
67
Slave
Slave
Master
A data2
A data2
A ---
[1] write A
[1] write A
[2] change A
[1] write A
[2] change A
[1] write A
[2] change A
[1] write A
だよ!
ありがとう
69. © Hitachi, Ltd. 2015. All rights reserved.
更新順序が同じなので,同じ内容になる
EADS2
EADS3
EADS4
EADS5
EADS1
決定内容の補完
68
Slave
Slave
Master
A data2
A data2
A data2
[1] write A
[1] write A
[2] change A
[1] write A
[2] change A
[1] write A
[2] change A
70. © Hitachi, Ltd. 2015. All rights reserved.
決定内容の補完
69
処理の抜けに気付けるから,
障害回復してからも一貫性を保てる。
71. © Hitachi, Ltd. 2015. All rights reserved.
更新内容と順序を「提案」する
EADS2
EADS3
EADS4
EADS5
EADS1
事前の進捗確認
70
[1] write A
するよ!
Slave
Slave
Master
A ---
A ---
A ---
72. © Hitachi, Ltd. 2015. All rights reserved.
決定は過半数承認(多数決)で行う
EADS2
EADS3
EADS4
EADS5
EADS1
事前の進捗確認
71
[1] write A
するよ!
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
承認!
[1] write A
承認!
73. © Hitachi, Ltd. 2015. All rights reserved.
[1] write A
承認した内容は覚えておく。
EADS2
EADS3
EADS4
EADS5
EADS1
事前の進捗確認
72
[1] write A
するよ!
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
承認!
[1] write A
承認![1] write A
[1] write A
74. © Hitachi, Ltd. 2015. All rights reserved.
「決定」を通知しようとしたら,障害が・・・
EADS2
EADS3
EADS4
EADS5
EADS1
事前の進捗確認
73
Slave
Slave
Master
A ---
A ---
[1] write A
[1] write A
75. © Hitachi, Ltd. 2015. All rights reserved.
新しいサーバが処理を引き継ぐ
EADS2
EADS3
EADS4
EADS5
EADS1
事前の進捗確認
74
Slave
Slave
Master
A ---
A ---
[1] write A
[1] write A
通信が切れた
処理引き継ぎ
Master
76. © Hitachi, Ltd. 2015. All rights reserved.
自分含め過半数に進捗を確認する。
EADS2
EADS3
EADS4
EADS5
EADS1
事前の進捗確認
75
Master
Slave
A ---
A ---
[1] write A
[1] write A
今どう
なってるの?
77. © Hitachi, Ltd. 2015. All rights reserved.
記録した内容から進捗を報告
EADS2
EADS3
EADS4
EADS5
EADS1
事前の進捗確認
76
Master
Slave
A ---
A ---
[1] write A
[1] write A
今どう
なってるの?
[1] write A
承認したよ
なにも
してないよ
78. © Hitachi, Ltd. 2015. All rights reserved.
承認済みの内容があれば,それを提案する。
EADS2
EADS3
EADS4
EADS5
EADS1
事前の進捗確認
77
Master
Slave
A ---
A ---
[1] write A
[1] write A
じゃあ
[1] write A
しよう
79. © Hitachi, Ltd. 2015. All rights reserved.
提案途中で障害が起きても処理は継続する。
EADS2
EADS3
EADS4
EADS5
EADS1
事前の進捗確認
78
Master
Slave
A ---
A ---
[1] write A
[1] write A
じゃあ
[1] write A
しよう
[1] write A
承認!
[1] write A
承認!
80. © Hitachi, Ltd. 2015. All rights reserved.
事前の進捗確認
79
中途半端な状態で障害が起きても
別サーバで処理を継続できる。
81. © Hitachi, Ltd. 2015. All rights reserved.
Paxosの挙動
80
更新内容と順序を多数決
決定内容の補完
事前の進捗確認
スプリットブレインが起きたときはどうなるのか?
82. © Hitachi, Ltd. 2015. All rights reserved.
一貫性が崩れる原因 おさらい
81
Write A=bbb
Write A=ccc
Aの処理
は引き継
ぎます。
A bbb
A ccc
A aaa
他から
応答が
来ない?
83. © Hitachi, Ltd. 2015. All rights reserved.
更新内容と順序を「提案」するけれど
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
82
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
するよ!
84. © Hitachi, Ltd. 2015. All rights reserved.
過半数の承認を得られない。
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
83
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
するよ!
[1] write A
承認!
[1] write A
[1] write A
85. © Hitachi, Ltd. 2015. All rights reserved.
処理の引き継ぎが行われると・・・
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
84
Slave
Slave
Master
A ---
A ---
A ---
[1] write A
[1] write A
通信が切れた
処理引き継ぎ
Master
86. © Hitachi, Ltd. 2015. All rights reserved.
事前確認が行われる。
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
85
Master
Slave
Master
A ---
A ---
A ---
[1] write A
[1] write A
今どんな
感じですか?
87. © Hitachi, Ltd. 2015. All rights reserved.
右側には通信が来ていないので
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
86
Master
Slave
Master
A ---
A ---
A ---
[1] write A
[1] write A
今どんな
感じですか?
なにも
してません
なにも
してません
88. © Hitachi, Ltd. 2015. All rights reserved.
まったく別の更新内容を提案する
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
87
Master
Slave
Master
A ---
A ---
A ---
[1] write A
[1] write A
[1] write A #
するよ!
89. © Hitachi, Ltd. 2015. All rights reserved.
承認して覚えておく。
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
88
Master
Slave
Master
A ---
A ---
A ---
[1] write A
[1] write A
[1] write A #
するよ!
[1] write A #
承認!
[1] write A #
[1] write A #
[1] write A #
[1] write A #
承認!
90. © Hitachi, Ltd. 2015. All rights reserved.
こんなタイミングでネットワークが回復すると・・
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
89
Master
Slave
Master
A ---
A ###
A ###
[1] write A
[1] write A
[1] write A #
[1] write A #
[1] write A #
[1] write A
するよ!
91. © Hitachi, Ltd. 2015. All rights reserved.
残り一人の承認は得られず,逆に補完される
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
90
Master
Slave
Master
A ---
A ###
A ###
[1] write A
[1] write A
[1] write A #
[1] write A #
[1] write A #
[1] write A #
決定ずみ!
92. © Hitachi, Ltd. 2015. All rights reserved.
EADS2
EADS3
EADS4
EADS5
EADS1
スプリットブレインの時は・・・
91
Master
Slave
Master
A ###
A ###
A ###
[1] write A #
[1] write A
[1] write A #
[1] write A #
[1] write A #
93. © Hitachi, Ltd. 2015. All rights reserved.
Paxosの挙動
92
更新内容と順序を多数決
決定内容の補完
事前の進捗確認
スプリットブレインが起きたときはどうなるのか?
一貫性は崩れない!
95. © Hitachi, Ltd. 2015. All rights reserved.
一貫性へのこだわりと実現方法 -まとめ-
94
一貫性へのこだわり
社会インフラのシステムでの利用を想定
システムトラブルの原因になるデータ不整合を徹底対策
一貫性の実現方法
分散合意アルゴリズムのPaxosを導入
スプリットブレインでも崩れない強一貫性を実現
96. © Hitachi, Ltd. 2015. All rights reserved.
他社商品名、商標等の引用に関する表示
95
• Hitachi Elastic Application Data Storeは,(株)日立製作所の登録商標です。
• その他記載の会社名,製品名は,それぞれの会社の商標もしくは登録商標です。
• 製品の改良により予告なく記載されている仕様が変更になることがあります。
97. © Hitachi, Ltd. 2015. All rights reserved.
株式会社 日立製作所 情報・通信システム社
ITプラットフォーム事業本部
~こだわりの理由と実現方法とは~
データ一貫性にこだわる日立のインメモリ分散KVS
2015/06/12
和田 洋祐
END
96