(57)【要約】【課題】  データ内容が複数のデータベースの内容の重複がないように振り分ける。【解決手段】  本発明は、ＤＢ管理装置において、処理内容入力装置から受信した処理内容を複数のＤＢ装置のいずれかに送信し、ＤＢ装置は、該処理内容が参照するデータブロック識別子とＤＢ識別子とを関連付けた対応関係情報を、メモリ管理手段から取得して、ＤＢ管理装置に送信し、ＤＢ管理装置ではその対応関係情報を参照先データブロック記憶手段に格納しておき、処理要求が入力されると、参照先データブロック記憶手段から該処理に合致するデータブロック識別子及びＤＢ識別子を取得し、そのデータブロック識別子がいずれかのＤＢ識別子と対応付けられているかを判定し、対応付けられていない場合は、該データブロック識別子を、該対応関係記憶手段の対応付け済みデータブロック総数が最も少ないＤＢ識別子に対応付けて格納し、データブロック識別子が最も多く対応付けられているＤＢに処理入力装置から入力された処理を振り分ける。【選択図】  図９
2011238072.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に分散配置され、データベース内のデータ内容が同期された複数のデータベースに処理を振り分けるデータベース管理装置であって、
N個の処理内容を入力する処理内容入力装置から受信した処理内容を前記複数のデータベース装置のいずれかに送信し、該データベース装置から、処理内容と該処理内容が参照するデータブロックのデータブロック識別子とデータベース識別子の対応関係情報を取得して、参照先データブロック記憶手段に格納するデータベース情報収集手段と、
処理要求を入力する処理入力装置から処理を受け付け、要求された処理の内容に基づいて、該処理に合致するデータブロック識別子及びデータベース識別子を取得する参照データブロック決定手段と、
データベース識別子とデータベース識別子との対応関係を保持する対応関係記憶手段と、
前記対応関係記憶手段を参照して、前記参照データブロック決定手段で取得した前記データブロック識別子がいずれかのデータベース識別子と対応付けられているかを判定し、対応付けられていない場合は、該データブロック識別子を、該対応関係記憶手段の対応付け済みデータブロック総数が最も少ないデータベース識別子と対応付けて該対応関係記憶手段に格納する対応関係決定手段と、
前記対応関係記憶手段を参照し、前記データブロック識別子が最も多く対応付けられているデータベースに前記処理入力装置から入力された処理を振り分ける処理振り分け手段と、
を有することを特徴とするデータベース管理装置。
【請求項２】
ネットワーク上に分散配置され、データベース内のデータ内容が同期された複数のデータベース装置であって、
メモリを有し、データベースを管理するメモリ管理手段と、
当該データベース装置に対して処理を振り分けるデータベース管理装置から、N個の処理内容を取得して、該処理内容が参照するデータブロック識別子とデータベース識別子とを関連付けた対応関係情報を、前記メモリ管理手段から取得して該データベース管理装置に送信するデータベース情報取得手段と、を有し、
前記メモリ管理手段は、
前記メモリに前記処理内容に対応するデータブロック識別子がない場合は、前記データベースからデータブロック識別子を取得して、該メモリに書き込むと共に、前記データベース情報取得手段に渡す手段を含む
ことを特徴とするデータベース装置。
【請求項３】
ネットワーク上に分散配置され、データベース内のデータ内容が同期された複数のデータベース装置と、該データベースに処理を振り分けるデータベース管理装置からなるデータベースシステムであって、
前記データベース装置は、
メモリを有し、データベースを管理するメモリ管理手段と、
当該データベース装置に対して処理を振り分けるデータベース管理装置から、N個の処理内容を取得して、該処理内容が参照するデータブロック識別子とデータベース識別子とを関連付けた対応関係情報を、前記メモリ管理手段から取得して該データベース管理装置に送信するデータベース情報取得手段と、を有し、
前記メモリ管理手段は、
前記メモリに前記処理内容に対応するデータブロック識別子がない場合は、前記データベースからデータブロック識別子を取得して、該メモリに書き込むと共に、前記データベース情報取得手段に渡す手段を含み、
前記データベース管理装置は、
N個の処理内容を入力する処理内容入力装置から受信した処理内容を前記複数のデータベース装置のいずれかに送信し、該データベース装置から、処理内容と該処理内容が参照するデータブロックのデータブロック識別子とデータベース識別子の対応関係情報を取得して、参照先データブロック記憶手段に格納するデータベース情報収集手段と、
処理要求を入力する処理入力装置から処理を受け付け、要求された処理の内容に基づいて、該処理に合致するデータブロック識別子及びデータベース識別子を取得する参照データブロック決定手段と、
データベース識別子とデータベース識別子との対応関係を保持する対応関係記憶手段と、
前記対応関係記憶手段を参照して、前記参照データブロック決定手段で取得した前記データブロック識別子がいずれかのデータベース識別子と対応付けられているかを判定し、対応付けられていない場合は、該データブロック識別子を、該対応関係記憶手段の対応付け済みデータブロック総数が最も少ないデータベース識別子と対応付けて該対応関係記憶手段に格納する対応関係決定手段と、
前記対応関係記憶手段を参照し、前記データブロック識別子が最も多く対応付けられているデータベースに前記処理入力装置から入力された処理を振り分ける処理振り分け手段と、
を有する
ことを特徴とするデータベースシステム。
【請求項４】
ネットワーク上に分散配置され、データベース内のデータ内容が同期された複数のデータベース装置と、該データベース装置に処理を振り分けるデータベース管理装置から構成されるシステムにおけるデータベース管理方法であって、
前記データベース管理装置は、
データベース情報収集手段が、N個の処理内容を入力する処理内容入力装置から受信した処理内容を前記複数のデータベース装置のいずれかに送信し、
前記データベース装置は、
データベース情報送信手段が、前記N個の処理内容を取得して、該処理内容が参照するデータブロック識別子とデータベース識別子とを関連付けた対応関係情報を、データベースを管理するメモリ管理手段から取得して、前記データベース管理装置に送信し、
前記データベース管理装置の前記データベース情報収集手段が、
前記データベース装置から、前記対応関係情報を取得して、参照先データブロック記憶手段に格納し、
前記データベース管理装置の参照ブロック決定手段が、
処理要求を入力する処理入力装置から処理を受け付け、要求された処理の内容に基づいて、前記参照先データブロック記憶手段から該処理に合致するデータブロック識別子及びデータベース識別子を取得し、
前記データベース管理装置の対応関係決定手段が、
前記データブロック識別子がいずれかのデータベース識別子と対応付けられているかを、データベース識別子とデータベース識別子との対応関係を保持する対応関係記憶手段を参照して判定し、対応付けられていない場合は、該データブロック識別子を、該対応関係記憶手段の対応付け済みデータブロック総数が最も少ないデータベース識別子に対応付けて該対応関係記憶手段に格納し、
前記データベース管理装置の処理振り分け手段が、
前記対応関係記憶手段を参照し、前記データブロック識別子が最も多く対応付けられているデータベースに前記処理入力装置から入力された処理を振り分ける
ことを特徴とするデータベース管理方法。
【請求項５】
前記データベース装置において、
N個の処理内容を取得して、該処理内容が参照するデータブロック識別子とデータベース識別子とを関連付けた対応関係情報を、データベースを管理するメモリ管理手段から取得する際に、
前記メモリ管理手段内のメモリに前記処理内容に対応するデータブロック識別子がない場合は、前記データベースからデータブロック識別子を取得して、該メモリに書き込み、前記データベース管理装置に送信する
請求項４記載のデータベース管理方法。
【請求項６】
請求項１に記載のデータベース管理装置を構成する各手段としてコンピュータを機能させるためのプログラム。
【請求項７】
請求項２に記載のデータベース管理装置を構成する各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理装置及びデータベースシステム及びデータベース管理方法及びプログラに係り、特に、ネットワーク上に分散配置され、データベース内のデータ内容が同期された複数のデータベースの負荷を分散させるためのデータベース管理装置及びデータベースシステム及びデータベース管理方法及びプログラに関する。
【背景技術】
【０００２】
ネットワーク上に分散配置されたノードの負荷が均等になるように処理を振り分ける技術として、図１１に示すように、処理入力装置から入力があるまで待機し（ステップ１０）、CPUやI/Oの負荷などの統計情報を利用して、入力された処理要求を振り分けるデータベースを決定し（ステップ２０）、振り分け先のデータベースに「処理送信部」を介して処理を送信する（ステップ３０）、技術がある（例えば、特許文献１参照）。
【０００３】
また、処理を振り分ける際に、メモリ使用量の均等化を行う技術がある（例えば、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2004-118622号公報、「負荷分散装置及び方法及びプログラム」
【非特許文献】
【０００５】
【非特許文献１】Sameh Elnikety, et al., "Tashkent+: Memory-Aware Load Balancing and Update Filtering in Replicated Database", SIGOPS Oper. Syst. Rev., Vol. 41, No. 3, pp. 399-412, 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来は、上記の特許文献１の技術のように、入力された処理を振り分ける際に、振り分けの判断材料としてCPUやI/O(入出力）等の負荷率を利用するものが多いが、各々の処理が参照するマシン上のデータ領域（データブロック）を考慮せずに処理を振り分けるため、図１２に示すように複数マシン上のメモリ内容（メモリ上のデータブロック）が重複してしまい、メモリヒット率が低下する問題がある。
【０００７】
また、非特許文献１の手法は、処理の振り分けの際に、メモリ使用量の均等化を行っているが、上記と同様に、メモリ内容の重複が発生し、メモリヒット率が低下する。
【０００８】
このように、従来は、各データベース上のメモリ内容の重複を取り除く機構そのものがないという問題がある。
【０００９】
本発明は上記の点に鑑みなされたもので、データ内容が同期された複数のデータベースにSQLで記述された処理を負荷分散のために振り分ける環境下において、データベース上の内容の重複がないように振り分けることが可能な分散配置データベースの負荷分散方法及び装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明（請求項１）は、ネットワーク上に分散配置され、データベース内のデータ内容が同期された複数のデータベースに処理を振り分けるデータベース管理装置であって、
N個の処理内容を入力する処理内容入力装置から受信した処理内容を複数のデータベース装置のいずれかに送信し、該データベース装置から、処理内容と該処理内容が参照するデータブロックのデータブロック識別子とデータベース識別子の対応関係情報を取得して、参照先データブロック記憶手段に格納するデータベース情報収集手段と、
処理要求を入力する処理入力装置から処理を受け付け、要求された処理の内容に基づいて、該処理に合致するデータブロック識別子及びデータベース識別子を取得する参照データブロック決定手段と、
データベース識別子とデータベース識別子との対応関係を保持する対応関係記憶手段と、
対応関係記憶手段を参照して、参照データブロック決定手段で取得したデータブロック識別子がいずれかのデータベース識別子と対応付けられているかを判定し、対応付けられていない場合は、該データブロック識別子を、該対応関係記憶手段の対応付け済みデータブロック総数が最も少ないデータベース識別子と対応付けて該対応関係記憶手段に格納する対応関係決定手段と、
対応関係記憶手段を参照し、データブロック識別子が最も多く対応付けられているデータベースに処理入力装置から入力された処理を振り分ける処理振り分け手段と、を有する。
【００１１】
本発明（請求項２）は、ネットワーク上に分散配置され、データベース内のデータ内容が同期された複数のデータベース装置であって、
メモリを有し、データベースを管理するメモリ管理手段と、
当該データベース装置に対して処理を振り分けるデータベース管理装置から、N個の処理内容を取得して、該処理内容が参照するデータブロック識別子とデータベース識別子とを関連付けた対応関係情報を、メモリ管理手段から取得して該データベース管理装置に送信するデータベース情報取得手段と、を有し、
メモリ管理手段は、
メモリに処理内容に対応するデータブロック識別子がない場合は、データベースからデータブロック識別子を取得して、該メモリに書き込むと共に、データベース情報取得手段に渡す手段を含む。
【００１２】
本発明（請求項３）は、ネットワーク上に分散配置され、データベース内のデータ内容が同期された複数のデータベース装置と、該データベースに処理を振り分けるデータベース管理装置からなるデータベースシステムであって、
データベース装置は、
メモリを有し、データベースを管理するメモリ管理手段と、
当該データベース装置に対して処理を振り分けるデータベース管理装置から、N個の処理内容を取得して、該処理内容が参照するデータブロック識別子とデータベース識別子とを関連付けた対応関係情報を、メモリ管理手段から取得して該データベース管理装置に送信するデータベース情報取得手段と、を有し、
メモリ管理手段は、
メモリに処理内容に対応するデータブロック識別子がない場合は、データベースからデータブロック識別子を取得して、該メモリに書き込むと共に、データベース情報取得手段に渡す手段を含み、
データベース管理装置は、
N個の処理内容を入力する処理内容入力装置から受信した処理内容を複数のデータベース装置のいずれかに送信し、該データベース装置から、処理内容と該処理内容が参照するデータブロックのデータブロック識別子とデータベース識別子の対応関係情報を取得して、参照先データブロック記憶手段に格納するデータベース情報収集手段と、
処理要求を入力する処理入力装置から処理を受け付け、要求された処理の内容に基づいて、該処理に合致するデータブロック識別子及びデータベース識別子を取得する参照データブロック決定手段と、
データベース識別子とデータベース識別子との対応関係を保持する対応関係記憶手段と、
対応関係記憶手段を参照して、参照データブロック決定手段で取得したデータブロック識別子がいずれかのデータベース識別子と対応付けられているかを判定し、対応付けられていない場合は、該データブロック識別子を、該対応関係記憶手段の対応付け済みデータブロック総数が最も少ないデータベース識別子と対応付けて該対応関係記憶手段に格納する対応関係決定手段と、
対応関係記憶手段を参照し、データブロック識別子が最も多く対応付けられているデータベースに処理入力装置から入力された処理を振り分ける処理振り分け手段と、
を有する。
【００１３】
本発明（請求項４）は、ネットワーク上に分散配置され、データベース内のデータ内容が同期された複数のデータベース装置と、該データベース装置に処理を振り分けるデータベース管理装置から構成されるシステムにおけるデータベース管理方法であって、
データベース管理装置は、
データベース情報収集手段が、N個の処理内容を入力する処理内容入力装置から受信した処理内容を複数のデータベース装置のいずれかに送信し、
データベース装置は、
データベース情報送信手段が、N個の処理内容を取得して、該処理内容が参照するデータブロック識別子とデータベース識別子とを関連付けた対応関係情報を、データベースを管理するメモリ管理手段から取得して、データベース管理装置に送信し、
データベース管理装置のデータベース情報収集手段が、
データベース装置から、対応関係情報を取得して、参照先データブロック記憶手段に格納し、
データベース管理装置の参照ブロック決定手段が、
処理要求を入力する処理入力装置から処理を受け付け、要求された処理の内容に基づいて、参照先データブロック記憶手段から該処理に合致するデータブロック識別子及びデータベース識別子を取得し、
データベース管理装置の対応関係決定手段が、
データブロック識別子がいずれかのデータベース識別子と対応付けられているかを、データベース識別子とデータベース識別子との対応関係を保持する対応関係記憶手段を参照して判定し、対応付けられていない場合は、該データブロック識別子を、該対応関係記憶手段の対応付け済みデータブロック総数が最も少ないデータベース識別子に対応付けて該対応関係記憶手段に格納し、
データベース管理装置の処理振り分け手段が、
対応関係記憶手段を参照し、データブロック識別子が最も多く対応付けられているデータベースに処理入力装置から入力された処理を振り分ける。
【００１４】
また、本発明（請求項５）は、請求項４のデータベース装置において、
N個の処理内容を取得して、該処理内容が参照するデータブロック識別子とデータベース識別子とを関連付けた対応関係情報を、データベースを管理するメモリ管理手段から取得する際に、
メモリ管理手段内のメモリに処理内容に対応するデータブロック識別子がない場合は、データベースからデータブロック識別子を取得して、該メモリに書き込み、データベース管理装置に送信する。
【００１５】
本発明（請求項６）は、請求項１に記載のデータベース管理装置を構成する各手段としてコンピュータを機能させるためのプログラムである。
【００１６】
本発明（請求項７）は、請求項２に記載のデータベース管理装置を構成する各手段としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１７】
上記のように、本発明によれば、処理内容入力装置から入力された処理内容に基づいて、ある処理がデータベース上で実行された場合に参照するデータブロック情報を収集し、参照先データブロック記憶手段に格納しておき、処理入力装置から入力された処理が、データベース上のどこのデータブロックを参照するかについての情報を、参照先データブロック記憶手段の情報から｛処理、データベース、データブロック｝が関連付けられた情報を利用することで、データベース間で重複しないように振り分けることができる。
【００１８】
また、各データベースのメモリ内容の重複がなくなることで、その分の領域が空き領域となるため、いままで、メモリに格納されることがなかったデータベースのデータブロックがメモリに格納されるようになり、メモリヒット率が向上する。これにより、従来技術と比較した場合、入力処理の平均処理完了時間が短縮されると共に、メモリの有効活用が可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施の形態におけるシステム構成図である。
【図２】本発明の一実施の形態における一連の処理のフローチャートである。
【図３】本発明の一実施の形態におけるデータベース情報初期化部の処理のフローチャートである。
【図４】本発明の一実施の形態におけるデータベース情報初期化時のデータベース側の処理のフローチャートである。
【図５】本発明の一実施の形態におけるステップ３００の処理の参照データブロック決定部の処理のフローチャートである。
【図６】本発明の一実施の形態における処理の参照データブロックとデータベース対応関係決定部の処理のフローチャートである。
【図７】本発明の一実施の形態における未対応付けのデータブロックをデータベースに割り当てる処理を示す図である。
【図８】本発明の一実施の形態におけるデータベースの振り分け処理を示す図である。
【図９】本発明の一実施の形態における一連の処理のシーケンスチャートである。
【図１０】本発明の一実施の形態における処理振り分けの例である。
【図１１】従来技術の振り分け処理のフローチャートである。
【図１２】従来のデータベースの振り分けの例である。
【発明を実施するための形態】
【００２０】
以下図面と共に、本発明の実施の形態を説明する。
【００２１】
図１は、本発明の一実施の形態におけるシステム構成を示す。
【００２２】
同図に示すシステムは、処理入力装置１０、結果出力装置２０、処理内容入力装置３０、マシンＡ１００、マシンＢ２００，マシンＣ３００から構成される。
【００２３】
マシンＡ１００は、データベース管理装置として動作する装置であり、処理入力装置１０から実行する処理内容（処理要求）を受け取り、データベース装置として動作するマシンＢ２００，マシンＣ３００にこの処理を振り分け、マシンＢ２００，マシンＣ３００から取得した処理結果を結果出力装置２０に出力する。マシンＢ２００，マシンＣ３００は、後述するデータ同期部を介して、データブロックの同期を行っているため、マシンＡ１００が受け取った処理はどちらのマシンでも実行可能である。ただし、マシンＢ２００、マシンＣ３００のメモリ管理部が管理しているメモリ上に存在するデータブロックによって処理速度が異なる。マシンＡ１００では、処理内容が参照するデータブロックを認識し、処理を振り分けることで、マシンＢ２００，マシンＣ３００のメモリヒット率の向上を図る。
【００２４】
マシンＡ１００は、処理の参照データブロック決定部１１０、処理の参照データブロックとデータベースの対応関係決定部１２０、処理の参照データブロック記憶部１３０、対応関係記憶部１４０、データベース情報初期化部１５０、データベース情報送受信部１６０、処理振り分け部１７０、処理結果受信部１８０から構成される。
【００２５】
データベース情報初期化部１５０は、処理内容入力装置３０から入力されたＮ個の処理内容をデータベース情報送受信部１６０から、マシンＢ２００または、マシンＣ３００に送信し、これらのマシン（データベース）から当該処理が参照するデータブロックの関係（処理内容、データブロック識別子、データベースの識別子）を取得し、処理の参照データブロック記憶部１３０に記録する。なお、処理内容入力装置３０からは、当該システムで扱うべき全ての処理内容（『ｘｘｘを検索せよ』、『ｙｙｙを検索せよ』等の処理内容）がデータベース処理言語ＳＱＬ(SELECT…FROM…）を利用して入力される。
【００２６】
処理の参照データブロック記憶部１３０は、データベース情報初期化部１５０により処理毎に使用するデータブロック識別子と当該データブロックを格納しているデータベースの識別子が格納され、処理の参照データブロック決定部１１０により参照される。
【００２７】
データベース情報送受信部１６０は、処理内容入力装置３０から入力され、データベース情報初期化部１５０を介して取得した処理内容を、マシンＢ２００またはマシンＣ３００に送信すると共に、マシンＢ２００またはマシンＣ３００から当該処理に対応するデータブロック識別子及びデータベースの識別子を取得してデータベース情報初期化部１５０に渡す。
【００２８】
処理の参照データブロック決定部１１０（以下、「参照先決定部」と記す）は、処理入力装置１０から処理内容を取得すると、処理の参照データブロック記憶部１３０を参照して、入力された処理が参照するデータブロックの検索を行い、参照するデータブロック識別子が付与された処理内容を処理の参照データブロックとデータベースの対応関係決定部１２０に渡す。なお、処理入力装置１０からは利用者から指定された処理要求（例えば、『ｘｘｘを検索せよ』）が入力される。
【００２９】
処理の参照データブロックとデータベースの対応関係決定部１２０（以下、「対応関係決定部」と記す）は、参照先決定部１１０から参照するデータブロック識別子が付与された処理内容を取得して、データブロックとデータベースの対応関係を決定し、対応関係記憶部１４０に記録した後、要求された処理が参照するデータブロックが最も多いデータベースを決定し、処理の参照情報に関する情報が付与された処理内容を処理振り分け部１７０に渡す。
【００３０】
処理振り分け部１７０は、対応関係決定部１２０から参照するデータブロック識別子が付与された処理内容を取得し、受け取った処理内容に付与された情報とＣＰＵやＩ／Ｏの負荷等の統計情報を元に、処理を振り分けるデータベース（マシンＢ２００もしくはマシンＣ３００）を決定し、そのデータベースに処理を送信する。
【００３１】
対応関係記憶部１４０は、データブロックとデータベースの対応関係を格納する。
【００３２】
処理結果受信部１８０は、マシンＢ２００またはマシンＣ３００から受け取った実行結果を結果出力装置２０に出力する。
【００３３】
次に、マシンＢ２００，マシンＣ３００について説明する。
【００３４】
マシンＢ２００，マシンＣ３００は、マシンＡ１００の処理振り分け部１７０から受信した処理を実行する。処理実行のために必要なデータブロックを、後述するそれぞれのメモリ管理部２６０，３６０を利用して取得し、マシンＡ１００に送信する。この際、当該メモリ管理部２６０，３６０のメモリ２６１，３６１上にないデータブロックは、メモリ管理部２６０，３６０がデータ記憶部２７０，３７０から取得し、メモリ２６１，３６１上のデータブロックとの入れ替えを行う。また、併せて、マシンＡ１００のデータベース情報初期化部１５０から送信された処理内容が参照するデータブロック識別子の検索も行う。なお、メモリ２６１，３６１とデータ記憶部２７０，３７０とのデータブロックの入れ替えは、参照頻度の高いデータブロックをメモリ２６１，３６１上に格納する。なお、参照頻度はメモリ管理部２６０，３６０内でデータブロック毎にカウントすることで管理することができる。
【００３５】
マシンＢ２００は、データベース情報送受信部２１０、データベース処理送受部２２０、データベース情報取得部２４０、データベース処理部２５０、メモリ管理部２６０、データ記憶部２７０、データ同期部２８０から構成される。マシンＣ３００もマシンＢ２００と同一の構成であるので、当該構成要素については記載しない。
【００３６】
データベース情報送受信部２１０，３１０は、マシンＡ１００のデータベース情報送受信部１６０から受け取った処理内容をデータベース情報取得部２４０に出力する。
【００３７】
データベース情報取得部２４０，３４０は、入力された処理内容に基づいて、データべース処理部２５０、３５０、メモリ管理部２６０，３６０を介してデータブロック識別子を検索し、処理内容と参照データブロック識別子の対応関係表を当該データベース情報取得部２４０，３４０内のバッファ（図示せず）に作成する。
【００３８】
データベース処理送受信部２２０，３２０は、マシンＡ１００の処理振り分け部１７０から取得した処理をデータベース処理部２５０，３５０に出力し、当該データベース処理部２５０，３５０から取得した処理結果を、マシンＡ１００の処理結果受信部１８０に送信する。
【００３９】
データベース処理部２５０，３５０は、必要な情報をメモリ管理部２６０，３６０から取得し、処理結果を生成し、データベース情報取得部２４０，３４０、または、データベース処理送受信部２２０，３２０に渡す。
【００４０】
メモリ管理部２６０，３６０は、データベース処理部２５０から要求されたデータブロックをデータブロック識別子から検索し、それがメモリ上にある場合はそれをデータベース処理部２５０，３５０に返却し、ない場合は、データ記憶部２７０，３７０から検索し、メモリ上のデータブロックと入れ替えを行い、そのデータを返却する。
【００４１】
データ同期部２８０，３８０は、メモリ管理部２６０，３６０によりデータ記憶部２７０，３７０に更新処理が行われた場合、その対になるデータ記憶部３７０，２７０にその更新処理を同様に実施し、データの内容を同期させる。
【００４２】
以下に、上記の構成における一連の動作を説明する。
【００４３】
図２は、本発明の一実施の形態における全体の処理のフローチャートである。
【００４４】
以下の処理において、ステップ１００は、処理の参照データブロック記憶部１３０に処理内容とデータブロックとの対応を格納する前処理であり、ステップ２００〜６００は、要求された処理を振り分ける処理である。なお、前処理では、データベース情報初期化部１５０に接続される処理内容入力装置３０を用い、振り分け処理では参照先決定部１１０に接続される処理入力装置１０を用いる。
【００４５】
ステップ１００）  マシンＡ１００のデータベース初期化部１５０は、処理内容入力装置３０から入力されたＮ個の処理内容がデータベース（本実施の形態ではマシンＢまたはマシンＣ）上のどのデータブロックを参照するかについてマシンＢ２００，マシンＣ３００のメモリ管理部２６０を検索し、その結果（処理内容と参照データブロックの対応関係）を処理の参照データブロック記憶部１３０に格納する。詳細な処理については図３で詳述する。
【００４６】
ステップ２００）  処理入力装置１０から次の処理要求が入力されるまで待機する。
【００４７】
ステップ３００）  処理入力装置１０から処理要求が入力されると、参照先決定部１１０は、処理の参照データブロック記憶部１３０を参照して、入力された処理が参照するデータブロックの検索を行い、参照するデータブロック識別子を処理に付与し、対応関係決定部１２０に渡す。詳細な処理については図５で詳述する。
【００４８】
ステップ４００）  対応関係決定部１２０は、参照するデータブロック識別子が付与された処理内容に基づいて、データブロック識別子とデータベースの対応関係を決定する。詳細な処理については図６で詳述する。
【００４９】
ステップ５００）  処理振り分け部１７０において、入力処理が参照するデータブロックが最も多いデータベースの情報と、その他の統計情報（ＣＰＵやＩ／Ｏ）を利用し、最終的に処理を振り分けるデータベースを決定する。
【００５０】
ステップ６００）  受け取った処理内容に付与された情報を元に、対応するデータベース（マシンＢまたはマシンＣ）に処理を振り分ける。
【００５１】
次に、上記のデータベース情報初期化処理（ステップ１００）について説明する。
【００５２】
図３は、本発明の一実施の形態におけるデータベース情報初期化部の処理のフローチャートである。
【００５３】
ステップ１１０）  データベース情報初期化部１５０は、処理内容入力装置３０から入力されたシステムで扱うべきＮ個の処理内容（ＳＱＬで記述）をデータベース情報送受信部１６０を利用して、マシンＢ２００及びマシンＣ３００に送信する。
【００５４】
ステップ１２０）  マシンＢ２００のデータベース情報送受信部２１０及びマシンＣ３００のデータベース情報送受信部３１０からデータ（処理内容と参照するデータブロックの対応関係表）を受信するまで待機する。
【００５５】
ステップ１３０）  マシンＢ２００，マシンＣ３００から受信したデータ（処理内容と参照するデータブロックの対応関係表）を処理の参照データブロック記憶部１３０に格納する。
【００５６】
次に、上記の図２におけるデータベース情報初期化時（ステップ１００）のマシンＢ２００及びマシンＣ３００側の動作を説明する。
【００５７】
図４は、本発明の一実施の形態におけるデータベース初期化時のデータベース側の処理のフローチャートである。
【００５８】
ステップ１２１）  それぞれのマシンＢ２００，Ｃ３００のデータベース情報取得部２４０，３４０は、データベース情報送受信部２１０，３１０からデータ（Ｎ個の処理内容）を受け取るまで待機する。
【００５９】
ステップ１２２）  カウンタｉを１に初期化する。
【００６０】
ステップ１２３）  データベース情報取得部２４０，３４０はｉ個目の処理内容をデータベース処理部２５０，３５０に問い合わせることで、当該処理が実行された場合に参照するデータブロック識別子を取得する。
【００６１】
ステップ１２４）  データベース情報取得部２４０，３４０はｉ個目の処理内容と、その処理が参照するデータブロック識別子を送信用バッファに（図示せず）に蓄積する。
【００６２】
ステップ１２５）  データベース情報取得部２４０，３４０は、カウンタｉがＮを超えているかを判定し、超えている場合はステップ１２６に移行し、超えていない場合はステップ１２７に移行する。
【００６３】
ステップ１２６）  カウンタｉに１を加算し、ステップ１２３に移行する。
【００６４】
ステップ１２７）  処理内容に参照するデータブロックの識別子の情報を付与し、ステップ１２１に移行し、次のマシンＡ１００からの処理の受信を待機する。
【００６５】
次に、上記の図２における参照先決定部１１０の処理（ステップ３００）の動作を詳細に説明する。
【００６６】
図５は、本発明の一実施の形態における処理の参照データブロック決定部の処理のフローチャートである。
【００６７】
ステップ３１０）  参照先決定部１１０は、入力された処理要求に対して分解処理を行う。例えば、マシンの処理が行いやすい形へ変換する。
【００６８】
ステップ３２０）  処理要求に基づいて、参照データブロック記憶部１３０から、入力された処理要求の内容と合致するものを検索して、参照するデータブロック識別子を取得する。
【００６９】
ステップ３３０）  参照先決定部１１０は、取得した、参照するデータブロック識別子が存在するかを調べる。存在する場合は、ステップ３４０に移行し、存在しない場合は当該処理を終了する。
【００７０】
ステップ３４０）  処理内容に参照するデータブロックの識別子の情報を付与し、対応関係決定部１２０に渡す。
【００７１】
次に、図２における対応関係決定部１２０の処理（ステップ４００）の動作を詳細に説明する。
【００７２】
図６は、本発明の一実施の形態における処理の参照データブロックとデータベース対応関係決定部の処理のフローチャートである。
【００７３】
ステップ４１０）  対応関係決定部１２０は、処理が参照するデータブロックが、既にデータベース（マシンＢまたはマシンＣ）に対応付け済みであるかを調べ、対応付けられていればステップ４３０に移行し、対応付けられていない場合はステップ４２０に移行する。
【００７４】
ステップ４２０）  対応関係決定部１２０は、対応付けが行われていない参照データブロックの識別子を、対応付け済みデータブロック総数が最も少ないデータベースに割り当てる。このとき、図７に示すように、対応関係決定部１２０は、対応関係記憶部１４０を参照し、デーベースＢ（マシンＢ）の対応付け済み総数（７個）がデータベースＣ（マシンＣ）の対応付け総数（８個）よりも少ないので、マシンＢに参照データブロックの識別子を割り当てる。
【００７５】
ステップ４３０）  参照するデータブロック識別子に基づいて、処理が参照するデータブロックが最も多く対応付けられているデータベースに処理を振り分けることを決定する。
図８の例では、マシンＢ２００が参照するデータブロック識別子「２」「８」を多く含むため、当該データブロック識別子「２」「８」をマシンＢ２００に振り分けることとする。
【００７６】
図９は、本発明の一実施の形態における一連の処理のシーケンスチャートである。
【００７７】
マシンＡ１００は、処理内容入力装置３０から処理要求を受信すると（ステップ５０１）、当該処理要求の処理内容をランダムにＤＢに送信する。ここでは、マシンＢ２００に送信するものとする（ステップ５０２）。
【００７８】
マシンＢ２００では、データ記憶部２７０から受信した処理が参照するデータブロックを取得し（ステップ５０３）、当該データブロックと処理内容との対応関係をバッファに蓄積し（ステップ５０４）、当該処理に関するすべてのデータブロックを取得して処理内容とのデータブロックの対応関係を生成し、当該ＤＢの識別子を付与して、マシンＡに送信する（ステップ５０５）。
【００７９】
マシンＡ１００は、マシンＢ２００から取得した処理とデータブロックの対応関係及びマシンＡの識別子（データベース識別子）のデータを処理毎にデータブロック識別子を付与して「処理の参照データブロック記憶部１３０」に格納する（ステップ５０６）。
【００８０】
ステップ５０７〜５１２についても同様である。
【００８１】
マシンＡ１００は、処理入力装置１０から処理要求を受信すると（ステップ５１３）、参照先決定部１０において、"処理の参照データブロック記憶部１３０"を参照して処理内容と合致するデータブロック識別子を取得する（ステップ５１４）。
【００８２】
処理内容とデータブロック識別子とデータベース識別子を組として（ステップ５１５）、処理入力装置１０から入力された処理が参照するデータブロックが多く対応付けられているＤＢ（マシンＢまたはマシンＣ）を振り分け先候補とする（ステップ５１６）。振り分け先候補から統計情報を参照し、最終的な振り分け先データベースを決定し、処理を送信する（ステップ５１７）。
【００８３】
上記の図９のステップ５０１〜５１２に示すように、処理入力装置１０から入力された情報に基づいて、ある処理がデータベース（マシンＢまたはマシンＣ）上で実行された場合に参照するデータブロック情報を、データベース情報取得部２４０または３４０で収集し、マシンＡ１００の"処理の参照データブロック記憶部１３０"に、その処理の参照情報を記録する処理を行う。
【００８４】
その上で、処理入力装置から入力された処理内容が、データベース（マシンＢまたはマシンＣ）上のどこのデータブロックを参照するかについて、図９のステップ５１４に示すように、マシンＡ１００の"処理の参照データブロック記憶部１３０"から検索し、その情報を利用することで、参照するデータブロックが複数のデータベース間で重複しないように処理を振り分ける。
【００８５】
上記により、図９に示すように、各データベースのメモリ内容の重複がなくなる。図１０の例では、マシンＡ１００が受信した処理が参照するデータブロックを、当該処理内容に応じて"処理の参照するデータブロック記憶部１３０"を参照することにより取得し、マシンＢ２００とマシンＣ３００に振り分けている。これにより、図１２のようなデータ記憶部２７０，３７０のメモリ内容の重複がなくなり、メモリの重複に利用されていた領域が空くことで、今までメモリに格納されることがなかったデータベースのデータブロックがメモリに格納されるようになる。そのためメモリヒット率が向上する。このような方法をとることにより、均等でランダムに振り分ける方法（ラウンドロビン）に比べ、メモリのヒット確率が向上する。実験では、データベース装置４台に処理を分けた場合、ラウンドロビンと比較して、約１０％のメモリヒット率の向上を確認した。
【００８６】
なお、上記のデータベース管理装置として動作するマシンＡ１００、データベース装置として動作するマシンＢ２００，マシンＣ３００の処理動作をプログラムとして構築し、データベース管理装置、データベース装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００８７】
また、構築されたプログラムをハードディスクや、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
【００８８】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００８９】
１０  処理入力装置
２０  結果出力装置
３０  処理内容入力装置
１００  マシンＡ（データベース管理装置）
１１０  処理の参照データブロック決定部
１２０  処理の参照データブロックとデータベースの対応関係決定部
１３０  処理の参照データブロック記憶部
１４０  対応関係記憶部
１５０  データベース情報初期化部
１６０  データベース情報送受信部
１７０  処理振り分け部
１８０  処理結果受信部
２００  マシンＢ（データベース装置）
２１０，３１０  データベース情報送受信部
２２０，３２０  データベース処理送受信部
２４０，３４０  データベース情報取得部
２５０，３５０  データベース処理部
２６０，３６０  メモリ管理部
２６１，３６１  メモリ
２７０，３７０  データ記憶部
２８０，３８０  データ同期部
３００  マシンＣ（データベース装置）
【図１】
2011238072.tif 000003
【図２】
2011238072.tif 000004
【図３】
2011238072.tif 000005
【図４】
2011238072.tif 000006
【図５】
2011238072.tif 000007
【図６】
2011238072.tif 000008
【図７】
2011238072.tif 000009
【図８】
2011238072.tif 000010
【図９】
2011238072.tif 000011
【図１０】
2011238072.tif 000012
【図１１】
2011238072.tif 000013
【図１２】
2011238072.tif 000014