[B16] NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫るby Toshimitsu hara

1,073 views
971 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,073
On SlideShare
0
From Embeds
0
Number of Embeds
75
Actions
Shares
0
Downloads
16
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

[B16] NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫るby Toshimitsu hara

  1. 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. 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. 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.
  4. 4. 基幹データベースに求められる機能 「高性能」・「拡張性」 「データ整合性の保証」 • 検索・更新のバランスの取れた 高速性が必要 • HWのみに依存しない万全の データ保全機能が必須 • データ量、アクセス処理量の 増加に柔軟に対応できる 拡張性が求められる • トランザクション整合性が必須 この相反する要求をバランス良く満たすデータベース技術が求められている 相反す 要求を ラ 良 満 す タ 技術 求 4 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  5. 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. 6. そこに必要な技術とは 複数コンポーネント間のデータ更新を単一トランザクションとして 複数 ンポ ネント間のデ タ更新を単 トランザクシ ンとして 制御する「高性能 2フェーズコミット機能」を実装する必要がある < 技術的課題 > • 従来、2フェーズコミット処理は 非常に重く、利用を避けるべき 技術とされてきた • オーバーヘッドを限界まで削減 オ ッドを限界まで削減 − メッセージ交換オーバーヘッド の削減 下位レイヤ での実装 − 下位レイヤーでの実装 6 • トランザクション管理を実行する モジュールがボトルネックになり易い • 分散型トランザクション管理機能 − 各処理ノードで並列稼働する トランザクション管理実装 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  7. 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. 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. 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. 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. 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. 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
  13. 13. 分散データベースが提供する具体的な機能 アプリケーションからは単一データと同様に扱えながら、常に性 能面・管理面で最適なデータ配置を実現することを可能とする 1. 単一のテーブルのパーティションを、地理的に離れたノードに 単 テ ティシ ンを、地理的 離れ 透過的に分散配置することができる 2. 配置の変更も透過的に、データアクセスを実行中に実行できる . 配置の変更も透過的に、デ タアクセスを実行中に実行できる 3. データ更新はトランザクション保護され整合性が保証される 13 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  14. 14. 分散データベース事例 アプリ1 アプリ2 米国拠点 アプリ1 東京拠点 アプリ2 シングル データベース バックアップセンター • 単一の“顧客テーブル“を、東京-米国のパーティション構成で保持 単 顧客 を、東京 米国 ィ 構成 保持 • 日本顧客のデータは東京ノードに、米国顧客のデータは米国ノードに配置 • アプリケーションは、世界中の顧客のデータを自由にアクセス可能 - 各拠点に接続のアプリの大半のアクセスはローカルノードで完結 - 多少のアクセス時間はかかるが、アプリケーションはデータ配置を 全く意識せずに全顧客のデータにアクセスが可能 14 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. バックアップセンター バ ク プセ タ (米国)
  15. 15. 木構造によるトランザクション管理の階層化 ノード間通信は遅延時間が大きいため、トランザクションコーディ ネータを階層化し、ノード間のメッセージ数を削減することでグ ルーバルトランザクション制御のオーバーヘッドを最小化する ル バルトランザクション制御のオ バ ヘッドを最小化する コーディ ネータ コーディ コ ディ ネータ ノード間メッセージ数 4×2 = 8メッセージ 8メッセ ジ 15 サブ コーディネータ サブ コーディネータ ノード間メッセージ数 1×2 = 2メッセージ 2メッセ ジ © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  16. 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. 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. 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.
  19. 19. 障害発生時の挙動 <障害復旧後> コーディ ネータ 障害 発生 コミット指示 コミット確定 準備完了 コミット ??? ロールバック ??? サブ コーディネータ 更新データ <ロック中> コミットかロールバック か バ 確定するまでロックは 解放されない 19 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  20. 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. 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. 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. 23. HP NonStop SQL の障害時挙動 23 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  24. 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. 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. 26. ご静聴ありがとうございました 静聴ありがとう ざ ました © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

×