98
コピーライトの表示については、作成元で責任を持って適宜変更してください。 © Hitachi, Ltd. 2015. All rights reserved. 株式会社 日立製作所 情報・通信システム社 ITプラットフォーム事業本部 2015/06/12 和田 洋祐 データ一貫性にこだわる 日立のインメモリ分散KVS ~こだわりの理由と実現方法とは~

[db tech showcase Tokyo 2015] C32:「データ一貫性にこだわる日立のインメモリ分散KVS~こだわりの理由と実現方法とは~」 by 株式会社日立製作所

Embed Size (px)

Citation preview

コピーライトの表示については、作成元で責任を持って適宜変更してください。 ⇒ © Hitachi, Ltd. 2015. All rights reserved.

株式会社 日立製作所 情報・通信システム社ITプラットフォーム事業本部

2015/06/12

和田 洋祐

データ一貫性にこだわる日立のインメモリ分散KVS

~こだわりの理由と実現方法とは~

© Hitachi, Ltd. 2015. All rights reserved.

自己紹介

1

和田 洋祐(わだ ようすけ)

2010年度入社ミドルウェア設計・開発

分散KVS歴 3年COBOL歴 2年

© Hitachi, Ltd. 2015. All rights reserved.

1. 分散KVSとは何か

2. 分散KVSの悩み事 【一貫性】

3.一貫性へのこだわりと実現方法

Contents

2

© Hitachi, Ltd. 2015. All rights reserved.

1. 分散KVSとは何か

3

© Hitachi, Ltd. 2015. All rights reserved.

分散KVS、簡単に言えば・・・

4

RDBと同じ、「データを管理するソフトウエア」

だけど、RDBではない。

KVSというデータ構造を持つ

RDB 分散KVS

KVS = Key Value Store

データ管理 データ管理

Table

Table

TableKey Value

Key Value

Key Value

Key Value

Key Value

© Hitachi, Ltd. 2015. All rights reserved.

登場の背景

5

データ管理と言えばRDB

RDB

システムのデータ

システムのデータ

システムのデータ

© Hitachi, Ltd. 2015. All rights reserved.

システムのデータシステムの

データシステムのデータ

登場の背景

6

RDB

システムのデータ

システムのデータ

システムのデータ

システムのデータ

Table

Table

Table

Table

複雑化するテーブル

大量リクエスト

スケールアップの限界

求められる耐障害性

大量データ システム開発の短期化

データ管理と言えばRDB

© Hitachi, Ltd. 2015. All rights reserved.

登場の背景

7

システムのデータ

システムのデータ

システムのデータ

システムのデータ

システムのデータ

システムのデータ

KVS KVS KVS

KVS

RDBを補う形で分散KVSは登場した。

クラスタリング

© Hitachi, Ltd. 2015. All rights reserved.

分散KVSの具体的な特徴

8

高スループット

スケーラビリティ

高可用性

© Hitachi, Ltd. 2015. All rights reserved.

高スループット

9

各サーバで分散処理する

A aaa

write

write

write

write B

write A

write CB bbb

C ccc

© Hitachi, Ltd. 2015. All rights reserved.

スケーラビリティ

10

簡単にスケールアウトできる

A aaa

D ddd

B bbbC ccc

write B

write A

write C

write D

© Hitachi, Ltd. 2015. All rights reserved.

高可用性

11

障害が起きても、他のサーバで業務継続

A aaa

C ccc

D ddd

D ddd

B bbb

A aaa

C cccB bbb

同じデータを複数サーバで保持する

get D

© Hitachi, Ltd. 2015. All rights reserved.

A aaa

C ccc

D ddd

D ddd

B bbb

A aaa

C cccB bbb

高可用性

12

障害が起きても、他のサーバで業務継続

マシンが壊れても他のマシンからデータが

取れる。

get D

© Hitachi, Ltd. 2015. All rights reserved.

分散KVSの使われ方

13

RDB

バッファ キャッシュ

メッセージング ストア

write read

add take update

高可用性を活かした構成

高スループットを活かした構成

update

© Hitachi, Ltd. 2015. All rights reserved.

