![Page 1: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/1.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
日立だからこだわる。 ~一貫性を追求したインメモリ分散KVS~
株式会社日立製作所 情報・通信システム社 ITプラットフォーム事業本部 開発統括本部 ソフトウェア開発本部 第2AP基盤ソフト設計部 川西 正容
1
![Page 2: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/2.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
自己紹介 名前:川西 正容(カワニシ マサカタ) 会社:2012年度入社。とても大きい 仕事:ミドルウェアの設計・開発 著書:書いてみたい
2
![Page 3: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/3.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
一貫性ってなに?やばいの?
やばいです
説明します
3
![Page 4: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/4.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
アジェンダ
1.分散KVSとは 2.分散KVSの弱点 3.日立のシステム 4.日立のインメモリ分散KVS
4
![Page 5: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/5.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
1.分散KVSとは
5
![Page 6: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/6.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
特徴
・負荷分散 ・スケーラビリティ ・可用性
6
![Page 7: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/7.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
負荷分散 各サーバで分散処理する
7
A aaa
write write
write
write B
write A
write C
C ccc B bbb
A aaa
C ccc B bbb
A aaa
C ccc B bbb
![Page 8: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/8.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
スケーラビリティ 簡単にスケールアウトできる
8
A aaa
B bbb
C ccc
A aaa
A aaa B bbb
B bbb C ccc
C ccc
write B
write A
write C
![Page 9: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/9.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
可用性 データロストしないため停止しにくい
9
A aaa
C ccc
A aaa B bbb
B bbb C ccc
C ccc
マシンが壊れても 他のマシンにデータが
残ってる!
A aaa B bbb
![Page 10: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/10.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
分散KVSは
大量データを高速に処理したい ときに使用されています
10
![Page 11: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/11.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
2.分散KVSの弱点
11
![Page 12: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/12.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
一貫性 常に単一の最新データを取得したいが…
12
A aaa
A aaa
A aaa
get
![Page 13: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/13.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
一貫性が崩れるとき 障害や遅延などで処理の順序を間違えると
13
A aaa
A aaa
1.write 2.remove
1.write A
2.remove A →ERROR 1.write A
![Page 14: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/14.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
一貫性が崩れるとき 一時的に一貫性が崩れることがある
14
A aaa 1.write 2.remove
1.write A 2.remove A
2.remove A →ERROR 1.write A
1.write A 2.remove A
A aaa
A aaa
![Page 15: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/15.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
そのデータは正しい? 正しいデータを取得できない
15
A aaa
get
A aaa
A aaa データが残っている…?
???
![Page 16: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/16.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
分散KVSの弱点
一時的な障害や遅延で
一貫性が崩れて システムトラブル
の可能性があります
16
![Page 17: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/17.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
3.日立のシステム
17
![Page 18: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/18.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
メッセージング メールを高速に振り分ける
18
分散KVS 携帯電話 管理システム
![Page 19: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/19.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
スマートメータ 電力消費量を管理する
19
電化製品 電力会社 分散KVS
![Page 20: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/20.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
TMS (Traffic Management Solution)
20
通信量をリアルタイムに制御する
中継地 制御システム 分散KVS
![Page 21: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/21.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
日立のシステム
もしも一貫性が崩れて システムトラブルが起きたら
とんでもないことになります
21
![Page 22: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/22.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
4.日立のインメモリ分散KVS
22
![Page 23: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/23.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
日立のインメモリ分散KVS
日立のシステムに導入されている インメモリ分散KVS
EADs (uCosminexus Elastic Application Data store)
23
![Page 24: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/24.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs
・インメモリ ・自動分散配置 ・故障検知 ・稼動中サーバ復旧 ・Paxos
24
![Page 25: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/25.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
インメモリにデータを保存するため 読み書きが高速
EADs2
EADs3
EADs4
EADs5
EADs1
インメモリ
25
Master Slave
Slave
![Page 26: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/26.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
データを自動で分散配置するため 負荷を分散できる
EADs2
EADs3
EADs4
EADs5
EADs1
自動分散配置
26
A aaa A aaa B bbb
A aaa B bbb
B bbb
Master Master
![Page 27: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/27.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
永続的な障害が発生したサーバを 自動的に離脱させシステムの停止を防ぐ
EADs2
EADs3
EADs4
EADs5
EADs1
故障検知
27
EADs1
delete
A aaa A aaa
A aaa
B bbb
B bbb
B bbb
![Page 28: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/28.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
復旧時にシステムを停止させる必要が無い
稼動中サーバ復旧
28
EADs1
restore A aaa A aaa
A aaa
B bbb
B bbb
B bbb
![Page 29: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/29.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
・インメモリ ・自動分散配置 ・故障検知 ・稼動中サーバ復旧
高速処理とか可用性のための ここらへんは当たり前ですよね
29
![Page 30: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/30.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADsの特徴は
一貫性保証 一貫性が崩れる要因
・一時的な障害 ・スプリットブレイン
30
![Page 31: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/31.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
一貫性が崩れる要因
・一時的な障害 ・スプリットブレイン
31
![Page 32: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/32.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
一時的な障害が発生したとき データ更新中に障害が発生すると…
32
1.write A
1.write A
A aaa A aaa
A aaa
1.write A
Master
Slave
Slave
![Page 33: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/33.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
一時的な障害が発生したとき 障害中のサーバは処理できないので
33
1.write A 2.write C
1.write A 2.write C
A aaa A aaa
A aaa
C ccc C ccc
1.write A
Slave
Slave
Master
![Page 34: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/34.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
一時的な障害が発生したとき どんどん遅れていく
34
1.write A 2.write C 3.remove C
1.write A 2.write C 3.remove C
A aaa A aaa
A aaa
C ccc C ccc
1.write A
Slave
Slave
Master
![Page 35: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/35.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
一時的な障害が発生したとき 回復したときに処理を補完しようとするが
35
A aaa A aaa
1.write A 2.write C 3.remove C
1.write A 2.write C 3.remove C
A aaa
C ccc C ccc
1.write A 2.??? 3.???
Slave
Slave
Master
![Page 36: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/36.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
処理順序が崩れると…
EADs2
EADs3
EADs4
EADs5
EADs1
一時的な障害が発生したとき
36
1.write A 2.write C 3.remove C
1.write A 2.write C 3.remove C
A aaa A aaa
A aaa
C ccc C ccc
1.write A 2.remove C →ERROR
Slave
Slave
Master
![Page 37: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/37.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
処理順序が崩れると…
EADs2
EADs3
EADs4
EADs5
EADs1
一時的な障害が発生したとき
37
1.write A 2.write C 3.remove C
1.write A 2.write C 3.remove C
A aaa A aaa
A aaa
C ccc C ccc
C ccc
1.write A 2.remove C →ERROR 3.write C
Slave
Slave
Master
![Page 38: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/38.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
一時的な障害が発生したとき 一貫性が崩れる
38
A aaa A aaa
A aaa C ccc
Slave
Slave
Master
![Page 39: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/39.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
各サーバの処理順序を常に同一にする
どうすればいいの?
39
A aaa A aaa
A aaa
1.write C 2.remove C 3.write A
1.write C 2.remove C 3.write A
1.write C 2.remove C 3.write A
Slave
Slave
Master
![Page 40: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/40.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
一貫性が崩れる要因
・一時的な障害 ・スプリットブレイン
40
![Page 41: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/41.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
スプリットブレインのとき ネットワークの障害でクラスタが分断
41
A aaa A aaa
C ccc
C ccc
C ccc
A aaa
![Page 42: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/42.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
スプリットブレインのとき クラスタが別々に動き出すと…
42
remove A
remove A A aaa
A aaa
A aaa
C ccc
C ccc
C ccc
Slave
Slave
Master
![Page 43: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/43.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
クラスタが別々に動き出すと…
EADs2
EADs3
EADs4
EADs5
EADs1
スプリットブレインのとき
43
remove C
remove C
A aaa
A aaa
A aaa
C ccc
C ccc
C ccc Slave
Slave
Master
![Page 44: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/44.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
スプリットブレインのとき 解消されたときに…
44
A aaa
A aaa
A aaa
A aaa
C ccc
C ccc
![Page 45: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/45.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
スプリットブレインのとき 一貫性が崩れる
45
全部 消したはずなのに…
A aaa
A aaa
A aaa
A aaa
C ccc
C ccc
![Page 46: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/46.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
動くクラスタ1つに絞る
EADs2
EADs3
EADs4
EADs5
EADs1
どうすればいいの?
46
動けない!
動ける!
A aaa
A aaa
A aaa
C ccc
C ccc
C ccc
![Page 47: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/47.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
どうすればいいの? 解消された後は動けるクラスタに合わせる
47
おれらが 正しい! おれらが
正しい!
おれらが 正しい!
remove A
A aaa A aaa
A aaa C ccc
C ccc
C ccc
![Page 48: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/48.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs
・インメモリ ・自動分散配置 ・故障検知 ・稼動中サーバ復旧 ・Paxos
48
![Page 49: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/49.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
Paxos
一時的な障害でもスプリットブレインでも
同一の処理を同一の順序で配信する アルゴリズム
・過半数承認 ・処理補完
49
![Page 50: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/50.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
過半数承認 過半数以上から承認されたら処理する
50
1.write A 承認! 1.write A
するよ!
1.write A 承認!
Slave
Slave
Master
![Page 51: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/51.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
過半数承認 一部のサーバに障害が発生しても 処理は停止しない
51
1.write A 承認! 1.write A
するよ!
1.write A 承認!
Slave
Slave
Master
![Page 52: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/52.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
承認したサーバは承認内容を記録する
EADs2
EADs3
EADs4
EADs5
EADs1
過半数承認
52
承認内容 を記録
1.write A 承認!
1.write A 承認! 1.write A
するよ! Slave
Slave
Master
![Page 53: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/53.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
過半数承認 承認を得たら処理を実行
53
write A write A
A aaa A aaa
Slave
Slave
Master
![Page 54: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/54.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
障害中だったサーバが回復したら…
54
回復したけど 仲間はずれ…
A aaa A aaa
Slave
Slave
Master
![Page 55: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/55.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
処理実行時に 前回以前の抜けている処理を補完する
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完
55
2.remove A 承認!
2.remove A するよ!
2.remove A承認!
だけど 1.write A
知らない!
A aaa A aaa
Slave
Slave
Master
![Page 56: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/56.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完 前回の承認内容を記録しているサーバは
56
A aaa A aaa
Slave
Slave
Master
![Page 57: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/57.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完 今回承認するサーバの中に必ず含まれる
57
承認するサーバ達
A aaa A aaa
Slave
Slave
Master
![Page 58: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/58.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完 誰かが前回の承認内容を知っているので…
58
承認するサーバ達
A aaa A aaa
1.write A 知ってるよ!
教えて!
Slave
Slave
Master
![Page 59: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/59.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完 必ず補完することができる
59
A aaa A aaa
A aaa
1.write A
1.write A
Slave
Slave
Master
![Page 60: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/60.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完 過半数承認している限り 必ず補完できるため処理順序が崩れない
60
A aaa A aaa
A aaa
1.write A 2.remove A
1.write A 2.remove A
1.write A 2.remove A
Slave
Slave
Master
![Page 61: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/61.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADsは 一時的な障害でも一貫性保証
61
![Page 62: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/62.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
過半数承認なので動けるクラスタは1つ
EADs2
EADs3
EADs4
EADs5
EADs1
スプリットブレインのときは
62
処理できない クラスタ
3/5
2/5 処理できる クラスタ
![Page 63: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/63.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
過半数承認 過半数承認を行う
63
remove A
3.remove A 承認!
3.remove A 承認!
3.remove A するよ!
A aaa A aaa
C ccc
C ccc
C ccc
A aaa
Slave
Slave
Master
![Page 64: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/64.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
承認者が承認内容を記録する
EADs2
EADs3
EADs4
EADs5
EADs1
過半数承認
64
A aaa A aaa
A aaa 承認内容 を記録
C ccc
C ccc
C ccc
3.remove A 承認!
3.remove A するよ!
3.remove A 承認!
remove A
Slave
Master
Slave
![Page 65: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/65.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
過半数以上いる方は処理できる
EADs2
EADs3
EADs4
EADs5
EADs1
過半数承認
65
remove A
remove A 処理できる!
A aaa A aaa
A aaa C ccc
C ccc
C ccc
Slave
Slave
Master
![Page 66: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/66.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
過半数承認 過半数承認を行う
66
remove C
A aaa A aaa
A aaa C ccc
C ccc
C ccc
4.remove C 承認!
4.remove C するよ!
Slave
Slave
Master
![Page 67: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/67.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
過半数承認 過半数いない方は処理できない
67
処理できない…
A aaa A aaa
A aaa C ccc
C ccc
C ccc
remove C
承認内容を 記録しない
![Page 68: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/68.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
スプリットブレインが解消されたら…
68
A aaa A aaa
A aaa C ccc
C ccc
C ccc
![Page 69: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/69.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完 処理実行時に 前回以前の抜けている処理を補完する
69
A aaa A aaa
A aaa C ccc
C ccc
C ccc
5.write B 承認!
5.write B承認!
だけど
3.remove A 知らない!
5.write B するよ!
Slave
Slave
Master
![Page 70: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/70.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
前回の承認内容を記録しているサーバは
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完
70
A aaa A aaa
A aaa C ccc
C ccc
C ccc
Slave
Slave
Master
![Page 71: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/71.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完 今回承認するサーバの中に必ず含まれる
71
A aaa A aaa
A aaa C ccc
C ccc
C ccc
承認するサーバ達
Slave
Slave
Master
![Page 72: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/72.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
誰かが前回の承認内容を知っているので…
EADs2
EADs3
EADs4
EADs5
EADs1
承認するサーバ達
処理補完
72
A aaa A aaa
A aaa C ccc
C ccc
C ccc
3.remove A 知ってるよ!
Slave
Slave
Master
教えて!
![Page 73: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/73.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
必ず補完することができる
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完
73
A aaa A aaa
C ccc
C ccc
C ccc
3.remove A
remove A
A aaa
3.remove A
Slave
Master
Slave
![Page 74: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/74.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADs2
EADs3
EADs4
EADs5
EADs1
処理補完 過半数承認している限り 必ず補完できるため処理順序が崩れない
74
1.write A 3.remove A
2.write C
A aaa A aaa
A aaa C ccc
C ccc
C ccc 2.write C 5.write B
1.write A 2.write C
3.remove A 5.write B
1.write A 3.remove A
5.write B B bbb
B bbb
B bbb
![Page 75: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/75.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
EADsは スプリットブレインでも一貫性保証
75
![Page 76: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/76.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
日立のこだわりは
一貫性
一貫性にこだわることによって 社会インフラを支えています
76
![Page 77: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/77.jpg)
© Hitachi, Ltd. 2014. All rights reserved. 77
![Page 78: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/78.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
付録
![Page 79: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/79.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
順序を守らない一貫性保証 一貫性が崩れたら修正する|結果整合性 Ex.ゴシッププロトコル・リードリペア
79
おれと一緒?
違う!
一緒!
A ccc
A ccc
A aaa
![Page 80: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/80.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
順序を守らない一貫性保証 一貫性が崩れたら修正する|結果整合性 Ex.ゴシッププロトコル・リードリペア
80
修正してやる!
repair A ccc
A ccc
A aaa
![Page 81: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/81.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
順序を守らない一貫性保証 一貫性は保てるけど処理順序が狂うと 古いデータが復活することがある
81
古いデータに 修正してやる!
repair A old
A new
A new repair
![Page 82: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/82.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
可用性が低い一貫性保証 一貫性を崩さない Ex.2PhaseCommit
82
やっちゃうぜ?
いいよー
いいよー
![Page 83: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/83.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
可用性が低い一貫性保証 一貫性を崩さない Ex.2PhaseCommit
83
write
write write A aaa
A aaa
A aaa
![Page 84: [D12] 日立だからこだわる ~一貫性を追求した日立のインメモリ分散KVS~ by Masakata Kawanishi](https://reader038.vdocuments.mx/reader038/viewer/2022103109/546de654af7959f83e8b4c1c/html5/thumbnails/84.jpg)
© Hitachi, Ltd. 2014. All rights reserved.
可用性が低い一貫性保証 全員が承認してくれるまで処理が進まない
84
・・・ (承認してくれない)
・・・
いいよー