25
HP NonStop SQL はなぜグロバルに分散DB HP NonStop SQL はなぜグロ バルに分散DB 構築できるのか、データの整合性を保てるのか 日本ヒューレット・パッカード株式会社 プリセールス統括本部サーバー技術本部 原 敏光 2013531© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 2013531

D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

Embed Size (px)

Citation preview

Page 1: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

HP NonStop SQLはなぜグローバルに分散DBをHP NonStop SQLはなぜグロ バルに分散DBを構築できるのか、データの整合性を保てるのか

日本ヒューレット・パッカード株式会社

プリセールス統括本部サーバー技術本部

原 敏光

2013年5月31日

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

2013年5月31日

Page 2: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

HP NonStop SQLによるミッションクリティカルOLTPシステム

ワールドワイドでのお客様ご利用状況

流通 製造 ヘルスケア金融サービス 通信・メディア

流通・製造サービス

ヘルスケア政府・公共機関

– ペイメントシステムクレジ ト デビ ト

– HLR (Home Location R i t )

– 生産管理、製造制御 – 電子患者記録クレジット、デビット、POS、資金決済

– 為替取引、証券取引

Register)

– インテリジェント・ネットワーク、第3世代サービス

– メッセージング

– 受発注、チケット予約

– EDI、データ集配信

– 国防関連

– 警察、消防の緊急指示システム

– 全世界の ATM トランザクションの 70% を

– 世界 大の ISP におけるメッセ ジングシ

– 世界 大規模の自動車メ カにおける

– 多くの世界 大級の大学付属病院を含むザクションの 70% を

処理

– 全世界のクレジットカードトランザクションの 2/3 を処理

けるメッセージングシステム

– HLR ソリューションで管理されている端末は3億以上

動車メーカにおける生産管理システム

– 世界規模の旅行予約システム

大学付属病院を含む、200以上の病院

– 国家安全保障

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.2

ンの 2/3 を処理 は3億以上

Page 3: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

基幹データベースに求められる機能

「高性能」・「拡張性」 「データ整合性の保証」

• 検索・更新のバランスの取れた高速性が必要

• HWのみに依存しない万全のデータ保全機能が必須高速性 必要

• データ量、アクセス処理量の増加に柔軟に対応できる

• トランザクション整合性が必須

増加に柔軟に対応できる拡張性が求められる

この相反する要求をバランス良く満たすデータベース技術が求められているこの相反する要求をバランス良く満たすデータベース技術が求められている

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.3

この相反する要求をバランス良く満たすデ タベ ス技術が求められているこの相反する要求をバランス良く満たすデ タベ ス技術が求められている

Page 4: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

性能の拡張性

•コンポーネントを横に並べ、並列処理により高速性と拡張性を確保する実装が広く採用されている

•特に疎結合型アーキテクチャは直線的な拡張性を提供できることが実証されている

ただし 般的には参照系デ タベ スに適用される技術である•ただし、一般的には参照系データベースに適用される技術である

疎結合分散コンポーネント間でのトランザクション整合性保証を実装 高性能 拡 性を確保する 難 ある実装しつつ、高性能・拡張性を確保するのは困難である

プ プ プ ププロセッサ

DB

プロセッサ プロセッサ

DB

プロセッサ

DBDB

OS OS OS OS

インターコネクト

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.4

Page 5: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

そこに必要な技術とは

複数コンポーネント間のデータ更新を単一トランザクションとして制御する「高性能 2フェーズコミット機能」を実装する必要がある制御する「高性能 2フェ ズコミット機能」を実装する必要がある

< 技術的課題 >• 従来、2フェーズコミット処理は

非常に重く 利用を避けるべき

• トランザクション管理を実行する

モジュールがボトルネックになり

< 技術的課題 >

非常に重く、利用を避けるべき

技術とされてきた

モジュ ルがボトルネックになり易い

• オーバーヘッドを限界まで削減

− メッセージ交換オーバーヘッド

• 分散型トランザクション管理機能

− 各処理ノードで並列稼働するトの削減

− 下位レイヤーでの実装

ランザクション管理実装

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.5

Page 6: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

HP NonStop SQLの実装オ バ ヘッドを限界まで削減オーバーヘッドを限界まで削減

1. CPU間通信にHWベースの高速通信機能を採用間通信に の高速通信機能を採用− HP ServerNet™

• DMAベースのASIC実装により低遅延を実現実装 り低遅延を実現

• チェックサムによるデータ保護機能を内蔵

• ネットワーク型接続によりブレード数に応じた通信帯域を提供