具体例:コンテンツキャッシュ

14

HITACHI Net Shopp ing

商品DB

DBのキャッシュとして,大量アクセスに対応

ECサイト分散KVS

© Hitachi, Ltd. 2015. All rights reserved.

具体例:センサーデータバッファリング

15

1000万超の検針装置から数分おきにデータ発信

検針装置 電力会社分散KVS

© Hitachi, Ltd. 2015. All rights reserved.

携帯電話

具体例:高速メッセージング

16

メールサーバ1台あたり、1時間に1300万通

管理システム分散KVS

© Hitachi, Ltd. 2015. All rights reserved.

具体例:無停止基幹システム

17

搬入

分散KVS

管理

配送

物流センターの業務無停止化

© Hitachi, Ltd. 2015. All rights reserved.

分散KVSとは何か -まとめ-

18

ビッグデータ時代のデータ管理製品

高スループット・スケーラビリティ・高可用性

KVS構造でも使い方は多種多様

© Hitachi, Ltd. 2015. All rights reserved.

2. 分散KVSの悩み事 【一貫性】

19

© Hitachi, Ltd. 2015. All rights reserved.

データの一貫性ってどういうこと?

20

分散したデータの内容が同じであること

C ccc

D ddd

D ddd

A aaawrite Dget D

© Hitachi, Ltd. 2015. All rights reserved.

一貫性って当たり前じゃないの?

21

対策しないと簡単に崩れます

© Hitachi, Ltd. 2015. All rights reserved.

難関:ダウンの誤検知

22

通信ができない?ダウン?Write A=bbb

A aaa

A aaa

Aを更新します

スプリットブレインが起きたとき・・・

A aaa

© Hitachi, Ltd. 2015. All rights reserved.

難関:ダウンの誤検知

23

Write A=bbb

Write A=ccc

Aの処理は引き継ぎます。

A bbb

A ccc

A aaa

他から応答が来ない?

スプリットブレインが起きたとき・・・

© Hitachi, Ltd. 2015. All rights reserved.

難関:ダウンの誤検知

24

Write A=bbb

Write A=ccc

Aはこっちの担当だよ?

引き継ぎ済みですよ?

A bbb

A ccc

A ???

どっちを信じれば・・

バチバチ

© Hitachi, Ltd. 2015. All rights reserved.

一貫性には強度がある

25

結果整合性 強一貫性

強弱 一貫性の強度

© Hitachi, Ltd. 2015. All rights reserved.

結果整合性

26

A a1 A a2

データがずれることを許容

A a1 A a2

今どんな感じ?

Aがズレてますね

A a2 A a2

互いに確認して修正

いつかは一致する

© Hitachi, Ltd. 2015. All rights reserved.

中間的な一貫性

27

A a1 A a1

安定状態で一貫性あり

A a1 A a1

苦手なパターンの障害が発生すると

A a2 A a3

ずれてしまうことがある

相手と通信できない

ダウンしたのかな?

© Hitachi, Ltd. 2015. All rights reserved.

強一貫性

28

A a1 A a1

安定状態で一貫性あり

A a1 A a1

A a2 A a2

ずれることはない

様々なパターンの障害が発生しても

© Hitachi, Ltd. 2015. All rights reserved.

一貫性には強度がある

29

崩れても良いいつか一致する。

苦手な障害で崩れてしまう。

多様な障害でも一貫性あり。

結果整合性 強一貫性

強弱 一貫性の強度

© Hitachi, Ltd. 2015. All rights reserved.

一貫性が崩れるとどうなるの? (ケース1)

30

A ---

C ---D M

B ---

C ---B ---

write D Nさん

たとえばECサイトで予約するとき・・・

D NA ---

HITACHI Net Shopp ing

Nさん

♪Mさん

write D Mさん

商品D限定1名様

© Hitachi, Ltd. 2015. All rights reserved.

一貫性が崩れるとどうなるの? (ケース1)

31

A ---

C ---D M

B ---

C ---B ---

異なるデータが格納されてしまう。

D NA ---

HITACHI Net Shopp ing

