More Related Content
Similar to D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
Similar to D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara (20)
More from Insight Technology, Inc.
More from Insight Technology, Inc. (20)
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
- 2. 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億以上
- 3. 基幹データベースに求められる機能
「高性能」・「拡張性」 「データ整合性の保証」
• 検索・更新のバランスの取れた
高速性が必要
• HWのみに依存しない万全の
データ保全機能が必須高速性 必要
• データ量、アクセス処理量の
増加に柔軟に対応できる
機
• トランザクション整合性が必須
増加に柔軟に対応できる
拡張性が求められる
この相反する要求をバランス良く満たすデータベース技術が求められているこの相反する要求をバランス良く満たすデータベース技術が求められている
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.3
この相反する要求をバランス良く満たすデ タベ ス技術が求められているこの相反する要求をバランス良く満たすデ タベ ス技術が求められている
- 5. そこに必要な技術とは
複数コンポーネント間のデータ更新を単一トランザクションとして
制御する「高性能 2フェーズコミット機能」を実装する必要がある制御する「高性能 2フェ ズコミット機能」を実装する必要がある
< 技術的課題 >
• 従来、2フェーズコミット処理は
非常に重く 利用を避けるべき
• トランザクション管理を実行する
モジュールがボトルネックになり
< 技術的課題 >
非常に重く、利用を避けるべき
技術とされてきた
モジュ ルがボトルネックになり
易い
• オーバーヘッドを限界まで削減
− メッセージ交換オーバーヘッド
• 分散型トランザクション管理機能
− 各処理ノードで並列稼働するト
の削減
− 下位レイヤーでの実装
ランザクション管理実装
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.5
- 6. 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、弊社社内性能試験結果より
- 7. 参考) 超並列システム内ネットワーク技術
- 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
- 8. HP NonStop SQLの実装
オ バ ヘッドを限界まで削減オーバーヘッドを限界まで削減
2. トランザクション管理機能をOSに統合トランザクション管理機能を に統合
− トランザクション管理テーブルの更新機能をインタラプト処理
内に実装
• プロセスディスパッチのオーバーヘッドを削減
• カーネルモードとユーザーモードのスイッチオーバーヘッド
を削減
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.8
- 9. 2フェーズコミット
フ ズ1 ミ ト要求フ ズ
トランザクション
フェーズ1 : コミット要求フェーズ
コーディネータ
コミット
準備
完了!
トランザクション
全体でコミットOK
Trx 101: ph1
準備! コミット
準備!
コミット
準備!
完了! 完了!
データ
Redo
Undo
DBMS
データ
Redo
Undo
DBMS
データ
Redo
Undo
DBMS
Trx 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 データ
Redo
Undo
ログ
データ
Redo
Undo
ログ
データ
Redo
Undo
ログ
ロック解放 ロック解放 ロック解放
Trx 101: ph2 Trx 101: ph2 Trx 101: ph2
- 10. OSレベルでのトランザクション管理 実装例
フ ズ1 ミ ト要求フ ズフェーズ1 : コミット要求フェーズ
コーディネータ
トランザクション
全体でコミットOK
コ ディネ タ
特殊パケット
CPU宛て特殊
ServerNetパケット
コミット準備!
全CPUで同期されたトランザクション
制御テーブルを保持
Trx 101 Act CPU 0,1,2
Trx 100 Act
Ph1
ServerNet
特殊パケット
で返信
完了!
コミット
準備!
完了!
ServerNet ServerNet
割り込みハンドラ
同時実行トランザクション
数が多い時は、複数パ
ケットを単一パケットに詰ServerNet
割り込みハンドラ割り込みハンドラ
割り込みハンドラ
制御テーブル
を更新
Trx 100 Act
Trx 101 Act CPU 0,1,2
Trx 100 Act
プロセス
WAKE
ケットを単 パケットに詰
めて送信
(待ち時間を自動で調節)
Ph1
DBMS
制御テーブル
を参照し処理
実行
DBMS
Trx 10:
Trx 101 CPU 0,1,2Act
システムで1つの
ログファイル
Ph1
データ
S
Trx 101: ph1
デ タ
DBMS
Trx 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フラッシュ
- 14. 木構造によるトランザクション管理の階層化
ノード間通信は遅延時間が大きいため、トランザクション
コ ディネ タを階層化し ノ ド間のメッセ ジ数を削コーディネータを階層化し、ノード間のメッセージ数を削
減することでグルーバルトランザクション制御のオー
バ ヘッドを最小化するバーヘッドを最小化する
コーディ
ネータ
サブ
コーディ
ネータ
コーディ
ネータ
サブ
コーディ
ネータ
ネータ
ノード間メッセージ数
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
- 15. 木構造によるトランザクション管理の階層化
コーディネータ
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
- 16. 木構造によるトランザクション管理の階層化
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
- 17. 重障害発生時の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
可能性 あるため、通常はあまり短 タイ アウ 時間 設定する は
きない
- 18. 障害発生時の挙動
<障害復旧後>
コミット ???
ロールバック ???
コーディ
ネータ
コミット指示 サブ
コーディ
ネ タ障害
<障害復旧後>
コミット確定
ル ック ???
ネ タ
ネータ
準備完了
更新データ
< ク中>
障害
発生
<ロック中>
コミットかロールバッコミットか ル ッ
ク か確定するまで
ロックは解放されない
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.18
- 19. 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
- 21. 「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
状態から処理を継続実行する
- 22. HP NonStop SQL の障害時挙動
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.22
- 23. 分散データベースに求められる “自立性” (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
- 24. まとめ
基幹グローバル分散データベースを可能とする
垂直統合型データベース技術 「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