• TCP/IP通信と比較し80%以上CPU負荷を低減 ※1

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.6

< HP ServerNet ASIC > ※1 … メッセージ長4KB、弊社社内性能試験結果より

Page 7: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

参考) 超並列システム内ネットワーク技術- HP ServerNet™- HP ServerNet™

• 高速、低遅延かつCPUに負荷をかけない専用接続技術として独自開発

• ServerNetはNonStop OSと統合されており、データ交換は割り込みレベルで直接処理される

・・・

CPUに接続CPU 0 CPU 1 CPU 2 CPU 3

・・・

ServerNet Y系・・・

ServerNet X系ServerNet

・・・

I/Oに接続

ServerNetルータ V3• 1チップASICルータ• 全二重ポート×32

プ当り /秒 プ ト

2 3 NonStop Blade

(複数ノード構成: 8ノード接続例)

11ノ ドは 大ノ ドは 大1616枚枚 • チップ当り64Gb/秒のスループット• 512バイトの固定長パケット• ワームホール・ルーティング

による高速転送• チェックサムによるデータ

1 4

11ノードは 大ノードは 大1616枚の枚のブレードを含みますブレードを含みます

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.7

整合性の保証機能5

67

8

Page 8: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

HP NonStop SQLの実装オ バ ヘッドを限界まで削減オーバーヘッドを限界まで削減

2. トランザクション管理機能をOSに統合トランザクション管理機能を に統合− トランザクション管理テーブルの更新機能をインタラプト処理内に実装

• プロセスディスパッチのオーバーヘッドを削減

• カーネルモードとユーザーモードのスイッチオーバーヘッドを削減

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.8

Page 9: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

2フェーズコミットフ ズ1 ミ ト要求フ ズ

トランザクションフェーズ1 : コミット要求フェーズ

コーディネータコミット

準備完了!

トランザクション全体でコミットOK

Trx 101: ph1

準備! コミット

準備!コミット

準備!完了! 完了!

データRedoUndo

DBMS

データRedoUndo

DBMS

データRedoUndo

DBMSTrx 101: ph1 Trx 101: ph1 Trx 101: ph1

フェーズ2 : コミットフェーズ

ログ ログ ログ

コミット完了フ ズ2 : ミットフ ズコーディネータ

コミット

確定! コミット コミット完 完了!

完了!Trx 101: ph2

DBMS DBMS DBMS

確定! 確定!完了! 完了!

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.9 データRedoUndoログ

データRedoUndoログ

データRedoUndoログ

ロック解放 ロック解放 ロック解放Trx 101: ph2 Trx 101: ph2 Trx 101: ph2

Page 10: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

OSレベルでのトランザクション管理実装例フ ズ1 ミ ト要求フ ズフェーズ1 : コミット要求フェーズ

コーディネータ

トランザクション全体でコミットOK

コ ディネ タ

特殊パケット

CPU宛て特殊ServerNetパケットコミット準備!

全CPUで同期されたトランザクション制御テーブルを保持

Trx 101 Act CPU 0,1,2

Trx 100 ActPh1

ServerNet

特殊パケットで返信完了!

コミット準備!

完了!

ServerNet ServerNet割り込みハンドラ

同時実行トランザクション数が多い時は、複数パケットを単一パケットに詰ServerNet

割り込みハンドラ割り込みハンドラ割り込みハンドラ

制御テーブルを更新

Trx 100 ActTrx 101 Act CPU 0,1,2

Trx 100 ActプロセスWAKE

ケットを単 パケットに詰めて送信(待ち時間を自動で調節)

Ph1

DBMS制御テーブルを参照し処理実行

DBMSTrx 10:

Trx 101 CPU 0,1,2Act

システムで1つのログファイル

Ph1

データ

STrx 101: ph1

デ タ

DBMSTrx 101

実行データ

Redo/Undo

Redo/Undoログバッファ

ログディスクプロセス

-B

ログディスクプロセス

-P

WALフラッシュ

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.10

データ Redo/Undoログ

ログバッファWALフラッシュ

Page 11: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

分散データベースへの拡張

並列アーキテクチャのCPU間距離を延伸することで、分散データベースを実現分散データベースを実現−理想的な疎結合アーキテクチャでは、通信速度・帯域さえ確保できれば、コンポーネント間の距離は問題とならない

−データ利用者からは透過的に、データ量の増加などに対応して 適な場所にデータを配置し、必要なデータアクセス性能を提供・維持できる機能を提供するを提供する

CPU CPU CPU CPU

サイトACPU CPU

サイトB

OS

DB

OS

DB