どっちが正しいの?

管理者Lさん

get D

商品D限定1名様

© Hitachi, Ltd. 2015. All rights reserved.

一貫性が崩れるとどうなるの? (ケース2)

32

A ---

C ---D ---

B ---

C ---B ---

write D Nさん

たとえばECサイトで予約するとき・・・

D NA ---

HITACHI Net Shopp ing

Nさん

商品D限定1名様

© Hitachi, Ltd. 2015. All rights reserved.

D NA ---

一貫性が崩れるとどうなるの? (ケース2)

33

A ---

C ---D ---

B ---

C ---B ---

不整合な時に障害が起きると

HITACHI Net Shopp ing

商品D限定1名様

© 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名様

情報が消えてしまう。

© Hitachi, Ltd. 2015. All rights reserved.

一貫性には強度がある

35

崩れても良いいつか一致する。

苦手な障害で崩れてしまう。

多様な障害でも一貫性あり。

性能 速極速

メールチケット予約課金システム

コンテンツキャッシュセンサー監視

得意分野

結果整合性 強一貫性

強弱 一貫性の強度

© Hitachi, Ltd. 2015. All rights reserved.

分散KVSの悩み事 【一貫性】 -まとめ-

36

一貫性とは、分散したデータが揃っていること

一貫性にも強度がある(結果整合性 ~ 強一貫性)

強度ごとに適材適所がある。強度が強いほど,多様なシステムに適用しやすい。

© Hitachi, Ltd. 2015. All rights reserved.

3. 一貫性へのこだわりと実現方法

37

© Hitachi, Ltd. 2015. All rights reserved.

まずは・・・

38

一貫性について復習

© Hitachi, Ltd. 2015. All rights reserved.

一貫性が崩れるとどうなるの? (ケース1)

39

A ---

C ---D M

B ---

C ---B ---

異なるデータが格納されてしまう。

D NA ---

HITACHI Net Shopp ing

どっちが正しいの?

管理者Lさん

get D

商品D限定1名様

© 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名様

情報が消えてしまう。

© Hitachi, Ltd. 2015. All rights reserved.

一貫性が崩れる原因

41

Write A=bbb

Write A=ccc

Aの処理は引き継ぎます。

A bbb

A ccc

A aaa

他から応答が来ない?

© Hitachi, Ltd. 2015. All rights reserved.

一貫性には強度がある

42

結果整合性 強一貫性

強弱 一貫性の強度

崩れても良いいつか一致する。

苦手な障害で崩れてしまう。

多様な障害でも一貫性あり。

性能 速極速

メールチケット予約課金システム

コンテンツキャッシュセンサー監視

得意分野

© Hitachi, Ltd. 2015. All rights reserved.

日立の分散KVSへの取り組み

43

Big Data

モノ の発信

人 の発信

電力メーター

運行情報

カーナビ

GPS

監視映像

環境・気象データ

設備監視

物流トレース

ICカード利用

診断画像・電子カルテ

データベース

メール・オフィス文書

つぶやき

SNS

通話ログ

スマートフォン

人の移動

ネット購入

コンテンツダウンロード

動画・画像・音声

データ不整合によるシステムトラブルは許容されない

© Hitachi, Ltd. 2015. All rights reserved.

日立の分散KVSへの取り組み

44

強一貫性の分散KVS

EADS(Hitachi Elastic Application Data Store)

© Hitachi, Ltd. 2015. All rights reserved.

強一貫性 の 実現方法

45

分散合意アルゴリズムPaxos

© Hitachi, Ltd. 2015. All rights reserved.

分散合意アルゴリズムとは?

46

みんなで「やることを決める」ための仕組み

Write A=bbb Write A=ccc

Aのデータをcccに更新しよう

A bbb A ccc

Aのデータをbbbに更新しよう

それぞれが,勝手に「やることを決める」と・・・

一貫性は崩れる

© Hitachi, Ltd. 2015. All rights reserved.

分散合意アルゴリズムとは?

47

みんなで「やることを決める」ための仕組み

Write A=bbb Write A=ccc

