JP3599055B2 - 記憶装置管理方法およびシステム - Google Patents
記憶装置管理方法およびシステム Download PDFInfo
- Publication number
- JP3599055B2 JP3599055B2 JP2003196180A JP2003196180A JP3599055B2 JP 3599055 B2 JP3599055 B2 JP 3599055B2 JP 2003196180 A JP2003196180 A JP 2003196180A JP 2003196180 A JP2003196180 A JP 2003196180A JP 3599055 B2 JP3599055 B2 JP 3599055B2
- Authority
- JP
- Japan
- Prior art keywords
- storage device
- bes
- disk
- database
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、データベース分割管理方法および並列データベースシステムに関し、さらに詳しくは、データベース処理を行うプロセッサ数またはディスク数を負荷に合わせて最適にするデータベース分割管理方法および並列データベースシステムに関する。
【0002】
【従来の技術】
例えば、「Devid DeWitt and Jim Gray:Parallel Database Systems:The Future of High Performance Database Systems,CACM,Vol.35,No.6,1992 」において、並列データベースシステムが提案されている。
この並列データベースシステムでは、密結合あるいは疎結合に複数のプロセッサを接続し、それら複数のプロセッサに対して、データベース処理を配分している。
【0003】
【発明が解決しようとする課題】
従来の並列データベースシステムのシステム構成はユーザに任されており、且つ、固定的であった。
このため、システム構成が初めから負荷に不適合であったり、途中から不適合になる場合があり、期待する並列度が得られなかったり、高速な問い合せが実現できない問題点があった。
そこで、本発明の目的は、期待する並列度を得ることが出来ると共に、高速な問い合せを実現することが出来るデータベース分割管理方法および並列データベースシステムを提供することにある。
【0004】
【課題を解決するための手段】
本発明の計算機を用いた記憶装置管理方法であって、前記計算機は、前記記憶装置のディレクトリ情報を有し、前記記憶装置に関するアクセスの分離又はアクセスの統合の指示に基づいて、前記ディレクトリ情報を他の計算機へ移動し、前記計算機と前記記憶装置との対応関係を変更するための処理を行うことを特徴とする。
また、本発明ではシステム構成に応じた記憶装置の管理を行うことを特徴とする。
第一の観点では、本発明は、ユーザからの問合せの解析,最適化,処理手順作成を実行する機能を有するFESノードと、そのFESノードで作成された処理手順を基にしてデータベースをアクセスする機能を持つBESノードと、ディスクを備え且つそのディスクにデータベースを格納し管理する機能をもつIOSノードとをネットワークで接続してなる並列データベースシステムにおいて、データベース処理の負荷パターンに応じて、FESノードに割当てるプロセッサ数と、BESノードに割当てるプロセッサ数と、IOSノードに割当てるプロセッサ数と、IOSノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【0005】
また、ユーザからの問合せの解析,最適化,処理手順作成を実行する機能を有するFESノードと、そのFESノードで作成された処理手順を基にしてデータベースをアクセスする機能およびディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つBESノードとをネットワークで接続してなる並列データベースシステムにおいて、データベース処理の負荷パターンに応じて、FESノードに割当てるプロセッサ数と、BESノードに割当てるプロセッサ数と、BESノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【0006】
上記第1の観点によるデータベース分割管理方法では、データベース処理の負荷パターン(一件検索処理,一件更新処理,データ取り出し処理など)に応じて、各ノードに割当てるプロセッサ数とディスク数とディスクの分割数とを決定する。そこで、システム構成が負荷に適合したものとなり、期待する並列度が得られると共に、高速な問い合せを実現できるようになる。
【0007】
第2の観点では、本発明は、ユーザからの問合せの解析,最適化,処理手順作成を実行する機能を有するFESノードと、そのFESノードで作成された処理手順を基にしてデータベースをアクセスする機能を持つBESノードと、ディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つIOSノードとをネットワークで接続してなる並列データベースシステムにおいて、データベースのスキャンに必要な時間を一定とする並列アクセス可能なページ数の上限を決め、そのページ数の上限に応じて、FESノードに割当てるプロセッサ数と、BESノードに割当てるプロセッサ数と、IOSノードに割当てるプロセッサ数と、IOSノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【0008】
また、ユーザからの問合せの解析,最適化,処理手順作成を実行する機能を有するFESノードと、そのFESノードで作成された処理手順を基にしてデータベースをアクセスする機能およびディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つBESノードとをネットワークで接続してなる並列データベースシステムにおいて、データベースのスキャンに必要な時間を一定とする並列アクセス可能なページ数の上限を決め、そのページ数の上限に応じて、FESノードに割当てるプロセッサ数と、BESノードに割当てるプロセッサ数と、BESノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【0009】
上記第2の観点によるデータベース分割管理方法では、データベースのスキャンに必要な時間を一定とする並列アクセス可能なページ数の上限に応じて、各ノードに割当てるプロセッサ数とディスク数とディスクの分割数とを決定する。そこで、高速な問い合せを実現できるようになる。
【0010】
第3の観点では、本発明は、ユーザからの問合せの解析,最適化,処理手順作成を実行する機能を有するFESノードと、そのFESノードで作成された処理手順を基にしてデータベースをアクセスする機能を持つBESノードと、ディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つIOSノードとをネットワークで接続してなる並列データベースシステムにおいて、負荷パターンにより期待並列度pを算出し、その期待並列度pに応じて、FESノードに割当てるプロセッサ数と、BESノードに割当てるプロセッサ数と、IOSノードに割当てるプロセッサ数と、IOSノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【0011】
また、ユーザからの問合せの解析,最適化,処理手順作成を実行する機能を有するFESノードと、そのFESノードで作成された処理手順を基にしてデータベースをアクセスする機能およびディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つBESノードとをネットワークで接続してなる並列データベースシステムにおいて、負荷パターンにより期待並列度pを算出し、その期待並列度pに応じて、FESノードに割当てるプロセッサ数と、BESノードに割当てるプロセッサ数と、BESノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【0012】
上記第3の観点によるデータベース分割管理方法では、負荷パターンにより算出した期待並列度pに応じて、各ノードに割当てるプロセッサ数とディスク数とディスクの分割数とを決定する。そこで、期待する並列度が得られるようになる。
【0013】
第4の観点では、本発明は、上記構成のデータベース分割管理方法において、最適ページアクセス数mを算出し、キーレンジ分割がある場合には、サブキーレンジ単位の格納ページ数s(=m/p)を算出し、sページ単位でサブキーレンジ分割し、ディスクへデータ挿入を行うことを特徴とするデータベース分割管理方法を提供する。
上記第4の観点によるデータベース分割管理方法では、期待並列度pと最適ページアクセス数mとから算出したサブキーレンジ単位の格納ページ数s(=m/p)でサブキーレンジ分割して、ディスクへデータ挿入を行う。そこで、データを略均等に分割管理できるようになる。
【0014】
第5の観点では、本発明は、ユーザからの問合せの解析,最適化,処理手順作成を実行する機能を有するFESノードと、そのFESノードで作成された処理手順を基にしてデータベースをアクセスする機能を持つBESノードと、ディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つIOSノードとをネットワークで接続してなる並列データベースシステムにおいて、問合せ実行処理中に取得したアクセスページ数,ヒットロウ数,通信回数などの負荷情報を基にして負荷アンバランスを検出し、負荷アンバランスを解消する方向に、FESノードに割当てるプロセッサ数と、BESノードに割当てるプロセッサ数と、IOSノードに割当てるプロセッサ数と、IOSノードのディスク数とを変更することを特徴とするデータベース分割管理方法を提供する。
【0015】
また、ユーザからの問合せの解析,最適化,処理手順作成を実行する機能を有するFESノードと、そのFESノードで作成された処理手順を基にしてデータベースをアクセスする機能およびディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つBESノードとをネットワークで接続してなる並列データベースシステムにおいて、問合せ実行処理中に取得したアクセスページ数,ヒットロウ数,通信回数などの負荷情報を基にして負荷アンバランスを検出し、負荷アンバランスを解消する方向に、FESノードに割当てるプロセッサ数と、BESノードに割当てるプロセッサ数と、BESノードのディスク数とを変更することを特徴とするデータベース分割管理方法を提供する。
【0016】
上記第5の観点によるデータベース分割管理方法では、問合せ実行処理中に負荷アンバランスを検出し、その負荷アンバランスを解消する方向に、各ノードのプロセッサ数またはディスク数を変更する。そこで、負荷変動があってもシステム構成が常に負荷に適合したものとなり、期待する並列度が得られると共に、高速な問い合せを実現できるようになる。
【0017】
第6の観点では、本発明は、上記構成のデータベース分割管理方法において、BESノードに割当てるプロセッサ数またはIOSノードに割当てるプロセッサ数またはディスク数を追加する場合、オンライン中であれば、追加対象となるプロセッサまたはディスクで管理されるデータベースの表のキーレンジ範囲を閉塞し、新たにプロセッサあるいはディスクを割り当て、ロック情報,ディレクトリ情報の引き継ぎを行い、ノード振り分け制御に必要なディクショナリ情報の書き換えを行い、その後、オンライン中であれば、前記閉塞を解除することを特徴とするデータベース分割管理方法を提供する。
また、上記構成のデータベース分割管理方法において、BESノードに割当てるプロセッサ数またはディスク数を追加する場合、オンライン中であれば、追加対象となるプロセッサまたはディスクで管理されるデータベースの表のキーレンジ範囲を閉塞し、新たにプロセッサあるいはディスクを割り当て、ロック情報,ディレクトリ情報の引き継ぎを行い、ノード振り分け制御に必要なディクショナリ情報の書き換えを行い、追加対象となるディスク群から新たなディスク群へデータを移動し、その後、オンライン中であれば、前記閉塞を解除することを特徴とするデータベース分割管理方法を提供する。
【0018】
上記第6の観点によるデータベース分割管理方法では、プロセッサ数またはディスク数を追加,削除する場合、オンライン中であれば、表のキーレンジ範囲を閉塞した後、引き継ぎ処理を行い、その後、前記閉塞を解除する。そこで、オーバヘッドを最小限にできる。また、IOSノードがあるシステム構成では、データを移動せずに引き継ぎできるようになる。
【0019】
第7の観点では、本発明は、上記構成のデータベース分割管理方法において、BESノードに割当てるプロセッサ数またはIOSノードに割当てるプロセッサ数またはディスク数を削除する場合、オンライン中であれば、削除対象となるプロセッサまたはディスクで管理されるデータベースの表のキーレンジ範囲を閉塞し、削除するプロセッサまたはディスクを決定し、ロック情報,ディレクトリ情報の引き継ぎを行い、ノード振り分け制御に必要なディクショナリ情報の書き換えを行い、その後、オンライン中であれば、前記閉塞を解除することを特徴とするデータベース分割管理方法を提供する。
【0020】
また、上記構成のデータベース分割管理方法において、BESノードに割当てるプロセッサ数またはディスク数を削除する場合、オンライン中であれば、削除対象となるプロセッサまたはディスクで管理されるデータベースの表のキーレンジ範囲を閉塞し、削除するプロセッサまたはディスクを決定し、ロック情報,ディレクトリ情報の引き継ぎを行い、ノード振り分け制御に必要なディクショナリ情報の書き換えを行い、削除対象となるディスク群から引継ぐディスク群へデータを移動し、その後、オンライン中であれば、前記閉塞を解除することを特徴とするデータベース分割管理方法を提供する。
【0021】
上記第7の観点によるデータベース分割管理方法では、プロセッサ数またはディスク数を追加,削除する場合、オンライン中であれば、表のキーレンジ範囲を閉塞した後、引き継ぎ処理を行い、その後、前記閉塞を解除する。そこで、オーバヘッドを最小限にできる。また、IOSノードがあるシステム構成では、データを移動せずに引き継ぎできるようになる。
【0022】
第8の観点では、本発明は、上記構成のデータベース分割管理方法により、データベース処理を行うプロセッサ数またはディスク数を動的に変更することを特徴とする並列データベースシステムを提供する。
上記第8の観点による並列データベースシステムでは、上記第5の観点から第7の観点の作用により、スケーラブルな並列データベースシステムとなる。
【0023】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて詳細に説明する。なお、これにより本発明が限定されるものではない。
図1は、本発明の一実施形態の並列データベースシステム1を示す構成図である。
この並列データベースシステム1は、FES(フロントエンドサーバ)ノード,BES(バックエンドサーバ)ノード,IOS(インプットアウトプットサーバ)ノード,DS(ディクショナリサーバ)ノードおよびJS(ジャーナルサーバ)ノードを、ネットワーク90により接続した構成である。各ノードは、他のシステムとも接続されている。
FESノードは、ディスクを持たない少なくとも1台のプロセッサから構成されたFES75からなるノードであり、ユーザからの問合せの解析,最適化,処理手順作成を実行するフロントエンドサーバの機能を持っている。
BESノードは、ディスクを持たない少なくとも1台のプロセッサから構成されたBES73からなるノードであり、前記FES75で作成された処理手順を基にしてデータベースをアクセスする機能を持っている。
IOSノードは、少なくとも1台のプロセッサから構成されたIOS70および少なくとも1台のディスク80からなるノードであり、ディスク80にデータベースを格納し管理する機能を持っている。なお、IOSノードの機能をBESノードに持たせれば、IOSノードを省略できる。この場合、BES73にディスクを接続すると共に、BES73がディスク80にデータベースを格納し管理する機能を持つ。
【0024】
データベースは、複数の表からなる。表は、2次元のテーブル形式であり、複数のロウ(行)からなる。1つのロウは、1つ以上のカラム(属性)からなる。この表は、所定数のロウからなる固定長のページ単位で物理的に分割されて、ディスク80上に格納される。各ページのディスク80上の格納位置は、ディレクトリ情報を用いて知ることが出来る。
DSノードは、少なくとも1台のプロセッサから構成されたDS71および少なくとも1台のディスク81からなるノードであり、データベースの定義情報を一括管理する機能を持っている。
JSノードは、少なくとも1台のプロセッサから構成されたJS72および少なくとも1台のディスク82からなるノードであり、各ノードで実行されるデータベース更新履歴情報を格納し、管理する機能を持っている。
【0025】
図2は、上記並列データベースシステム1におけるFES75,BES73,IOS70のプロセッサ数およびディスク数およびディスクの分割数を決める本発明のデータベース分割管理方法の概念図である。
まず、ユーザが指定するワークロードでデータベース処理の負荷パターンを決める。負荷パターンには、一件検索処理、一件更新処理、データ取り出し処理などがある。その負荷パターンに応じて、IOS70でディスク80を何分割して管理するか決定する(IOSノードの機能をBESが持つ場合は、BES73でディスクを何分割して管理するか決定する)。
【0026】
すなわち、スキーマ定義時、表の分割方法(キー値範囲,範囲毎ロウ数(ページ数を換算)など)から、格納に必要なディスク数が判明し、閉塞および再編成の単位が決まれば、BES73およびIOS70の組み合わせ(閉塞あるいは再編成の単位がディスク,IOS,BESに依存する)が決まる。
これにより、BES73,IOS70,ディスク80の構成台数が決まる。即ち、次のようになる。
既分割数...全BESで管理する並列アクセス可能なデータベース分割単位(動的なBES追加,削除は、この分割単位で行う)
各分割毎ディスク数...各分割で割り当てられるディスク数
図2は、ディスク数が”8”、既分割数が”4”、各分割毎ディスク数が”2”の場合である。
なお、プロセッサ性能がn倍となれば、分割数を変えずに、各分割で利用するボリューム数をn倍とする(ただし、IOS70とディスク80の間の総データ転送レートの制限があるため、ディスク数にも制限がある)。
また、ここでディスクとは、ディスク装置1台に対応させている。本発明では、必ずしも「ディスク」はディスク装置1台と1対1に対応させる必要はない。例えば、1ディスク装置に複数のディスク装置を含む場合(ディスクアレイ装置)、並列アクセス可能な入出力単位の数を「ディスク装置」として適用すればよい。
【0027】
図2のようにFES:BES:IOS:ディスク=1:4:1:8であるが、初期データロード時には、FES,BESは1台あればよく、FES:BES:IOS:ディスク=1:1:1:8となっている。そのため、BES731には、既分割#1〜#4のディスク811〜842に格納されるデータベースのディレクトリ情報を持つ。
BES73の負荷が軽くて、BES731の1台だけでIOS70および8台のディスク811〜842を処理可能な場合、BES731の1台だけで8台のディスク811〜842に格納されるデータベースをアクセスする。従って、FES:BES:IOS:ディスク=1:1:1:8のままである。
BES731の負荷が増加して利用率100%の状態が続き負荷アンバランスが検出されると、BES732が追加される。既分割数が”4”であるので、2つのBES731,732にそれぞれ2つの分割が対応付けられる。そのため、BES731には、既分割#1〜#2のディスク811〜822に格納されるデータベースのディレクトリ情報を持つ。また、BES732には、既分割#3〜#4のディスク831〜842に格納されるデータベースのディレクトリ情報を持つ。FES:BES:IOS:ディスク=1:2:1:8となる。
【0028】
さらに、BES731,732の負荷が増加して利用率100%の状態が続き負荷アンバランスが検出されると、BES731,732にそれぞれBES733,734が追加される。既分割数が”4”であるので、4つのBES731,732,733,734にそれぞれ1つの分割が対応付けられる。そのため、BES731には、既分割#1のディスク811〜812に格納されるデータベースのディレクトリ情報を持つ。また、BES732には、既分割#2のディスク821〜822に格納されるデータベースのディレクトリ情報を持つ。また、BES733には、既分割#3のディスク831〜832に格納されるデータベースのディレクトリ情報を持つ。また、BES734には、既分割#4のディスク841〜842に格納されるデータベースのディレクトリ情報を持つ。FES:BES:IOS:ディスク=1:4:1:8となる。
【0029】
負荷が軽くなり、BES733,734の利用率が例えば50%未満の状態が続くと、BES733,734に割り当ててあるノードを他の処理のために利用する方が有効である。そこで、利用率が50%未満のBES733,734を合わせる。すると、FES:BES:IOS:ディスク=1:2:1:8に縮退する。
【0030】
以上のように、負荷に応じてBESを増減すれば、FES:BES:IOS:ディスク=1:1:1:8〜1:4:1:8の間でスケーラブルなシステムを実現できる。
IOS70は、BES73とディスク80の対応関係に依らず、並列にアクセス可能なディスク数分の並列なタスクが存在すればよい。このため、データの移動を行わず、ディレクトリ情報をBES間で移動することで、BES73とディスク80の対応関係を変更でき、アクセスの分離および統合が容易に可能となる。
次に、負荷パターンが一件更新処理の場合とデータ取り出し処理の場合について、プロセッサ数,ディスク数,ディスクの分割数を、数値例で説明する。
前提条件は、以下のように仮定する。
A.一件更新処理(1ページアクセス)の場合
(1)IOSノードがあるシステム構成の場合
FES処理の30[Kステップ]でプロセッサ性能10[Mステップ/秒]を割ると、333回/秒まで受取処理が可能である。
【0031】
また、FESからの実行要求の受信処理6[Kステップ]+BESからのデータ取り出し要求の送信処理6[Kステップ]+IOSからのデータ取り出し結果の受信処理10[Kステップ]+一件更新処理60[Kステップ]+FESへの実行要求結果の送信処理6[Kステップ]=88[Kステップ]がBESでの一件更新処理で必要であるから、これでプロセッサ性能10[Mステップ/秒]を割ると、114回/秒まで一件更新処理が可能である。
さらに、BESからの入出力要求の受信処理6[Kステップ]+入出力発行処理8[Kステップ]+BESへの入出力要求結果の送信処理6[Kステップ]=20[Kステップ]がIOSのディスクへのアクセスに必要であるから、これでプロセッサ性能10[Mステップ/秒]を割ると、500回/秒までディスクへのアクセスが可能である。
【0032】
また、1ページのランダム入出力で20[m秒]を要するので、1台のディスクには50回/秒までアクセス可能となる。これで前記IOSでのディスクへのアクセス可能回数500回/秒を割ると、IOSには10台までのディスクを実装可能である。
また、前記BESでの一件更新処理可能回数114回/秒で前記IOSでのディスクへのアクセス可能回数500回/秒を割ると、1台のIOSで4.3台のBESに対応可能である。
【0033】
さらに、前記BESでの一件更新処理可能回数114回/秒で前記FESでの受取処理可能333回/秒を割ると、1台のFESで3台のBESに対応可能である。
以上から、FES:BES=1:3、BES:IOS=4.3:1、IOS:ディスク=1:10となる。そこで、総合的には、図3に示すように、FES:BES:IOS:ディスク=1:4:1:8とすると、ほぼバランスがとれた実装になる(FESとディスクに多少のアンバランスが生じる)。
【0034】
(2)IOSノードの機能をBESノードに持たせたシステム構成の場合
FES処理の30[Kステップ]でプロセッサ性能10[Mステップ/秒]を割ると、333回/秒まで受取処理が可能である。
また、FESからの実行要求の受信処理6[Kステップ]+入出力発行処理8[Kステップ]+一件更新処理60[Kステップ]+FESへの実行要求結果の送信処理6[Kステップ]=80[Kステップ]がBESでの一件更新処理で必要であるから、これでプロセッサ性能10[Mステップ/秒]を割ると、125回/秒まで一件更新処理が可能である。
また、1ページのランダム入出力で20[m秒]を要するので、1台のディスクには50回/秒までアクセス可能となる。これで前記BESでの一件更新処理可能回数125回/秒を割ると、BESには2.5台までのディスクを実装可能である。
さらに、前記BESでの一件更新処理可能回数125回/秒で前記FESでの受取処理可能333回/秒を割ると、1台のFESで2.6台のBESに対応可能である。
【0035】
以上から、FES:BES=1:2.6、BES:ディスク=1:2.5となる。そこで、総合的には、図4に示すように、FES:BES:ディスク=1:4:8とすると、ほぼバランスがとれた実装になる(FESに多少のアンバランスが生じる)。
B.データ取り出し処理(10ページアクセス)の場合
(1)IOSノードがあるシステム構成の場合
FES処理の30[Kステップ]でプロセッサ性能10[Mステップ/秒]を割ると、333回/秒まで受取処理が可能である。
また、FESからの実行要求の受信処理6[Kステップ]+BESからのデータ取り出し要求の送信処理6[Kステップ]+IOSからのデータ取り出し結果の受信処理46[Kステップ]+データ取り出し処理220[Kステップ]+FESへの実行要求結果の送信処理6[Kステップ]=284[Kステップ]がBESでのデータ取り出し処理で必要であるから、これでプロセッサ性能10[Mステップ/秒]を割ると、35回/秒までデータ取り出し処理が可能である。
さらに、BESからの入出力要求の受信処理6[Kステップ]+入出力発行処理44[Kステップ]+BESへの入出力要求結果の送信処理6[Kステップ]=56[Kステップ]がIOSのディスクへのアクセスに必要であるから、これでプロセッサ性能10[Mステップ/秒]を割ると、179回/秒までディスクへのアクセスが可能である。
【0036】
また、10ページの一括入出力で30[m秒]を要するので、1台のディスクには33回/秒までアクセス可能である。これで前記IOSでのディスクへのアクセス可能回数179回/秒を割ると、5.4台までのディスクを実装可能である。
また、前記BESでのデータ取り出し処理可能回数35回/秒で前記IOSでのディスクへのアクセス可能回数179回/秒を割ると、1台のIOSで5.1台のBESに対応可能である。
さらに、前記BESでのデータ取り出し処理可能回数35回/秒で前記FESでの受取処理可能333回/秒を割ると、1台のFESで9.5台のBESに対応可能である。
以上から、FES:BES=1:9.5、BES:IOS=5.1:1、IOS:ディスク=1:5.4となる。そこで、総合的には、FES:BES:IOS:ディスク=1:10:2:10とすると、ほぼバランスがとれた実装になる(ディスクに多少のアンバランスが生じる)。
【0037】
(2)IOSノードの機能をBESノードに持たせたシステム構成の場合
FES処理の30[Kステップ]でプロセッサ性能10[Mステップ/秒]を割ると、333回/秒まで受取処理が可能である。
また、FESからの実行要求の受信処理6[Kステップ]+入出力発行処理44[Kステップ]+データ取り出し処理220[Kステップ]+FESへの実行要求結果の送信処理6[Kステップ]=276[Kステップ]がBESでのデータ取り出し処理で必要であるから、これでプロセッサ性能10[Mステップ/秒]を割ると、36回/秒までデータ取り出し処理が可能である。
また、10ページの一括入出力で30[m秒]を要するので、1台のディスクには33回/秒までアクセス可能である。これで前記BESでのデータ取り出し処理可能回数36回/秒を割ると、1台だけのディスクを実装可能である。
【0038】
さらに、前記BESでのデータ取り出し処理可能回数36回/秒で前記FESでの受取処理可能333回/秒を割ると、1台のFESで9.2台のBESに対応可能である。
以上から、FES:BES=1:9.2、BES:ディスク=1:1となる。そこで、総合的には、FES:BES:ディスク=1:10:10とすると、ほぼバランスがとれた実装になる。
【0039】
図5は、FES75の構成図である。
FES75は、ユーザが作成したアプリケーションプログラム10〜11と、問合せ処理やリソース管理などのデータベースシステム全体の管理を行う並列データベース管理システム20と、データの読み書きなどの計算機システム全体の管理を受け持つオペレーティングシステム30とを具備している。
【0040】
上記並列データベース管理システム20は、システム制御部21と、論理処理部22と、物理処理部23と、処理対象となるデータを一時的に格納するデータベース/ディクショナリ24とを具備している。また、上記並列データベース管理システム20は、ネットワーク90および他のシステムと接続されている。
【0041】
上記システム制御部21は、入出力の管理等を行う。また、データロード処理210と、動的負荷制御処理211とを具備している。
上記論理処理部22は、問合せの構文解析や意味解析を行う問合せ解析220と、適切な処理手順候補を生成する静的最適化処理221と、処理手順候補に対応したコードの生成を行なうコード生成222とを具備している。また、処理手順候補から最適なものを選択する動的最適化処理223と、選択された処理手順候補のコードの解釈実行を行うコード解釈実行224とを具備している。
【0042】
上記物理処理部23は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理230と、データベースレコードの読み書き等を制御するデータベース/ディクショナリバッファ制御231と、システムで共用するリソースの排他制御を実現する排他制御233とを具備している。
【0043】
図6は、BES73の構成図である。
BES73は、データベースシステム全体の管理を行う並列データベース管理システム20と、計算機システム全体の管理を受け持つオペレーティングシステム30とを具備して構成されている。なお、IOSノードの機能を持つときは、ディスクを有し、そのディスクにデータベース40を格納し、管理する。
【0044】
上記並列データベース管理システム20は、システム制御部21と、論理処理部22と、物理処理部23と、処理対象となるデータを一時的に格納するデータベースバッファ24とを具備している。また、上記並列データベース管理システム20は、ネットワーク90および他のシステムと接続されている。
【0045】
上記システム制御部21は、入出力の管理等を行う。また、負荷配分を考慮したデータロードを行うためのデータロード処理210を具備している。
上記論理処理部22は、コードの解釈実行を行うコード解釈実行224を具備している。
上記物理処理部23は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理230と、データベースレコードの読み書き等を制御するデータベースバッファ制御231と、入出力対象となるデータの格納位置を管理するマッピング処理232と、システムで共用するリソースの排他制御を実現する排他制御233とを具備している。
【0046】
図7は、IOS70とディスク80の構成図である。
IOS70は、データベースシステム全体の管理を行う並列データベース管理システム20と、計算機システム全体の管理を受け持つオペレーティングシステム30とを具備して構成されている。
ディスク80には、データベース40が格納されている。
上記並列データベース管理システム20は、システム制御部21と、物理処理部23と、処理対象となるデータを一時的に格納する入出力バッファ24とを具備している。また、上記並列データベース管理システム20は、ネットワーク90および他のシステムと接続されている。
【0047】
上記システム制御部21は、入出力の管理等を行う。また、負荷配分を考慮したデータロードを行うためのデータロード処理210を具備している。
上記物理処理部23は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理230と、データベースレコードの読み書き等を制御する入出力バッファ制御231とを具備している。
【0048】
図8は、DS71およびディスク81の構成図である。
DS71は、データベースシステム全体の管理を行う並列データベース管理システム20と、計算機システム全体の管理を受け持つオペレーティングシステム30とを具備して構成されている。
ディスク81には、ディクショナリ50が格納されている。
上記並列データベース管理システム20は、システム制御部21と、論理処理部22と、物理処理部23と、ディクショナリバッファ24とを具備している。また、上記並列データベース管理システム20は、ネットワーク90および他のシステムと接続されている。
上記論理処理部22は、コードの解釈実行を行うコード解釈実行224を具備している。
上記物理処理部23は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理230と、ディクショナリレコードの読み書き等を制御するディクショナリバッファ制御231と、システムで共用するリソースの排他制御を実現する排他制御233とを具備している。
【0049】
図9は、JS72とディスク82の構成図である。
JS72は、データベースシステム全体の管理を行う並列データベース管理システム20と、計算機システム全体の管理を受け持つオペレーティングシステム30とを具備して構成されている。
ディスク82には、ジャーナル60が格納されている。
上記並列データベース管理システム20は、システム制御部21と、物理処理部23と、ジャーナルバッファ24とを具備している。また、上記並列データベース管理システム20は、ネットワーク90および他のシステムと接続されている。
上記物理処理部23は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理230と、ジャーナルレコードの読み書き等を制御するジャーナルバッファ制御231とを具備している。
【0050】
図10は、FES75におけるデータベース管理システム20の処理を示すフローチャートである。
システム制御部21は、問合せ分析処理か否かチェックする(212)。問合せ分析処理であれば、問合せ分析処理400を呼び出し、それを実行した後、終了する。
問合せ分析処理でなければ、問合せ実行処理か否かチェックする(213)。問合せ実行処理であれば、問合せ実行処理410を呼び出し、それを実行した後、終了する。
問合せ実行処理でなければ、データロード処理か否かチェックする(214)。データロード処理であれば、データロード処理210を呼び出し、それを実行した後、終了する。
データロード処理でなければ、動的負荷制御処理か否かチェックする(214)。動的負荷制御処理であれば、動的負荷制御処理210を呼び出し、それを実行した後、終了する。
動的負荷制御処理でなければ、終了する。
【0051】
なお、BES73におけるデータベース管理システム20の処理のフローチャートは、図10からステップ212,215,400,211を省いたものとなる。また、IOS70におけるデータベース管理システム20の処理のフローチャートは、図10からステップ212,213,215,400,410,211を省いたものとなる。
【0052】
図11は、問合せ分析処理400のフローチャートである。
まず、問合せ解析220により、入力された問合せ文の構文解析,意味解析を実行する。
次に、静的最適化処理221により、問合せで出現する条件式から条件を満足するデータの割合を推定し、予め設定している規則を基に、有効なアクセスパス候補(特にインデクスを選出する)を作成し、処理手順の候補を作成する。
次に、コード生成222により、処理手順の候補を実行形式のコードに展開する。そして、処理を終了する。
【0053】
図12は、問合せ解析220のフローチャートである。
ステップ2200では、入力された問合せ文の構文解析,意味解析を実行する。そして、処理を終了する。
【0054】
図13は、静的最適化処理221のフローチャートである。
まず、述語選択率推定2210により、問い合せに出現する条件式の述語の選択率を推定する。
次に、アクセスパス剪定2212により、インデクス等からなるアクセスパスを剪定する。
次に、処理手順候補生成2213により、アクセスパスを組み合わせた処理手順候補を生成する。
そして、処理を終了する。
【0055】
図14は、述語選択率推定2210のフローチャートである。
ステップ22101では、問合せ条件式に変数が出現するか否かチェックする(22101)。変数が出現しなければステップ22102に進み、変数が出現すればステップ22104に進む。
ステップ22102では、当条件式にカラム値分布情報があるか否かチェックする。カラム値分布情報があればステップ22103に進み、カラム値分布情報がなければステップ22105に進む。
ステップ22103では、カラム値分布情報を用いて選択率を算出し、終了する。
ステップ22104では、当条件式にカラム値分布情報があるか否かチェックする。カラム値分布情報があれば終了し、カラム値分布情報がなければ、ステップ22105に進む。
ステップ22105では、条件式の種別に応じてディフォルト値を設定し(22105)、終了する。
【0056】
図15は、アクセスパス剪定2212のフローチャートである。
ステップ22120では、問合せ条件式で出現するカラムのインデクスをアクセスパス候補として登録する。
ステップ22121では、問合せでアクセス対象となる表が複数ノードに分割格納されているかチェックする。分割格納されていなければステップ22122に進み、分割格納されていればステップ22123に進む。
ステップ22122では、シーケンシャルスキャンをアクセスパス候補として登録する。
ステップ22123では、パラレルスキャンをアクセスパス候補として登録する。
ステップ22124では、各条件式の選択率が既に設定済みか否かチェックする。設定済みであればステップ22125に進み、設定済みでなければステップ22126に進む。
ステップ22125では、各表に関して選択率が最小となる条件式のインデクスをアクセスパスの最優先度とする。
ステップ22126では、各条件式の選択率の最大値および最小値を取得する。
ステップ22127では、プロセッサ性能,IO性能等システム特性より各アクセスパスの選択基準を算出する。
ステップ22128では、単一あるいは複数のインデクスを組合せたアクセスパスでの選択率が上記選択基準を下回るものだけアクセスパス候補として登録する。
【0057】
図16は、処理手順候補生成2213のフローチャートである。
ステップ22130では、問合せでアクセス対象となる表が複数ノードに分割格納されているかチェックする。分割格納されていなければステップ22131へ進み、分割格納されていればステップ22135へ進む。
ステップ22131では、処理手順候補にソート処理が含まれているか否かをチェックする。含まれていなければステップ22132へ進み、含まれていればステップ22135へ進む。
ステップ22132では、問合せでアクセス対象となる表のアクセスパスが唯一であるかチェックする。唯一であればステップ22133へ進み、唯一でなければステップ22134へ進む。
ステップ22133では、単一の処理手順を作成し、終了する。
ステップ22134では、複数の処理手順を作成し、終了する。
ステップ22135では、結合可能な2ウェイ結合へ問合せを分解する。
ステップ22136では、分割格納される表の格納ノード群に対応して、データ読みだし/データ分配処理手順とスロットソート処理手順を候補として登録する。
ステップ22137では、結合処理ノード群に対応して、スロットソート処理手順、Nウェイマージ処理手順および突き合わせ処理手順を候補として登録する。なお、スロットソート処理とは、ページ内の各ロウがページ先頭からのオフセットで位置付けされるスロットで管理され、データが格納されるページを対象とするページ内のソート処理を指し、スロット順に読みだせば昇順にロウがアクセス可能とする。また、Nウェイマージ処理とは、Nウェイのバッファを用いて、各マージ段でN本のソート連を入力にしてトーナメント法で最終的に1本のソート連を作成する処理をいう。
ステップ22138では、要求データ出力ノードに要求データ出力処理手順を登録する。
ステップ22139では、分解結果に対して評価がすべて終了したかチェックする。評価がすべて終了していなければ前記ステップ22136に戻り、評価がすべて終了していれば処理を終了する。
【0058】
図17は、コード生成222のフローチャートである。
ステップ2220では、処理手順候補が唯一か否かをチェックする。唯一でなければステップ2221へ進み、唯一であればステップ2223へ進む。
ステップ2221では、カラム値分布情報等からなる最適化情報を処理手順に埋込む。
ステップ2222では、問合せ実行時に代入された定数に基づいて処理手順を選択するデータ構造を作成する。
ステップ2223では、処理手順を実行形式へ展開する。そして、処理を終了する。
【0059】
図18は、問合せ実行処理410のフローチャートである。
まず、動的実行時最適化223により、代入された定数に基づき、各ノード群で実行する処理手順を決定する。
次に、コード解釈実行224により、当処理手順を解釈し、実行する。そして、処理を終了する。
【0060】
図19は、動的最適化処理223のフローチャートである。
ステップ22300では、動的負荷制御処理を実行する(22300)。
ステップ22301では、作成されている処理手順が単一か否かをチェックする。単一であれば、処理を終了する。単一でなければ、ステップ22302へ進む。
ステップ22302では、代入された定数を基に選択率を算出する。
ステップ22303では、処理手順候補に並列な処理手順が含まれるか否かチェックする。含まれていればステップ22304に進み、含まれていなければステップ22308に進む。
ステップ22304では、ディクショナリから最適化情報(結合カラムのカラム値分布情報,アクセス対象となる表のロウ数,ページ数等)を入力する。
ステップ22305では、データ取り出し/データ分配のための処理時間を各システム特性を考慮し、算出する。
ステップ22306では、当処理時間から結合処理に割当てるノード数pを決定する。
ステップ22307では、データ分配情報を最適化情報を基に作成する。
ステップ22308では、アクセスパスの選択基準に従って処理手順を選択し、終了する。
【0061】
図20は、コード解釈実行224のフローチャートである。
ステップ22400では、データ取り出し/データ分配処理か否かチェックする。データ取り出し/データ分配処理であればステップ22401に進み、データ取り出し/データ分配処理でなければステップ22405に進む。
ステップ22401では、データベースをアクセスし条件式を評価する。
ステップ22402では、データ分配情報を基に、各ノード毎のバッファへデータを設定する。
ステップ22403では、当該ノードのバッファが満杯か否かチェックする。満杯であればステップ22404へ進み、満杯でなければステップ22420へ進む。
ステップ22404では、ページ形式で対応するノードへデータを転送し、ステップ22420へ進む。
ステップ22405では、スロットソート処理か否かチェックする。スロットソート処理であればステップ22406へ進み、スロットソート処理でなければステップ22409へ進む。
ステップ22406では、他ノードからのページ形式データの受け取りを行う。
ステップ22407では、スロットソート処理を実行する。
ステップ22408では、スロットソート処理結果を一時的に保存し、ステップ22420へ進む。
ステップ22409では、Nウェイマージ処理か否かチェックする。Nウェイマージ処理であればステップ22410へ進み、Nウェイマージ処理でなければステップ22412へ進む。
【0062】
ステップ22410では、Nウェイマージ処理を実行する。
ステップ22411では、Nウェイマージ処理結果を一時的に保存し、ステップ22420へ進む。
ステップ22412では、突き合わせ処理か否かチェックする。突き合わせ処理であればステップ22413へ進み、突き合わせ処理でなければステップ22416へ進む。
ステップ22413では、両ソートリストを突き合わせ、出力用バッファへデータを設定する。
ステップ22414では、出力用バッファが満杯か否かチェックする。満杯であれば、ステップ22415へ進む。満杯でなければ、ステップ22420へ進む。
ステップ22415では、ページ形式で要求データ出力ノードへデータを転送し、ステップ22420へ進む。
ステップ22416では、要求データ出力処理か否かチェックする。要求データ出力処理であればステップ22417へ進み、要求データ出力処理でなければステップ22420へ進む。
ステップ22417では、他ノードからページ形式データの転送があるか否かチェックする。転送があればステップ22418へ進み、転送がなければステップ22419へ進む。
ステップ22418では、他ノードからページ形式データを受け取る。
ステップ22419では、アプリケーションプログラムへ問合せ処理結果を出力する。
ステップ22420では、BESで実行中か否かチェックする。BESで実行中ならステップ22421へ進み、BESで実行中でないなら終了する。
ステップ22421では、アクセスページ数,ヒットロウ数,通信回数等の処理負荷を推定するための情報をFESへ通知し、終了する。
【0063】
図21は、データロード処理210のフローチャートである。
各ステップを説明する前に概念を説明する。
データロード方法には、表全体のスキャンに必要な時間を一定時間内に抑える目標応答時間重視データ配置と、mページアクセスに最適化した期待並列度重視データ配置と、ボリューム分割を完全にユーザが指定したユーザ制御によるユーザ指定データ配置とがある。
目標応答時間重視データ配置では、まず、表全体のロウを格納するのに必要なページ数を求める。次に、並列アクセス可能な各分割のディスクに格納するページ数の上限を決める。アクセスには、必要となれば一括入力(例えば、10ページ)を前提にする。ディスク台数,IOS台数,BES台数の組み合わせに応じて負荷配分を決める。キーレンジ分割がある場合、上限ページ数でキーレンジ分割区間を再分割し、各分割のディスクへ各々格納する。このキーレンジ分割については、図23を参照して後で詳述する。
期待並列度重視データ配置では、mのサイズに依存するが、かなり大であることな望ましい。キーレンジ分割がある場合、mのサイズと期待並列度pから各キーレンジ分割単位のサブキーレンジ格納ページ数s(=m/p)を決定し、sページ単位で各分割のディスクへ各々格納する。
【0064】
期待並列度pの算出方法は、応答時間をノード毎のオーバヘッドで割った比の平方根で算出する。この比が、10で期待並列度3、100で期待並列度10、1000で期待並列度32、10000で期待並列度100となる。算出された期待並列度pが、既分割数を上回る場合、既分割数を採用する(既分割数で処理できる最大ディスク数が決まるため)。逆の場合は、既分割数を上限に期待並列度pを分割数として採用する。
具体的に、100ページアクセスに最適化したデータ配置を試算する。前提として、一括入力は10ページとする。1回のI/O時間(10ページアクセス)に300m秒、1回のI/Oオーバヘッドに5.6m秒(10MIPS性能で56ksが必要)であるので、期待並列度pが約7(=√{300/5.6})となる。従って、s=14(=100/7)ページ毎にサブキーレンジ分割を行う。
ユーザ指定データ配置は、従来のデータベース管理システムと同様のデータ配置であり、設定パラメタ通りに管理する。
【0065】
さて、ステップ21000では、目標応答時間重視データ配置か否かをチェックする。目標応答時間重視データ配置でなければステップ21001に進み、目標応答時間重視データ配置であればステップ21003に進む。
ステップ21001では、期待並列度重視データ配置か否かチェックする。期待並列度重視データ配置でなければステップ21002に進み、期待並列度重視データ配置であればステップ21010に進む。
ステップ21002では、ユーザ指定があるか否かをチェックする。ユーザ指定があればステップ21016に進み、ユーザ指定がなければ終了する。
ステップ21003では、表全体のロウを格納するのに必要なページ数を求める。
ステップ21004では、表のスキャンに必要な時間を一定とする並列アクセス可能なディスクに格納するページ数の上限を決める。
ステップ21005では、上記要件を満たすBES,IOS,ディスク群を決定する。
ステップ21006では、キーレンジ分割があるか否かチェックする。キーレンジ分割があるならステップ21007へ進み、キーレンジ分割がないならステップ21009へ進む。
ステップ21007では、ある上限ページ数でキーレンジ分割区間を再分割しする。
ステップ21008では、キーレンジ分割区間に対応してデータ挿入を行い、終了する。
ステップ21009では、上限ページ数で区切ってデータ挿入を行い、終了する。
ステップ21010では、推定ワークロードにより最適ページアクセス数mを算出する。
ステップ21011では、期待並列度pを算出し、その期待並列度pに応じて、BES,IOS,ディスク群を決定する。
ステップ21012では、キーレンジ分割があるか否かチェックする。キーレンジ分割があるならステップ21013へ進み、キーレンジ分割がないならステップ21015へ進む。
ステップ21013では、サブキーレンジ単位の格納ページ数s(=m/p)を算出する。
ステップ21014では、sページ単位でサブキーレンジ分割し、各ディスクへデータ挿入を行い、終了する。
ステップ21015では、sページ数で区切ってデータ挿入を行い、終了する。
ステップ21016では、ユーザ指定のIOSの管理するディスクへデータ挿入を行い、終了する。
【0066】
図22は、動的負荷制御処理211のフローチャートである。
ステップ21100では、負荷アンバランス(アクセス集中化/離散化)の有無を検出する。すなわち、ノード毎単位時間当たりに実行されたDB処理負荷(処理ステップ数(DB処理分,I/O処理分,通信処理分)、プロセッサ性能(処理時間に換算する)、I/O回数(入出力時間に換算する))の分布からネックとなる資源(プロセッサ(BES,IOS)、ディスク)を検出し、DB処理をSQL文に展開し、各資源へのアクセス状況を表単位に分類する。負荷アンバランスが検出されたらステップ21101へ進み、負荷アンバランスが検出されなかったら処理を終了する。
【0067】
ステップ21101では、アクセス分布情報から、BESを追加あるいは削除するか、IOS,ディスク対を追加あるいは削除するかを判断する。追加または削除が必要ならステップ21102に進み、必要ないなら終了する。
ステップ21102では、追加か否かをチェックする。追加ならステップ21103へ進み、追加でないならステップ2112へ進む。
ステップ21103では、オンライン中かチェックする。オンライン中なら、ステップ21104へ進む。オンライン中でないなら、ステップ21105へ進む。
ステップ21104では、対象となるBES群で管理される表のキーレンジ範囲を閉塞する。
ステップ21105では、新たにBESを割り当る。
ステップ21106では、ロック情報およびディレクトリ情報の引き継ぎを行う。
ステップ21107では、ノード振り分け制御に必要なディクショナリ情報の書き換えをDS71に指示する。
ステップ21108では、IOSが存在するか否かをチェックする。存在しなければステップ21109へ進み、存在すればステップ21110へ進む。なお、このステップは、IOSが存在するシステム構成とIOSが存在しないシステム構成の両方に同じソフトウエアで対応するために挿入されている。
ステップ21109では、対象となるBES群から新たなBES群へデータを移動する。
ステップ21110では、オンライン中かチェックする。オンライン中なら、ステップ21111へ進む。オンライン中でないなら、処理を終了する。
ステップ21111では、対象となるBES群で管理される表のキーレンジ範囲の閉塞を解除し、終了する。
ステップ21112では、オンライン中かチェックする。オンライン中なら、ステップ21113へ進む。オンライン中でないなら、ステップ21114へ進む。
ステップ21113では、対象となるBES群で管理される表のキーレンジ範囲を閉塞する。
ステップ21114では、縮退するBESを決定する。
ステップ21115では、ロック情報およびディレクトリ情報の引き継ぎを行う。
ステップ21116では、ノード振り分け制御に必要なディクショナリ情報の書き換えをDS71に指示する。
ステップ21117では、IOSが存在するか否かをチェックする。存在しなければステップ21118へ進み、存在すればステップ21119へ進む。
ステップ21118では、縮退するBES群からデータを追い出す。
ステップ21119では、オンライン中かチェックする。オンライン中なら、ステップ21120へ進む。オンライン中でないなら、処理を終了する。
ステップ21120では、対象となるBES群で管理される表のキーレンジ範囲の閉塞を解除し、終了する。
【0068】
図23は、キーレンジ分割を用いたデータロード処理の概念図である。
既分割数は”4”とする。また、データベースのカラム値v1〜v6は、図11のような出現頻度を取るものとする。
初期データロード時、必要なBESは、731の1台でよい。格納するべきページ数を各分割810〜840のディスクにそれぞれページ数の上限まで対応付けると、カラム値v1〜v2は分割810のディスクに格納され、カラム値v2〜v3は分割820および830のディスクに格納され、カラム値v3〜v5は分割840のディスクに格納され、カラム値v5〜v6は他のディスク群に格納される。初期データロード時には、各ディスクに格納されたページの管理を行うために、ディスク毎のディレクトリ情報を作成する。
データベースアクセス時には、負荷に応じてBES732〜734を用いる場合、各BESに対応するディスク毎のディレクトリ情報を利用し、データベースをアクセスする。
上記各処理の実装に当たって、次の実施形態と組合せてもよい。
【0069】
ロウのノード間移動を容易にするために、ロウ識別子にBES等の位置情報を含めない。BESでは、表の分割位置を特定するためのディレクトリ情報とロウ識別子とを組み合わせて、ロウの物理位置を特定する。ロウ移動に関しては、ディレクトリ情報の書き換えで対応する。再編成あるいはロウ移動に対応した構造にしておき、BESが動的に追加されても、ディレクトリ情報およびロック情報の引き継ぎで処理の分割を可能とする。
また、データベースをレプリカ管理する場合、2倍の格納領域が必要となる。1次コピーとバックアップコピーが同一IOS、BESで管理されるか否かにかかわらず、ディスクへのアクセス負荷はほぼ2倍となるため、既分割数で管理する各分割毎ボリューム数を1/2とすればよい。
【0070】
さらに、ディスク、IOS、BES等の障害時、オンライン処理から切り離し、復旧後オンラインと接続する。各ノードに応じて閉塞管理方式が異なる。ディスク障害時、このディスクに格納されるキーレンジ範囲を閉塞する。バックアップコピーが存在すれば(同一IOS(ミラーディスク)、別IOS(データレプリカ)の管理下でバックアップコピーを取得する必要あり)、処理を振り分ける。IOS障害時、このIOSに格納されるキーレンジ範囲を閉塞する。バックアップコピーが存在すれば(別IOS(データレプリカ)の管理下でバックアップコピーを取得する必要あり)、処理を振り分ける。BES障害時、このBESで管理されるキーレンジ範囲を閉塞する。IOSが存在すれば、新たにBESを割り当て、ロック情報引き継ぎ、ノード振り分け制御に必要なディクショナリ情報の書き換え後、処理を続行する。
【0071】
本発明は、統計情報を用いた規則とコスト評価との併用に限らず、適当なデータベース参照特性情報を与える処理手順が得られるものであれば、例えばコスト評価のみ、規則利用のみ、コスト評価と規則利用の併用等の最適化処理を行うデータベース管理システムにも適用できる。
本発明は、密結合/疎結合マルチプロセッサシステム大型計算機のソフトウエアシステムを介して実現することも、また各処理部のために専用プロセッサが用意された密結合/疎結合複合プロセッサシステムを介して実現することも可能である。また、単一プロセッサシステムでも、各処理手順のために並列なプロセスを割当てていれば、適用可能である。
また、複数プロセッサが各々複数のディスクを互いに共用する構成にも適用可能である。
本発明のデータベース分割管理方法によれば、システム構成が負荷に適合したものとなり、期待する並列度が得られると共に、高速な問合せを実現できるようになる。
本発明の並列データベースシステムによれば、負荷変動があってもシステム構成を常に負荷に適合したものに変更するスケーラブルな並列データベースシステムが得られる。
【0072】
【発明の効果】
本発明によれば、システム構成の変更に対応した記憶装置の管理が可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態の並列データベースシステムを示す構成図である。
【図2】本発明のデータベース分割管理方法を示す概念図である。
【図3】本発明のデータベース分割管理方法による最適ノード配分(IOSがある場合)の概念図である。
【図4】本発明のデータベース分割管理方法による最適ノード配分(IOSがない場合)の概念図である。
【図5】FESの構成図である。
【図6】BESの構成図である。
【図7】IOSの構成図である。
【図8】DSの構成図である。
【図9】JSの構成図である。
【図10】システム制御部の処理のフローチャートである。
【図11】問合せ分析処理のフローチャートである。
【図12】問合せ解析の処理のフローチャートである。
【図13】静的最適化処理のフローチャートである。
【図14】述語選択率推定の処理のフローチャートである。
【図15】アクセスパス剪定の処理のフローチャートである。
【図16】処理手順候補生成の処理のフローチャートである。
【図17】コード生成の処理のフローチャートである。
【図18】問合せ実行処理のフローチャートである。
【図19】動的最適化の処理のフローチャートである。
【図20】コード解釈実行の処理のフローチャートである。
【図21】データロード処理のフローチャートである。
【図22】動的負荷制御処理のフローチャートである。
【図23】動的負荷制御の概念図である。
【符号の説明】
1...並列データベースシステム
10、11...アプリケーションプログラム、
20...データベース管理システム
21...システム制御部、
210...データロード処理、 210...動的負荷制御処理
22...論理処理部、
220...問合せ解析、221...静的最適化処理、222...コード生成、
223...動的最適化処理、224...コード解釈実行
30...オペレーティングシステム、 40...データベース
70...IOS、 71...JS
72...DS 73...BES
75...FES、 80、81、82...ディスク
90...相互結合ネットワーク
Claims (6)
- 複数の計算機を用いた複数の記憶装置を管理する記憶装置管理方法であって、
前記計算機は、前記記憶装置のディレクトリ情報を有し、
前記計算機から前記記憶装置に対するアクセスの分離又はアクセスの統合の指示に基づいて、
前記記憶装置に対応した前記計算機から前記計算機と前記記憶装置との対応関係の変更に関する前記ディレクトリ情報を他の計算機へ移動し、前記計算機と前記記憶装置とのアクセスに関する対応関係を変更するための処理を行うことを特徴とする記憶装置管理方法。 - 前記ディレクトリ情報とは、記憶装置に格納されるデータの位置情報を含む情報であることを特徴とする請求項1記載の記憶装置管理方法。
- 複数の計算機を用いた複数の記憶装置を管理する記憶装置管理システムであって、
前記計算機は、前記記憶装置のディレクトリ情報と、
前記計算機から前記記憶装置に対するアクセスの分離又はアクセスの統合の指示を受け付ける手段と、
前記記憶装置に関するアクセスの分離又はアクセスの統合の指示に基づいて、
前記記憶装置に対応した前記計算機から前記計算機と前記記憶装置との対応関係の変更に関する前記ディレクトリ情報を他の計算機へ移動し、前記計算機と前記記憶装置とのアクセスに関する対応関係を変更するための処理手段を有することを特徴とする記憶装置管理システム。 - 複数の計算機を用いた記憶装置管理方法であって、
第一の計算機は、前記記憶装置のディレクトリ情報を有し、
前記複数の計算機の負荷情報を算出し、
算出した前記複数の計算機の負荷情報に基づいて、前記計算機と前記記憶装置との対応関係の変更に関する前記ディレクトリ情報を他の計算機へ移動し、前記計算機と前記記憶装置とのアクセスに関する対応関係を変更するための処理を行うことを特徴とする記憶装置管理方法。 - 複数の計算機とディスクアレイ装置がネットワークを介して接続されたシステムにおけるディスクアレイ装置管理方法であって、
前記複数の計算機の負荷状態を算出し、
算出した前記負荷状態に基づいて、計算機がディスクアレイ装置へアクセスするために用いる前記計算機と前記ディスクアレイ装置との対応関係の変更に関するディレクトリ情報を移動し、
前記記憶装置に対応した前記計算機から前記ディレクトリ情報を移動した計算機と前記ディスクアレイ装置との対応関係を変更するための処理を行うことを特徴とするディスクアレイ装置管理方法。 - 複数の計算機とディスクアレイ装置がネットワークを介して接続されたシステムにおけるディスクアレイ装置管理方法であって、
前記複数の計算機の負荷状態を算出し、
算出した前記負荷状態に基づいて、ディスクアレイ装置へアクセスする計算機の台数を変更し、ディスクアレイ装置へアクセスするために用いる変更に関するディレクトリ情報を前記ディスクアレイ装置へアクセスする計算機へ移動し、
前記記憶装置に対応した前記計算機から前記ディレクトリ情報を移動した計算機と前記ディスクアレイ装置との対応関係を変更するための処理を行うことを特徴とするディスクアレイ装置管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003196180A JP3599055B2 (ja) | 2003-07-14 | 2003-07-14 | 記憶装置管理方法およびシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003196180A JP3599055B2 (ja) | 2003-07-14 | 2003-07-14 | 記憶装置管理方法およびシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001130602A Division JP3806609B2 (ja) | 2001-04-27 | 2001-04-27 | 並列データベースシステムおよび分散ファイルシステム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004216690A Division JP3838248B2 (ja) | 2004-07-26 | 2004-07-26 | データ格納方法およびデータ管理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004054940A JP2004054940A (ja) | 2004-02-19 |
JP3599055B2 true JP3599055B2 (ja) | 2004-12-08 |
Family
ID=31944731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003196180A Expired - Fee Related JP3599055B2 (ja) | 2003-07-14 | 2003-07-14 | 記憶装置管理方法およびシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3599055B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5567686B2 (ja) | 2010-11-22 | 2014-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 分散データベースの負荷均衡のためのコネクション配分を実現する情報処理システム、情報処理装置、負荷均衡方法、データベース配置計画方法およびプログラム |
JP5638549B2 (ja) * | 2012-02-13 | 2014-12-10 | 日本電信電話株式会社 | 有用情報提示システム及び有用情報提示システムの制御方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04148363A (ja) * | 1990-10-11 | 1992-05-21 | Toshiba Corp | マルチコンピュータシステム |
JPH04303253A (ja) * | 1991-03-29 | 1992-10-27 | Toshiba Corp | 複合電子計算機システム |
JP3395208B2 (ja) * | 1991-07-10 | 2003-04-07 | 株式会社日立製作所 | 分散データベースのソート方法およびアクセス方法 |
JPH0522762A (ja) * | 1991-07-15 | 1993-01-29 | Nec Commun Syst Ltd | データ振り分け管理装置 |
JPH05120243A (ja) * | 1991-10-30 | 1993-05-18 | Toshiba Corp | 並列コンピユータシステムのスケジユーリング装置 |
-
2003
- 2003-07-14 JP JP2003196180A patent/JP3599055B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004054940A (ja) | 2004-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3023441B2 (ja) | データベース分割管理方法および並列データベースシステム | |
JP3266351B2 (ja) | データベース管理システムおよび問合せの処理方法 | |
US6192359B1 (en) | Method and system of database divisional management for parallel database system | |
US6510428B2 (en) | Method and system of database divisional management for parallel database system | |
US8620903B2 (en) | Database distribution system and methods for scale-out applications | |
US6556988B2 (en) | Database management apparatus and query operation therefor, including processing plural database operation requests based on key range of hash code | |
JP2006302307A (ja) | 記憶装置管理方法 | |
JP3806609B2 (ja) | 並列データベースシステムおよび分散ファイルシステム | |
JP3599055B2 (ja) | 記憶装置管理方法およびシステム | |
JP4349463B2 (ja) | 記憶装置管理方法 | |
JP3060225B2 (ja) | デ―タベ―ス管理方法およびシステム | |
JP3838248B2 (ja) | データ格納方法およびデータ管理システム | |
JP3172793B1 (ja) | データベース管理方法 | |
JP3236999B2 (ja) | データベース管理方法およびシステム | |
JP3156199B2 (ja) | データベース管理方法およびシステム | |
JP3538322B2 (ja) | データベース管理システムおよび問合せの処理方法 | |
JP3060222B2 (ja) | デ―タベ―ス管理方法およびシステム | |
JP3060224B2 (ja) | デ―タベ―ス管理方法およびシステム | |
JP3060223B2 (ja) | デ―タベ―ス管理方法およびシステム | |
JP3668243B2 (ja) | データベース管理システム | |
CN116975053A (zh) | 一种数据处理方法、装置、设备、介质及程序产品 | |
JPH10326216A (ja) | データベース管理システムおよび問合せの処理方法 | |
JP2006228254A (ja) | データベース管理システムおよび問合せの処理方法 | |
JP2001147847A (ja) | データベース管理システムおよび問合せの処理方法 | |
JPH10326215A (ja) | データベース管理装置および問合せの処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040525 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040726 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040824 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040906 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070924 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100924 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |