[b16] nonstop...

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

Upload: insight-technology-inc

Post on 10-Jun-2015

589 views

Category:

Technology


6 download

TRANSCRIPT

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

HP N S SQLはなぜグロ バルにHP NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか日本ヒューレット・パッカード株式会社日本ヒュ レット パッカ ド株式会社

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

原 敏光

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

2013年11月13日

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

垂直統合型無停止データベースプラットフォーム

HP NonStop SQLをご存知ですか?垂直統合型無停止デ タベ スプラットフォ ム

止まらないDBサーバー1台のHP NonStop サーバーで他では実現できないレベルの可用性を提供1

2 導入コスト・運用コストが削減可能

1台のHP NonStop サーバーで他では実現できないレベルの可用性を提供

プラットフォ ム費用 保守費用 運用ランニングコストすべて削減できます

1

32

スケールアウト可能なDBサーバーHW増設により直線的に性能増加が可能 ボトルネックのない並列構成

プラットフォーム費用、保守費用、運用ランニングコストすべて削減できます

43

他データベースからの移行も容易に

HW増設により直線的に性能増加が可能、ボトルネックのない並列構成

他デ タベ スと高い互換性を実現 移行ツ ルにより工数削減も可能

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

4 他データベースと高い互換性を実現、移行ツールにより工数削減も可能

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

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

HP NonStop SQLによるミッションクリティカルOLTPシステムワ ルドワイドでのお客様ご利用状況

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

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

– ペイメントシステム – HLR (Home Location – 生産管理、製造制御 – 電子患者記録クレジット、デビット、POS、資金決済

– 為替取引、証券取引

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

– 受発注、チケット予約

– EDI、データ集配信

– 国防関連

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

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

全世界のクレジット

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

HLR ソリューションで

– 世界 大規模の自動車メーカにおける生産管理システム

世界規模の旅行予

– 多くの世界 大級の大学付属病院を含む、200以上の病院

国家安全保障

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

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

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

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

– 国家安全保障

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

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

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

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

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

• データ量、アクセス処理量の増加に柔軟に対応できる拡張性が求められる

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

拡張性が求められる

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

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

相反す 要求を ラ 良 満 す タ 技術 求相反す 要求を ラ 良 満 す タ 技術 求

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

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

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

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

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

プロセッサ プロセッサ プロセッサ プロセッサ

OS

DBOS OS

DBOS

DBDB

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

インターコネクト

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

そこに必要な技術とは

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

< 技術的課題 >• 従来、2フェーズコミット処理は非常に重く、利用を避けるべき技術とされてきた

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

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

< 技術的課題 >

技術とされてきた

• オーバーヘッドを限界まで削減 • 分散型トランザクション管理機能オ ッドを限界まで削減

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

− 下位レイヤーでの実装

分散型トランザクション管理機能− 各処理ノードで並列稼働するトランザクション管理実装

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

下位レイヤ での実装

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

HP NonStop SQLの実装オーバーヘッドを限界まで削減オーバーヘッドを限界まで削減1. CPU間通信にHWベースの高速通信機能を採用

− HP ServerNet™HP ServerNet

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

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

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

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

※1 メッセージ長4KB 弊社社内性能試験結果より

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

< HP ServerNet ASIC >

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

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

参考) 超並列システム内ネットワーク技術 HP ServerNet™• 高速 低遅延かつCPUに負荷をかけない専用接続技術として独自開発• 高速、低遅延かつCPUに負荷をかけない専用接続技術として独自開発

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

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

・・・

ServerNet Y系・・・ServerNet X系

ServerNet

ServerNetルータ V3

・・・

I/Oに接続

(複数ノード構成: 8ノード接続例) ServerNetル タ V3• 1チップASICルータ• 全二重ポート×32• チップ当り64Gb/秒のスループット• 512バイトの固定長パケット• ワームホール・ルーティングによる高速転送

1

2 3

4

NonStop Blade複数 構

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

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

• チェックサムによるデータ整合性保証機能5

67

8

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

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

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

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

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

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

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

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

全体でコミットOKコーディネータ

コミット

準備! コミット

準備!

コミット

準備!完了! 完了!

完了!

全体でコミットOK

Trx 101: ph1

データRedoUndoログ

DBMS

データRedoUndoログ

DBMS

データRedoUndoログ

DBMS

準備

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

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

コミット

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

完了!

コミット完了

Trx 101: ph2

データRedoUndo

DBMS

データRedoUndo

DBMS