Aの件,了解しました。

A bbb A bbb

Aのデータをbbbにしたい

あらかじめ,更新内容を決めてから実行すれば

一貫性は保たれる

© Hitachi, Ltd. 2015. All rights reserved.

そんなに難しいこと?

48

テレビ会議をイメージしてください。

ちゃんと決定できますか?

network

通信到着順序は各人でバラバラ

急用で席を外す人もいる

通信が途切れる

複数人が発言する

© Hitachi, Ltd. 2015. All rights reserved.

そんなに難しいこと?

49

テレビ会議をイメージしてください。

ちゃんと決定できますか?

networkそば

牛丼

パスタ電話中

通信到着順序は各人でバラバラ

急用で席を外す人もいる

通信が途切れる

複数人が発言する

© Hitachi, Ltd. 2015. All rights reserved.

Paxosはどのように「決定」しているのか

50

更新内容と順序を多数決

決定内容の補完

事前の進捗確認

© Hitachi, Ltd. 2015. All rights reserved.

更新内容と順序を「提案」する

EADS2

EADS3

EADS4

EADS5

EADS1

更新内容と順序を多数決

51

Slave

Slave

MasterA ---

A ---

A ---

[1] write Aするよ!

© 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 ---

© 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 ---

© Hitachi, Ltd. 2015. All rights reserved.

多数決を勝ち取ったら「決定」したことを通知する。

EADS2

EADS3

EADS4

EADS5

EADS1

更新内容と順序を多数決

54

[1] は決定しました

Slave

Slave

MasterA ---

A ---

A ---

[1] write A

[1] write A[1] write A

© Hitachi, Ltd. 2015. All rights reserved.

通知を受けたら更新内容を反映する。

EADS2

EADS3

EADS4

EADS5

EADS1

更新内容と順序を多数決

55

Slave

Slave

MasterA data

A data

A data

[1] write A

[1] write A[1] write A

© Hitachi, Ltd. 2015. All rights reserved.

もし障害が起きていたら・・・

EADS2

EADS3

EADS4

EADS5

EADS1

更新内容と順序を多数決

56

Slave

Slave

MasterA ---

A ---

A ---

[1] write Aするよ!

© Hitachi, Ltd. 2015. All rights reserved.

他が承認してくれるので,「決定」できる。

EADS2

EADS3

EADS4

EADS5

EADS1

更新内容と順序を多数決

57

Slave

Slave

MasterA ---

A ---

A ---

[1] write A承認!

[1] write Aするよ!

[1] write A承認!

© Hitachi, Ltd. 2015. All rights reserved.

承認した内容を覚えておく。

EADS2

EADS3

EADS4

EADS5

EADS1

更新内容と順序を多数決

58

[1] write A承認!

[1] write Aするよ!

Slave

Slave

MasterA ---

A ---

A ---

[1] write A承認![1] write A

[1] write A[1] write A

© Hitachi, Ltd. 2015. All rights reserved.

多数決を勝ち取って「決定」したことを通知する。

EADS2

EADS3

EADS4

EADS5

EADS1

更新内容と順序を多数決

59

[1] は決定しました

Slave

Slave

MasterA ---

A ---

A ---

[1] write A

[1] write A[1] write A

© Hitachi, Ltd. 2015. All rights reserved.

更新を反映する。

EADS2

EADS3

EADS4

EADS5

EADS1

更新内容と順序を多数決

60

Slave

Slave

MasterA data

A data

A ---

[1] write A

[1] write A[1] write A

© Hitachi, Ltd. 2015. All rights reserved.

更新内容と順序を多数決

61

Paxosは過半数承認で決定するから,一部障害では止まらない。

© Hitachi, Ltd. 2015. All rights reserved.

障害から回復したら・・

EADS2

EADS3

EADS4

EADS5

EADS1

決定内容の補完

62

Slave

Slave

MasterA data

A data

A ---

[1] write A

[1] write A[1] write A

[2] change Aするよ!

※末尾に2を付ける

© Hitachi, Ltd. 2015. All rights reserved.

新しい更新の多数決に参加する

EADS2

