Contenu connexe
Similaire à [B16] NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫るby Toshimitsu hara (20)
Plus de Insight Technology, Inc. (20)
[B16] NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫るby Toshimitsu hara
- 1. HP NonStop SQLはなぜグローバルに
N S SQLはなぜグロ バルに
分散DBを構築できるのか、
データの整合性を保てるのか
日本ヒュ レット パッカ ド株式会社
日本ヒューレット・パッカード株式会社
プリセールス統括本部 サーバー技術本部
原 敏光
2013年11月13日
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 2. HP NonStop SQLをご存知ですか?
垂直統合型無停止デ タベ スプラットフォ ム
垂直統合型無停止データベースプラットフォーム
1
2
3
4
2
止まらないDBサーバー
1台のHP NonStop サーバーで他では実現できないレベルの可用性を提供
導入コスト・運用コストが削減可能
プラットフォーム費用、保守費用、運用ランニングコストすべて削減できます
プラットフォ ム費用 保守費用 運用ランニングコストすべて削減できます
スケールアウト可能なDBサーバー
HW増設により直線的に性能増加が可能、ボトルネックのない並列構成
HW増設により直線的に性能増加が可能 ボトルネックのない並列構成
他データベースからの移行も容易に
他データベースと高い互換性を実現、移行ツールにより工数削減も可能
他デ タベ スと高い互換性を実現 移行ツ ルにより工数削減も可能
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 3. HP NonStop SQLによるミッションクリティカルOLTPシステム
ワ ルドワイドでのお客様ご利用状況
ワールドワイドでのお客様ご利用状況
金融サービス
– ペイメントシステム
クレジット、デビット、
POS、資金決済
– 為替取引、証券取引
通信・メディア
– HLR (Home Location
Register)
– インテリジェント・ネット
ワーク、第3世代サービス
メッセージング
流通・製造
サービス
ヘルスケア
政府・公共機関
– 生産管理、製造制御
– 電子患者記録
– 受発注、チケット予約
– 国防関連
– EDI、データ集配信
– 警察、消防の緊急指
示システム
– 全世界の ATM トラン
ザクションの 70% を
処理
– 世界最大の ISP にお
けるメッセージングシ
ステム
– 世界最大規模の自
動車メーカにおける
生産管理システム
– 多くの世界最大級の
大学付属病院を含む、
200以上の病院
– 全世界のクレジット
カードトランザクショ
ンの 2/3 を処理
– HLR ソリューションで
管理されている端末
は3億以上
– 世界規模の旅行予
約システム
– 国家安全保障
3
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 5. 性能の拡張性
• コンポ ネントを横に並べ 並列処理により高速性と拡張性を確保する実装
コンポーネントを横に並べ、並列処理により高速性と拡張性を確保する実装
が広く採用されている
• 特に疎結合型アーキテクチャは直線的な拡張性を提供できることが実証され
ている
• ただし、一般的には参照系データベースに適用される技術である
疎結合分散コンポーネント間でのトランザクション整合性保証を
疎結合分散コンポ ネント間でのトランザクション整合性保証を
実装しつつ、高性能・拡張性を確保するのは困難である
プロセッサ
プロセッサ
プロセッサ
プロセッサ
DB
DB
DB
DB
OS
OS
OS
OS
インターコネクト
5
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 6. そこに必要な技術とは
複数コンポーネント間のデータ更新を単一トランザクションとして
複数 ンポ ネント間のデ タ更新を単 トランザクシ ンとして
制御する「高性能 2フェーズコミット機能」を実装する必要がある
< 技術的課題 >
• 従来、2フェーズコミット処理は
非常に重く、利用を避けるべき
技術とされてきた
• オーバーヘッドを限界まで削減
オ
ッドを限界まで削減
− メッセージ交換オーバーヘッド
の削減
下位レイヤ での実装
− 下位レイヤーでの実装
6
• トランザクション管理を実行する
モジュールがボトルネックになり易い
• 分散型トランザクション管理機能
− 各処理ノードで並列稼働する
トランザクション管理実装
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 7. HP NonStop SQLの実装
オーバーヘッドを限界まで削減
1. CPU間通信にHWベースの高速通信機能を採用
− HP ServerNet™
ServerNet
• DMAベースのASIC実装により低遅延を実現
• チェックサムによるデータ保護機能を内蔵
• ネットワーク型接続によりブレード数に応じた通信帯域を提供
• TCP/IP通信と比較し80%以上CPU負荷を低減 ※1
※1 … メッセージ長4KB 弊社社内性能試験結果より
メッセージ長4KB、弊社社内性能試験結果より
< HP ServerNet ASIC >
7
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 8. 参考) 超並列システム内ネットワーク技術 HP ServerNet™
• 高速 低遅延かつCPUに負荷をかけない専用接続技術として独自開発
高速、低遅延かつCPUに負荷をかけない専用接続技術として独自開発
• ServerNetはNonStop OSと統合されており、データ交換は割り込みレベルで直接処理される
CPU 0
CPU 1
CPUに接続
CPU 3
CPU 2
・・・
ServerNet Y系
・・・
ServerNet X系
ServerNet
・・・
・・・
I/Oに接続
(複数ノード構成: 8ノード接続例)
複数
構
2
NonStop Blade
3
1
8
8
4
1ノードは最大
16枚
16枚のブレード
を含みます
5
6
7
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
ServerNetル タ
ServerNetルータ V3
•
•
•
•
•
•
1チップASICルータ
全二重ポート×32
チップ当り64Gb/秒のスループット
512バイトの固定長パケット
ワームホール・ルーティングによる高速転送
チェックサムによるデータ整合性保証機能
- 9. HP NonStop SQLの実装
オーバーヘッドを限界まで削減
オ バ ヘッドを限界まで削減
2. トランザクション管理機能をOSに統合
− トランザクション管理テーブルの更新機能をインタラプト処理内に実装
• プロセスディスパッチのオーバーヘッドを削減
• カ ネルモ ドとユ ザ モ ドのスイッチオ バ ヘッドを削減
カーネルモードとユーザーモードのスイッチオーバーヘッドを削減
9
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 10. 2フェーズコミット
トランザクション
全体でコミットOK
フェーズ1 : コミット要求フェーズ
コーディネータ
Trx 101: ph1
コミット
準備!
コミット
完了!
DBMS
Trx 101: ph2
コミット
完了!
完了!
完
確定!
DBMS
10
Redo
Undo
ログ
データ
コーディネータ
確定!
データ
Trx 101: ph1
コミット完了
コミット
Redo
Undo
ログ
DBMS
Redo
Undo
ログ
データ
フェーズ2 : コミットフェーズ
Trx 101: ph2
準備
準備!
Trx 101: ph1
Redo
Undo
ログ
ロック解放
コミット
DBMS
Trx 101: ph1
データ
完了!
準備!
完了!
完了!
コミット
確定!
DBMS
Trx 101: ph2
ロック解放
データ
Redo
Undo
ログ
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
DBMS
Trx 101: ph2
ロック解放
データ
デ タ
Redo
Undo
ログ
- 11. OSレベルでのトランザクション管理 実装例
フェーズ1 : コミット要求フェーズ
トランザクション
全体でコミットOK
コーディネータ
Trx 100
Trx 101
CPU宛て特殊
ServerNetパケット
コミット準備!
特殊パケット
で返信
完了!
ServerNet
割り込みハンドラ
プロセス
WAKE
制御テーブルを
更新
Trx 100 Act
Trx 101 Ph1
Act
コミット
準備!
全CPUで同期されたトランザクション制御
テーブルを保持
完了!
同時実行トランザクション数が多い
時は、複数パケットを単一パケット
に詰めて送信
(待ち時間を自動で調節)
ServerNet
ServerNet
割り込みハンドラ
割り込み ンドラ
割り込みハンドラ
Trx 100
Trx 101
Act
Ph1
Act
CPU 0,1,2
システムで1つのログファイル
DBMS
DBMS
Trx 10:
DBMS
Trx 101
11
CPU 0,1,2
CPU 0,1,2
制御テーブルを
制御
ブ を
参照し処理実行
データ
Act
Ph1
Act
Redo/Undo
ログバッファ
データ
データ
Trx 101: ph1
Redo/Undo
ログバッファ
WALフラッシュ
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
WALフラッシュ
ログ
ディスク
プロセス-P
ログ
ディスク
プロセス-B
Redo/Undo
/
ログ
- 12. 分散データベースへの拡張
並列アーキテクチャのCPU間距離を延伸することで、分散データ
並列ア キテクチャのCPU間距離を延伸することで 分散デ タ
ベースを実現
−理想的な疎結合アーキテクチャでは、通信速度・帯域さえ確保できれば、コンポー
ネント間の距離は問題とならない
−データ利用者からは透過的に、データ量の増加などに対応して最適な場所にデー
タを配置し、必要なデータアクセス性能を提供・維持できる機能を提供する
サイトA
サイトB
CPU
CPU
CPU
CPU
CPU
CPU
OS
OS
OS
OS
OS
OS
DB
DB
DB
DB
DB
DB
ServerNet
通信回線
シングルデータベース
12
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
ServerNet
- 16. 木構造によるトランザクション管理の階層化
コーディネータ
Trx 101: Orig Node=Node A Sub Node = ( A, B )
Node A
Node
N d B
Trx 101: Orig Node=Node A
CPU = ( 1, 2 )
CPU 0
16
CPU 1
サブ
コーディネータ
デ
CPU 2
CPU 3
サブ
コーディネータ
CPU 0
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
CPU 1
Trx 101: Orig Node=Node A
CPU = ( 0, 2 )
CPU 2
CPU 3
- 17. 木構造によるトランザクション管理の階層化
HP NonStopサーバーでの実装例
NonStopサ バ での実装例
ローカルノードがトランザクション開始ノードの場合のコーディネー
タと、リモ トノ ドがトランザクション開始ノ ドの場合のサブ
タと、リモートノードがトランザクション開始ノードの場合のサブ
コーディネータの機能を兼ね備えたトランザクションモニタープロ
セス (TMP)がノード毎に起動される
1. ネットワーク接続されたノード間で、自動的にトランザクション
連携機能が提供される (特別な設定は不要)
2. 複数メッセージをまとめて送受信する等の最適化を実装
17
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 18. 重障害発生時の2pcの限界
< 可用性に関する技術課題 >
2pcを厳密に適用し、データ整合性を堅持しようとすると、
障害発生時には復旧までデータのロックが持続してしまう
• 2pcはネゴシエーション結果を互いに待ち続けられことを前提にデータ整合性を保証
するプロトコルである
するプロト ルである
• 実際のシステムではタイムアウト時間を設定し、コミット指示に対しRMやサブコーディ
ネータからの応答が返らない場合、まだコミットされていないものとして処理を続行す
るのが通常(Presume ABORT)
るのが通常(P
- コーディネータはトランザクションをロールバックし、制御テーブルから情報を削除
• 実際のデータ更新は、コミットされていてデータ整合性が損なわれてしまう可能性が
あるため、通常はあまり短いタイムアウト時間に設定することはできない
あるため 通常はあまり短 タイム ウ 時間 設定する とは きな
18
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 20. Heuristic completion
許容される待ち時間を超えてコーディネータから応答が無い場合、
許容される待ち時間を超えて
デ ネ タから応答が無い場合
通常は障害が発生したと仮定しロールバックする (Presume Abort
実装の場合)
•
実際には更新がCommitされている場合もあるため、データ整合性は保証
されていない
これがHeuristic completionの発生した状況である
•
20
障害を起こしたノードが再起動した時点で、データ不整合が発生したこと
が判明し、手動でのデータ修正が必要となる
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 21. 分散データベースに求められる “可用性”
データ整合性の保証が絶対な基幹データベースでは、Heuristic
デ タ整合性の保証が絶対な基幹デ タベ スでは H i i
ケースが発生しないノード可用性が必須である
•
•
障害時にも、業務で許容可能なタイムアウト時間内にトランザクション管理
機能が再開できる可用性が必須である
基幹業務の典型的なタイムアウト時間は最大でも数十秒であり、HP
NonStopサーバーは無停止機としてその要件を満たすことができる
無停止ノード A
Trx
Log A
無停止ノード
無停止ノ ド B
DB
無停止ノード C
Trx
Log C
21
DB
Trx
Log B
DB
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
当然、ネットワークには
十分な冗長構成実装が
必要です
- 22. 「HP NonStop SQL」無停止実現のアーキテクチャー
DBエンジンに組み込まれたプロセス2重化機能 (=プロセスペア)
CPU 0
CPU 1
CPU 2
CPU 3
Backup
Primary
Backup
Primary
Primary
Backup
Primary
Backup
Primary
Backup
CPU
障害
CPU 0
CPU 1
CPU 2
CPU 3
Primary
Backup
Primary
Primary
Primary
Backup
Primary
22
• フェイルオーバー(再起動)ではなく、テイク
オ バ (処理継続)
オーバー(処理継続)
秒単位の復旧を実現
• NonStop OS や、基幹ミドルウェアは、すべて
プロセスペアにて実装
• 2つのCPUに、2プロセスがペアとして存在する
• 実稼動するのはPrimaryプロセスのみ
• Backupプロセスは継続稼働に必要となる情報
をPrimaryプロセスから定期的に受信
を
プ
定期的 受信
• Primaryプロセスの異常終了や、CPUダウンが
起きると、自動的にBackupがPrimaryに昇格し、
ダウン直前の状態から処理を継続実行する
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 23. HP NonStop SQL の障害時挙動
23
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 24. 分散データベースに求められる “自立性” (autonomy)
万一の災害などでリモートノードがアクセス不能となった場合に
害 ど
ドが
能
も、アクセス可能なデータの範囲で処理が実施できる自立性を
持つことが望まれる
•
HP NonStop SQLではアプリケーションコードで、「全てのデー
タがアクセス可能な時だけ処理を行う」、「アクセス可能な
データ範囲で処理を行う」を選択可能
•
一部のデータがアクセス不能と想定される場合、
SQLExceptionで警告が通知される
−
24
処理の続行、中止をアプリケーションで選択できる
処理 続行 中止を プ ケ シ
選択 きる
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 25. まとめ
基幹グローバル分散データベースを可能とする
基幹グロ バル分散デ タベ スを可能とする
垂直統合型データベース技術 「HP NonStop SQL」
1.
1 堅牢・高速かつ拡張性のあるトランザクション管理機能をOSレベルで実装
必要な時にブレード追加。基幹データベースにスケールアウトの柔軟性!
2. 地理的分散データベースを実装可能とする、障害時にデータ不整合を起こさ
2 地理的分散デ タベ スを実装可能とする 障害時にデ タ不整合を起こさ
ない無停止トランザクション管理機能
複数DCに常に最適なデータ配置を実現!
3. ミッションクリティカル領域での豊富な運用実績
基幹データベースでお悩みの際にはHPにご相談下さい。
25
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
- 26. ご静聴ありがとうございました
静聴ありがとう ざ ました
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.