OS

DB

OS

DB

OS

DB

OS

DB

ServerNet

通信回線

ServerNet

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.11

シングルデータベース

Page 12: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

分散データベースが提供する具体的な機能

アプリケーションからは単一データと同様に扱えながら、常に性能面 管理面で 適なデ タ配置を実現すること常に性能面・管理面で 適なデータ配置を実現することを可能とする

1. 単一のテーブルのパーティションを、地理的に離れたノード1. 単 のテ ブルのパ ティションを、地理的に離れたノ ドに透過的に分散配置することができる

2 配置の変更も透過的に、データアクセスを実行中に実行で2. 配置の変更も透過的に、デ タアクセスを実行中に実行できる

3 データ更新はトランザクション保護され整合性が保証される3. デ タ更新はトランザクション保護され整合性が保証される

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.12

Page 13: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

分散データベース事例 バックアップセンター(米国)

アプリ2アプリ1

アプリ1

米国拠点

東京拠点アプリ2

東京拠点シングルデータベース

バックアップセンター

• 単一の“顧客テーブル“を、東京-米国のパーティション構成で保持

• 日本顧客のデータは東京ノードに、米国顧客のデータは米国ノードに配置

• アプリケーションは、世界中の顧客のデータを自由にアクセス可能

- 各拠点に接続のアプリの大半のアクセスはローカルノードで完結

- 多少のアクセス時間はかかるが、アプリケーションはデータ配置を全く意識せずに

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.13

全顧客のデータにアクセスが可能

Page 14: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

木構造によるトランザクション管理の階層化

ノード間通信は遅延時間が大きいため、トランザクションコ ディネ タを階層化し ノ ド間のメッセ ジ数を削コーディネータを階層化し、ノード間のメッセージ数を削減することでグルーバルトランザクション制御のオーバ ヘッドを 小化するバーヘッドを 小化する

コーディネータ

サブ

コーディネータ

コーディネータ

サブ

コーディネータ

ネータ

ノード間メッセージ数

4×2 = 8メッセージ

ノード間メッセージ数

1×2 = 2メッセージ

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.14

Page 15: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

木構造によるトランザクション管理の階層化

コーディネータTrx 101: Orig Node=Node A Sub Node = ( A, B )

Node A Node B

サブ サブT 101 O i N d N d A T 101 O i N d N d Aサブコーディネータ

サブコーディネータ

Trx 101: Orig Node=Node A

CPU = ( 1, 2 )

Trx 101: Orig Node=Node A

CPU = ( 0, 2 )

CPU 0 CPU 1 CPU 2 CPU 3CPU 0 CPU 1 CPU 2 CPU 3

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.15

Page 16: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

木構造によるトランザクション管理の階層化HP NonStopサ バ での実装例HP NonStopサーバーでの実装例

ローカルノードがトランザクション開始ノードの場合のロ カルノ ドがトランザクション開始ノ ドの場合のコーディネータと、リモートノードがトランザクション開始ノードの場合のサブコーディネータの機能を兼ね備えたノ ドの場合のサブコ ディネ タの機能を兼ね備えたトランザクションモニタープロセス (TMP)がノード毎に起動される

1 ネットワ ク接続されたノ ド間で 自動的にトランザクショ

動される

1. ネットワーク接続されたノード間で、自動的にトランザクション連携機能が提供される

特別な設定は不要特別な設定は不要

2. 複数メッセージをまとめて送受信する等の 適化を実装

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.16

Page 17: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

重障害発生時の2pcの限界

2 を厳密に適用し デ タ整合性を堅持しようとすると

< 可用性に関する技術課題 >

2pcを厳密に適用し、データ整合性を堅持しようとすると、障害発生時には復旧までデータのロックが持続してしまう

• 2pcはネゴシエーション結果を互いに待ち続けられことを前提にデータ整合p性を保証するプロトコルである

• 実際のシステムではタイムアウト時間を設定し、コミット指示に対しRMやサ

ブコーディネータからの応答が返らない場合 まだコミットされていないものブコ ディネ タからの応答が返らない場合、まだコミットされていないものとして処理を続行するのが通常(Presume ABORT)-コーディネータはトランザクションをロールバックし、制御テーブルから

情報を削除する情報を削除する

• 実際のデータ更新は、コミットされていてデータ整合性が損なわれてしまう可能性があるため、通常はあまり短いタイムアウト時間に設定することはで

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.17

可能性 あるため、通常はあまり短 タイ アウ 時間 設定する はきない

Page 18: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

障害発生時の挙動

<障害復旧後>

コミット???ロールバック???