EADS3

EADS4

EADS5

EADS1

決定内容の補完

63

Slave

Slave

MasterA data

A data

A ---

[1] write A

[1] write A[1] write A

[2] change Aするよ!

[2] change A承認!

[2] change A承認!

© Hitachi, Ltd. 2015. All rights reserved.

承認した内容を覚える

EADS2

EADS3

EADS4

EADS5

EADS1

決定内容の補完

64

Slave

Slave

MasterA 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

© Hitachi, Ltd. 2015. All rights reserved.

多数決を勝ち取って「決定」したことを通知する。

EADS2

EADS3

EADS4

EADS5

EADS1

決定内容の補完

65

[2] は決定しました

Slave

Slave

MasterA data

A data

A ---

[1] write A

[1] write A[2] change A

[1] write A[2] change A

[2] change A

© Hitachi, Ltd. 2015. All rights reserved.

更新を反映しようとするけど・・・

EADS2

EADS3

EADS4

EADS5

EADS1

決定内容の補完

66

Slave

Slave

MasterA data2

A data2

A ---

[1] write A

[1] write A[2] change A

[1] write A[2] change A

[2] change A

あれ?[1]は?

※末尾に2を付ける

© Hitachi, Ltd. 2015. All rights reserved.

抜けている更新内容は他から教えてもらう。

EADS2

EADS3

EADS4

EADS5

EADS1

決定内容の補完

67

Slave

Slave

MasterA 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だよ!

ありがとう

© Hitachi, Ltd. 2015. All rights reserved.

更新順序が同じなので,同じ内容になる

EADS2

EADS3

EADS4

EADS5

EADS1

決定内容の補完

68

Slave

Slave

MasterA 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

© Hitachi, Ltd. 2015. All rights reserved.

決定内容の補完

69

処理の抜けに気付けるから,障害回復してからも一貫性を保てる。

© Hitachi, Ltd. 2015. All rights reserved.

更新内容と順序を「提案」する

EADS2

EADS3

EADS4

EADS5

EADS1

事前の進捗確認

70

[1] write Aするよ!

Slave

Slave

MasterA ---

A ---

A ---

© Hitachi, Ltd. 2015. All rights reserved.

決定は過半数承認(多数決)で行う

EADS2

EADS3

EADS4

EADS5

EADS1

事前の進捗確認

71

[1] write Aするよ!

Slave

Slave

MasterA ---

A ---

A ---

[1] write A承認!

[1] write A承認!

© Hitachi, Ltd. 2015. All rights reserved.

[1] write A

承認した内容は覚えておく。

EADS2

EADS3

EADS4

EADS5

EADS1

事前の進捗確認

72

[1] write Aするよ!

Slave

Slave

MasterA ---

A ---

A ---

[1] write A承認!

[1] write A承認![1] write A

[1] write A

© Hitachi, Ltd. 2015. All rights reserved.

「決定」を通知しようとしたら,障害が・・・

EADS2

EADS3

EADS4

EADS5

EADS1

事前の進捗確認

73

Slave

Slave

Master

A ---

A ---

[1] write A

[1] write A

© Hitachi, Ltd. 2015. All rights reserved.

新しいサーバが処理を引き継ぐ

EADS2

EADS3

EADS4

EADS5

EADS1

事前の進捗確認

74

Slave

Slave

Master

A ---

A ---

[1] write A

[1] write A

通信が切れた処理引き継ぎ

Master

© Hitachi, Ltd. 2015. All rights reserved.

自分含め過半数に進捗を確認する。

EADS2

EADS3

EADS4

EADS5

EADS1

事前の進捗確認

75

Master

Slave

A ---

A ---

[1] write A

[1] write A

今どうなってるの?

© 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承認したよ

なにもしてないよ

© 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しよう

© 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承認!

© Hitachi, Ltd. 2015. All rights reserved.

事前の進捗確認

79

中途半端な状態で障害が起きても別サーバで処理を継続できる。

© Hitachi, Ltd. 2015. All rights reserved.

Paxosの挙動

80

更新内容と順序を多数決

決定内容の補完

