dbts osaka 2014 d13 hitachikvs masakata kawanishi

84
© Hitachi, Ltd. 2014. All rights reserved. 日立だからこだわる。 ~一貫性を追求したインメモリ分散KVS~ 株式会社日立製作所 情報・通信システム社 ITプラットフォーム事業本部 開発統括本部 ソフトウェア開発本部 2AP基盤ソフト設計部 川西 正容 1

Upload: insight-technology-inc

Post on 15-Jan-2015

169 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

日立だからこだわる。 ~一貫性を追求したインメモリ分散KVS~

株式会社日立製作所 情報・通信システム社 ITプラットフォーム事業本部 開発統括本部 ソフトウェア開発本部 第2AP基盤ソフト設計部 川西 正容

1

Page 2: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

自己紹介 名前:川西 正容(カワニシ マサカタ) 会社:2012年度入社。とても大きい 仕事:ミドルウェアの設計・開発 著書:書いてみたい

2

Page 3: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

一貫性ってなに?やばいの?

やばいです

説明します

3

Page 4: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

アジェンダ

1.分散KVSとは 2.分散KVSの弱点 3.日立のシステム 4.日立のインメモリ分散KVS

4

Page 5: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

1.分散KVSとは

5

Page 6: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

特徴

・負荷分散 ・スケーラビリティ ・可用性

6

Page 7: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

分散KVSは

大量データを高速に処理したい ときに使用されています

10

Page 11: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

2.分散KVSの弱点

11

Page 12: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

一貫性 常に単一の最新データを取得したいが…

12

A aaa

A aaa

A aaa

get

Page 13: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

そのデータは正しい? 正しいデータを取得できない

15

A aaa

get

A aaa

A aaa データが残っている…?

???

Page 16: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

分散KVSの弱点

一時的な障害や遅延で

一貫性が崩れて システムトラブル

の可能性があります

16

Page 17: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

3.日立のシステム

17

Page 18: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

メッセージング メールを高速に振り分ける

18

分散KVS 携帯電話 管理システム

Page 19: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

スマートメータ 電力消費量を管理する

19

電化製品 電力会社 分散KVS

Page 20: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

TMS (Traffic Management Solution)

20

通信量をリアルタイムに制御する

中継地 制御システム 分散KVS

Page 21: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

日立のシステム

もしも一貫性が崩れて システムトラブルが起きたら

とんでもないことになります

21

Page 22: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

4.日立のインメモリ分散KVS

22

Page 23: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

日立のインメモリ分散KVS

日立のシステムに導入されている インメモリ分散KVS

EADs (uCosminexus Elastic Application Data store)

23

Page 24: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

EADs

・インメモリ ・自動分散配置 ・故障検知 ・稼動中サーバ復旧 ・Paxos

24

Page 25: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

インメモリにデータを保存するため 読み書きが高速

EADs2

EADs3

EADs4

EADs5

EADs1

インメモリ

25

Master Slave

Slave

Page 26: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

・インメモリ ・自動分散配置 ・故障検知 ・稼動中サーバ復旧

高速処理とか可用性のための ここらへんは当たり前ですよね

29

Page 30: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

EADsの特徴は

一貫性保証 一貫性が崩れる要因

・一時的な障害 ・スプリットブレイン

30

Page 31: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

一貫性が崩れる要因

・一時的な障害 ・スプリットブレイン

31

Page 32: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

一貫性が崩れる要因

・一時的な障害 ・スプリットブレイン

40

Page 41: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

EADs

・インメモリ ・自動分散配置 ・故障検知 ・稼動中サーバ復旧 ・Paxos

48

Page 49: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

Paxos

一時的な障害でもスプリットブレインでも

同一の処理を同一の順序で配信する アルゴリズム

・過半数承認 ・処理補完

49

Page 50: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

EADs2

EADs3

EADs4

EADs5

EADs1

障害中だったサーバが回復したら…

54

回復したけど 仲間はずれ…

A aaa A aaa

Slave

Slave

Master

Page 55: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

EADs2

EADs3

EADs4

EADs5

EADs1

処理補完 前回の承認内容を記録しているサーバは

56

A aaa A aaa

Slave

Slave

Master

Page 57: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

EADs2

EADs3

EADs4

EADs5

EADs1

処理補完 今回承認するサーバの中に必ず含まれる

57

承認するサーバ達

A aaa A aaa

Slave

Slave

Master

Page 58: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

EADs2

EADs3

EADs4

EADs5

EADs1

処理補完 誰かが前回の承認内容を知っているので…

58

承認するサーバ達

A aaa A aaa

1.write A 知ってるよ!

教えて!

Slave

Slave

Master

Page 59: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

EADsは 一時的な障害でも一貫性保証

61

Page 62: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

過半数承認なので動けるクラスタは1つ

EADs2

EADs3

EADs4

EADs5

EADs1

スプリットブレインのときは

62

処理できない クラスタ

3/5

2/5 処理できる クラスタ

Page 63: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© 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: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

EADsは スプリットブレインでも一貫性保証

75

Page 76: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

日立のこだわりは

一貫性

一貫性にこだわることによって 社会インフラを支えています

76

Page 77: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved. 77

Page 78: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

付録

Page 79: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

順序を守らない一貫性保証 一貫性が崩れたら修正する|結果整合性 Ex.ゴシッププロトコル・リードリペア

79

おれと一緒?

違う!

一緒!

A ccc

A ccc

A aaa

Page 80: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

順序を守らない一貫性保証 一貫性が崩れたら修正する|結果整合性 Ex.ゴシッププロトコル・リードリペア

80

修正してやる!

repair A ccc

A ccc

A aaa

Page 81: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

順序を守らない一貫性保証 一貫性は保てるけど処理順序が狂うと 古いデータが復活することがある

81

古いデータに 修正してやる!

repair A old

A new

A new repair

Page 82: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

可用性が低い一貫性保証 一貫性を崩さない Ex.2PhaseCommit

82

やっちゃうぜ?

いいよー

いいよー

Page 83: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

可用性が低い一貫性保証 一貫性を崩さない Ex.2PhaseCommit

83

write

write write A aaa

A aaa

A aaa

Page 84: dbts osaka 2014 D13 hitachiKVS Masakata Kawanishi

© Hitachi, Ltd. 2014. All rights reserved.

可用性が低い一貫性保証 全員が承認してくれるまで処理が進まない

84

・・・ (承認してくれない)

・・・

いいよー