デ タRedoUndo

DBMS

確定! コミット

確定!

コミット

確定!完了! 完了!

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

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

データ Undoログ

データ Undoログ

データ Undoログ

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

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

トランザクションコーディネータ

特殊パケット

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

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

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

Trx 101 Act CPU 0,1,2

Trx 100 ActPh1

ServerNet割り込みハンドラ

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

コミット準備!

完了!

ServerNet割り込みハンドラ

ServerNet割り込みハンドラ

同時実行トランザクション数が多い時は、複数パケットを単一パケットに詰めて送信(待ち時間を自動で調節)

割り込み ンドラ

制御 ブ を

制御テーブルを更新

Trx 101 CPU 0,1,2

Trx 100 ActTrx 101

Act

Act CPU 0,1,2

Trx 100 ActプロセスWAKE

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

(待ち時間を自動で調節)

Ph1

Ph1

データ

DBMSTrx 101: ph1

DBMSTrx 101

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

データ

DBMSTrx 10:

Redo/UndoRedo/Undo

Redo/Undoログバッファ

ログディスク

プロセス-B

ログディスク

プロセス-PWALフラッシュ

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

データ/

ログRedo/Undoログバッファ WALフラッシュ

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

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

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

CPU CPU CPU

OS OS OS

CPU

OS

サイトACPU

OS

CPU

OS

サイトB

DB

ServerNet

DB DB DB

通信回線

DB DB

ServerNet

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

シングルデータベース

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

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

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

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

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

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

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

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

分散データベース事例アプリ2アプリ1

バ ク プセ タ

アプリ1

アプリ2アプリ1

米国拠点

バックアップセンター(米国)

東京拠点アプリ2

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

バックアップセンター

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

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

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

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

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

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

Page 15: [B16] NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫るby Toshimitsu 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.15

4×2 = 8メッセ ジ 1×2 = 2メッセ ジ

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

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

コーディネータ

Node A N d B

Trx 101: Orig Node=Node A Sub Node = ( A, B )

サブデ

サブ

Node A Node B

Trx 101: Orig Node=Node A Trx 101: Orig Node=Node A

コーディネータ コーディネータCPU = ( 1, 2 ) 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.16

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

木構造によるトランザクション管理の階層化HP NonStopサーバーでの実装例HP NonStopサ バ での実装例ローカルノードがトランザクション開始ノードの場合のコーディネータと、リモートノードがトランザクション開始ノードの場合のサブタと、リモ トノ ドがトランザクション開始ノ ドの場合のサブコーディネータの機能を兼ね備えたトランザクションモニタープロセス (TMP)がノード毎に起動される

1. ネットワーク接続されたノード間で、自動的にトランザクション連携機能が提供される (特別な設定は不要)

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

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

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

重障害発生時の2pcの限界< 可用性に関する技術課題 >

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

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

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

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

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

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

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

あるため、通常はあまり短いタイムアウト時間に設定することはできない

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

障害発生時の挙動

<障害復旧後>コミット???

ロールバック???

コーディネータ

コミット指示サブ

コーディネータ準備完了

障害発生

コミット確定

更新データ<ロック中>

発生

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

解放されない

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

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

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

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

実装の場合)

されていない

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

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

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

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

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

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

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

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

無停止ノ ド B無停止ノード A 無停止ノード 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.21

TrxLog C

DB

必要です

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

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

「HP NonStop SQL」無停止実現のアーキテクチャーDBエンジンに組み込まれたプロセス2重化機能 (=プロセスペア)

• フェイルオーバー(再起動)ではなく、テイクオーバー(処理継続)

CPU 0 CPU 1 CPU 2 CPU 3

PrimaryBackup PrimaryBackup

オ バ (処理継続)

秒単位の復旧を実現

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

Primary Backup

Primary Backup Primary Backup

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

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

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

CPU 0 CPU 1 CPU 2 CPU 3

CPU障害

をPrimaryプロセスから定期的に受信

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

Primary

Primary

Primary

PrimaryBackup

Primary Backup

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

ダウン直前の状態から処理を継続実行するPrimary

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

HP NonStop SQL の障害時挙動

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

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

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

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

• HP NonStop SQLではアプリケーションコードで、「全てのデー

持つことが望まれる

タがアクセス可能な時だけ処理を行う」、「アクセス可能なデータ範囲で処理を行う」を選択可能

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

処理 続行 中止を プ ケ シ 選択 きる

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

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

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

まとめ

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

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

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

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

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

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

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

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