事前の進捗確認

スプリットブレインが起きたときはどうなるのか?

© Hitachi, Ltd. 2015. All rights reserved.

一貫性が崩れる原因 おさらい

81

Write A=bbb

Write A=ccc

Aの処理は引き継ぎます。

A bbb

A ccc

A aaa

他から応答が来ない?

© Hitachi, Ltd. 2015. All rights reserved.

更新内容と順序を「提案」するけれど

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

82

Slave

Slave

MasterA ---

A ---

A ---

[1] write Aするよ!

© Hitachi, Ltd. 2015. All rights reserved.

過半数の承認を得られない。

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

83

Slave

Slave

MasterA ---

A ---

A ---

[1] write Aするよ!

[1] write A承認!

[1] write A

[1] write A

© Hitachi, Ltd. 2015. All rights reserved.

処理の引き継ぎが行われると・・・

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

84

Slave

Slave

MasterA ---

A ---

A ---

[1] write A

[1] write A

通信が切れた処理引き継ぎ

Master

© Hitachi, Ltd. 2015. All rights reserved.

事前確認が行われる。

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

85

Master

Slave

MasterA ---

A ---

A ---

[1] write A

[1] write A

今どんな感じですか?

© Hitachi, Ltd. 2015. All rights reserved.

右側には通信が来ていないので

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

86

Master

Slave

MasterA ---

A ---

A ---

[1] write A

[1] write A

今どんな感じですか?

なにもしてません

なにもしてません

© Hitachi, Ltd. 2015. All rights reserved.

まったく別の更新内容を提案する

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

87

Master

Slave

MasterA ---

A ---

A ---

[1] write A

[1] write A

[1] write A #するよ!

© Hitachi, Ltd. 2015. All rights reserved.

承認して覚えておく。

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

88

Master

Slave

MasterA ---

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 #承認!

© Hitachi, Ltd. 2015. All rights reserved.

こんなタイミングでネットワークが回復すると・・

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

89

Master

Slave

MasterA ---

A ###

A ###

[1] write A

[1] write A

[1] write A #

[1] write A #

[1] write A #

[1] write Aするよ!

© Hitachi, Ltd. 2015. All rights reserved.

残り一人の承認は得られず,逆に補完される

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

90

Master

Slave

MasterA ---

A ###

A ###

[1] write A

[1] write A

[1] write A #

[1] write A #

[1] write A #

[1] write A #決定ずみ!

© Hitachi, Ltd. 2015. All rights reserved.

EADS2

EADS3

EADS4

EADS5

EADS1

スプリットブレインの時は・・・

91

Master

Slave

MasterA ###

A ###

A ###

[1] write A #

[1] write A

[1] write A #

[1] write A #

[1] write A #

© Hitachi, Ltd. 2015. All rights reserved.

Paxosの挙動

92

更新内容と順序を多数決

決定内容の補完

事前の進捗確認

スプリットブレインが起きたときはどうなるのか?

一貫性は崩れない!

© Hitachi, Ltd. 2015. All rights reserved.

まとめ

93

© Hitachi, Ltd. 2015. All rights reserved.

一貫性へのこだわりと実現方法 -まとめ-

94

一貫性へのこだわり

社会インフラのシステムでの利用を想定システムトラブルの原因になるデータ不整合を徹底対策

一貫性の実現方法

分散合意アルゴリズムのPaxosを導入スプリットブレインでも崩れない強一貫性を実現

© Hitachi, Ltd. 2015. All rights reserved.

他社商品名、商標等の引用に関する表示

95

• Hitachi Elastic Application Data Storeは,(株)日立製作所の登録商標です。

• その他記載の会社名,製品名は,それぞれの会社の商標もしくは登録商標です。

• 製品の改良により予告なく記載されている仕様が変更になることがあります。

© Hitachi, Ltd. 2015. All rights reserved.

株式会社 日立製作所 情報・通信システム社ITプラットフォーム事業本部

~こだわりの理由と実現方法とは~

データ一貫性にこだわる日立のインメモリ分散KVS

2015/06/12

和田 洋祐

END

96