コーディネータ

コミット指示 サブコーディネ タ障害

<障害復旧後>

コミット確定

ル ック???

ネ タネータ

準備完了

更新データ< ク中>

障害発生

<ロック中>

コミットかロールバッコミットか ル ックか確定するまで

ロックは解放されない

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.18

Page 19: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

Heuristic completion

許容される待ち時間を超えてコーディネータから応答が無い場合 通常は障害が発生したと仮定しロールバック無い場合、通常は障害が発生したと仮定しロ ルバックする (Presume Abort実装の場合)

• 実際には更新がCommitされている場合もあるため、データ実際には更新がCommitされている場合もあるため、デ タ整合性は保証されていない

これがHeuristic completionの発生した状況であるこれがHeuristic completionの発生した状況である

• 障害を起こしたノードが再起動した時点で、データ不整合が発生したことが判明し 手動でのデータ修正が必要となる発生したことが判明し、手動でのデ タ修正が必要となる

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.19

Page 20: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

分散データベースに求められる “可用性”

データ整合性の保証が絶対な基幹データベースでは、Heuristicケースが発生しないノード可用性が必須であるHeuristicケースが発生しないノード可用性が必須である

• 障害時にも、業務で許容可能なタイムアウト時間内にトランザクション管理機能が再開できる可用性が必須である

基幹 務 時 も数• 基幹業務の典型的なタイムアウト時間は 大でも数十秒であり、HP NonStopサーバーは無停止機としてその要件を満たすことができるたすことができる

無停止ノード B無停止ノード A 当然、ネットワークには十分な冗長構成

無停止ノード C

TrxLog A

TrxLog B

DB DB

は十分な冗長構成実装が必要です

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.20Trx

Log CDB

Page 21: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

「HP NonStop SQL」無停止実現のアーキテクチャー

DBエンジンに組み込まれたプロセス2重化機能 (=プロセスペア)

CPU 0 CPU 1 CPU 2 CPU 3

• フェイルオーバー(再起動)ではなく、テイクオーバー(処理継続)秒単位の復旧を実現

PrimaryBackup

P i B k

PrimaryBackup

P i B k

• NonStop OS や、基幹ミドルウェアは、すべてプロセスペアにて実装

• 2つのCPUに、2プロセスがペアとして

Primary Backup

Primary Backup Primary Backup

2つのCPUに、2プロセスがペアとして存在する

• 実稼動するのはPrimaryプロセスのみ

B k プロセスは継続稼働に必要とCPU 0 CPU 1 CPU 2 CPU 3

CPU障害

• Backupプロセスは継続稼働に必要となる情報をPrimaryプロセスから定期的に受信

プ 終

CPU 0 CPU 1 CPU 2 CPU 3

Primary PrimaryBackup

• Primaryプロセスの異常終了や、CPUダウンが起きると、自動的にBackupがPrimaryに昇格して、ダウン直前の状態から処理を継続実行する

Primary

Primary Primary Backup

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.21

状態から処理を継続実行する

Page 22: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

HP NonStop SQL の障害時挙動

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.22

Page 23: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

分散データベースに求められる “自立性” (autonomy)

万一の災害などでリモートノードがアクセス不能となった場合にも アクセス可能なデータの範囲で処理が実施場合にも、アクセス可能なデータの範囲で処理が実施できる自立性を持つことが望まれる

• HP NonStop SQLではアプリケーションコードで、「全てのデーpタがアクセス可能な時だけ処理を行う」、「アクセス可能なデータ範囲で処理を行う」を選択可能

• 一部のデータがアクセス不能と想定される場合、SQLExceptionで警告が通知される

− 処理の続行、中止をアプリケーションで選択できる

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.23

Page 24: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

まとめ

基幹グローバル分散データベースを可能とする垂直統合型データベース技術 「HP NonStop SQL」垂直統合型デ タ 技術 p Q 」

1. 堅牢・高速かつ拡張性のあるトランザクション管理機能をOSレベルで実装レベルで実装必要な時にブレードを追加。基幹データベースにあスケールアウトの柔軟性を!あ ケ ルアウトの柔軟性を

2. 分散データベースを実装可能とする、障害時にデータ不整合を起こさない無停止トランザクシ ン管理機能合を起こさない無停止トランザクション管理機能複数DCに常に 適なデータ配置を実現!

3. ミッションクリティカル領域での豊富な運用実績基幹データベースでお悩みの際にはHPにご相談下さい

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.24

Page 25: D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara

ご清聴ありがとうございました。ご清聴ありがとうございました。

© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.