(57)【要約】【課題】複数の計算機の余剰資源を有効に利用する。【解決手段】トポロジ管理サーバ装置１０３にて、データベース管理装置で管理されるデータベースオブジェクトを識別する識別子とそのデータベース管理装置を識別する識別子を対応付けて管理する。複数の計算機１０４、１０５、…、１０６がデータベースオブジェクトをキャッシュするためにデータベースオブジェクトを識別する識別子を含むキャッシュ要求をトポロジ管理サーバ装置１０３へ送信すると、トポロジ管理サーバ装置１０３は、データベース管理装置へキャッシュ要求を転送し、データベースオブジェクトが計算機へ送信され、そこでキャッシュされるようにする。計算機で、キャッシュされたデータベースオブジェクトを参照しながら計算を行なうプログラムを動かしてもよい。【選択図】  図１
2004227169.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に配置されたデータベースを管理するデータベース管理装置と、前記データベース管理装置のデータベースを分散するためのトポロジ管理サーバ装置と、前記トポロジ管理サーバ装置が前記ネットワーク上で管理する管理ドメイン内に配置された複数の計算機と、を備える分散型データベースシステムであって、
前記トポロジ管理サーバ装置は、
前記データベース管理装置により管理されるデータベースオブジェクトを識別するための情報であるデータベースオブジェクト識別子と、そのデータベースオブジェクトが管理されるデータベース管理装置を識別するためのデータベース管理装置識別子と、を対応付けた情報を含む情報であるトポロジ情報を格納するトポロジ情報格納部と、
前記データベースオブジェクト識別子で識別されるデータベースオブジェクトをキャッシュするために前記計算機の少なくとも一以上から発せられる前記データベースオブジェクト識別子を含むキャッシュ要求を受信するキャッシュ要求受信部と、
前記キャッシュ要求受信部で受信されたキャッシュ要求に含まれるデータベースオブジェクト識別子に基づいて前記トポロジ情報格納部から対応するデータベース管理装置識別子を取得するデータベース管理装置識別子取得部と、
前記データベース管理装置識別子取得部で取得されたデータベース管理装置識別子で識別されるデータベース管理装置に対して、前記キャッシュ要求を転送するキャッシュ要求転送部と、
を有し、
前記計算機は、
キャッシュ要求を送信するキャッシュ要求送信部と、
キャッシュ要求送信部でのキャッシュ要求の送信に応じて返信されるデータベースオブジェクトを受信するデータベースオブジェクト受信部と、
データベースオブジェクト受信部で受信されたデータベースオブジェクトをキャッシュするデータベースオブジェクトキャッシュ部と、
を有し、
前記データベース管理装置は、
トポロジ管理サーバ装置から転送されるキャッシュ要求を受信するキャッシュ要求受信部と、
キャッシュ要求受信部で受信されたキャッシュ要求に応じてデータベースオブジェクトを複製して送信するデータベースオブジェクト複製送信部と、
を有する、
分散型データベースシステム。
【請求項２】
前記計算機は、データベースオブジェクトキャッシュ部にキャッシュされたデータベースオブジェクトを参照しながら計算を行なうためのプログラムを受信するプログラム受信部を有する請求項１に記載の分散型データベースシステム。
【請求項３】
前記計算機は、自身の計算負荷を検出する計算負荷検出部を有し、
キャッシュ要求送信部は、計算負荷検出部で検出された計算負荷に基づいてキャッシュ要求を送信することを特徴とする請求項１または２に記載の分散型データベースシステム。
【請求項４】
キャッシュ要求送信部は、計算機が起動するとキャッシュ要求を送信することを特徴とする請求項１または２に記載の分散型データベースシステム。
【請求項５】
キャッシュ要求には、データベースオブジェクトキャッシュ部がキャッシュできるデータベースオブジェクトの量又は／及びデータ種別に関する情報が含まれることを特徴とする請求項１ないし４のいずれか一に記載の分散型データベースシステム。
【請求項６】
キャッシュ要求には、データベースオブジェクトキャッシュ部がデータベースオブジェクトをキャッシュできる時間帯に関する情報が含まれることを特徴とする請求項１ないし４のいずれか一に記載の分散型データベースシステム。
【請求項７】
キャッシュ要求には、計算機の有する計算能力に関する情報が含まれることを特徴とする請求項１ないし４のいずれか一に記載の分散型データベースシステム。
【請求項８】
キャッシュ要求には、計算機がデータベースオブジェクトをキャッシュすることに対する対価に関する情報が含まれる請求項１ないし４のいずれか一に記載の分散型データベースシステム。
【請求項９】
トポロジ情報は、さらに、データベースオブジェクト識別子に、データベースオブジェクトがキャッシュされた計算機の識別子を対応づけ、
前記トポロジ管理サーバ装置は、
データベースオブジェクトが計算機にキャッシュされたことを示す情報であるキャッシュ済情報を受信するキャッシュ済情報受信部と、
キャッシュ済情報受信部で受信されたキャッシュ済情報に基づいて、トポロジ情報格納部に格納されたトポロジ情報のキャッシュ済み情報を最新の状態に更新するトポロジ情報キャッシュ更新部と、
を有する請求項１に記載の分散型データベースシステム。
【請求項１０】
前記トポロジ情報は、さらにデータベースオブジェクト識別子に、データベースオブジェクトに操作されたロックに関する情報であるロック情報を対応付け、
前記トポロジ管理サーバ装置は、
ロック情報を受信するロック操作情報受信部と、
ロック操作情報受信部で受信されたロック情報に基づいて、トポロジ情報格納部に格納されたトポロジ情報のロック情報を最新の状態に更新するトポロジ情報ロック更新部と、
を有する請求項９に記載の分散型データベースシステム。
【請求項１１】
前記トポロジ管理サーバ装置は、複数あり、かつ、前記トポロジ管理サーバ装置は、ネットワークにより通信が可能な他の管理ドメインを管理する他トポロジ管理サーバ装置とトポロジ情報を交換するトポロジ情報交換部を有する請求項９または１０に記載の分散型データベースシステム。
【請求項１２】
前記データベース管理装置は、
自らが保持するデータベースオブジェクトに対して更新操作を行なうと、データベースオブジェクトをキャッシュしている計算機であるクライアント装置に向けて、キャッシュされているデータベースオブジェクトの更新操作の命令である更新操作命令を送信する更新操作命令送信部を有し、
前記計算機は、
更新操作命令を受信する変更操作命令受信部と、
更新操作命令受信部で受信された更新操作命令に基づいて、データベースオブジェクトキャッシュ部にキャッシュされたデータベースオブジェクトを更新するデータベースオブジェクト更新操作部を有する請求項２、９、１１のいずれか一に記載の分散型データベースシステム。
【請求項１３】
前記データベース管理装置は、
データベースオブジェクトに対する更新操作に関する情報である更新操作情報を受信する更新操作情報受信部と、
更新操作情報受信部で受信された更新操作情報に基づいて自らが保持するデータベースオブジェクトに対して更新操作を行なう更新操作部と、
前記更新操作情報に基づいて、データベースオブジェクトをキャッシュしている計算機であるクライアント装置に向けて、キャッシュされているデータベースオブジェクトの更新操作の命令である更新操作命令を送信する更新操作命令送信部を有し、
前記計算機は、
更新操作情報を送信する更新操作情報送信部と、
更新操作命令を受信する更新操作命令受信部と、
更新操作命令受信部で受信された更新操作命令に基づいて、データベースオブジェクトキャッシュ部にキャッシュされたデータベースオブジェクトを更新するデータベースオブジェクト更新操作部を有する請求項２、９、１１のいずれか一に記載の分散型データベースシステム。
【請求項１４】
前記データベース管理装置で管理されるデータベースオブジェクトに対する更新を表わすジャーナルを受信するジャーナル受信部と、
ジャーナル受信部で受信されたジャーナルを蓄積するジャーナル蓄積部と、
ジャーナル蓄積部で蓄積したジャーナルをリプレイするジャーナルリプレイ部と、
前記ジャーナルリプレイ部でリプレイされたジャーナルに基づいて生成されたスナップショットを保持するスナップショット保持部と、
ドメインが障害を蒙ったとき前記スナップショットから障害ドメインのリカバリのための処理を行なう機能を有するリカバリ部と、
を有するジャーナル管理サーバ装置をさらに備え、
前記データベース管理装置は、
ジャーナルを送信するジャーナル送信部を有する請求項１に記載の分散型データベースシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散データベースシステム及びそれを用いたグリッドコンピューティングシステムに関する。
【０００２】
【従来の技術】
従来の商用化されたリレーショナルデータベースシステムにおけるデータの分散は、二相コミットとレプリケーションとによって実現されてきた。また、データベースの格納媒体はハードディスク装置であり、バックアップの採取はデータベースの停止を前提としていた。
【０００３】
二相コミットとは、正規化されて参照／被参照関係にあるテーブルのセルの間で、被参照テーブルにあるセルの値の変更やそのセルが属する行の削除を行なおうとするとき、参照テーブルが複数のホストコンピュータに分散していることを想定し、存在しない被参照セルを参照するセルが発生しないよう、一度自ホストコンピュータ上の当該被参照テーブル上でチェックし、参照セルが無い場合に、その更新を仮コミットし、その後、他のホストコンピュータ上の参照テーブルをチェックし、そこでも参照セルが無い場合に、はじめてその更新を本コミットする仕組みで、二段階に渡ってコミットするため二相コミットと言われる。
【０００４】
二相コミットについては、システムの性能を低下させることが指摘され、それを解決する方法も提案されている（例えば、特許文献１参照。）。
【０００５】
また、レプリケーションは、二相コミットにかかる時間が実用レベルを超えて遅いために開発された技術である。主にマスタテーブルを、新規トランザクションデータを入力するサーバに複製し、読み取り専用のテーブルとして扱う。従来のネットワーク環境では、特にＩＳＤＮやフレームリレー方式で実装されるＷＡＮ上では伝送速度が高くないため、オリジナルテーブル上のデータの更新の都度リアルタイムに複製を更新することが現実的でない。このため、キャッシュのあるサーバからの更新情報を定期的に見に行き更新することが行なわれるので、オリジナルテーブルと複製の内容が同期するまで数分を要していた。このため使用範囲が限定されていた。
【０００６】
一方、主メモリとして通常使用されるＲＡＭは、通電が止まると記憶内容を失うが、比較的高速なデータの入出力が可能である。このため、プログラムのロードのための領域や一時記憶領域として使用されている。従来の商品化されたデータベース管理システムにおいては、その開発初期段階において、ＲＡＭは高価なもので、また、不揮発メモリは低速でより高価であったため、データを保管する記憶媒体としては、専ら停電しても記憶内容が失われない磁気ディスク装置が使われてきた。これは、その後継システムにも影響し、未だにデータベースの記憶装置として磁気ディスクを用いた装置が使用されている。
【０００７】
従来のデータベースのバックアップは、バックアップ媒体として低速な記憶装置を想定しており、データベースを停止しないでバックアップを取るとバックアップ中に行なわれた更新とその直前までバックアップされた内容との間で整合性が取れなくなるため、データベースを停止させ、その瞬間のスナップショットをバックアップ媒体に書き込む方法が用いられていた。
【０００８】
さらに、ＳＥＴＩ＠ｈｏｍｅに代表される従来のグリッドコンピューティングは、参加者のネットワークに負担を掛けないプロセス分担型のみしか存在していない（例えば、非特許文献１参照。）。これは、ｘＤＳＬやＦＴＴＨ、ＣＡＴＶ等のブロードバンドインターネットが普及する前のインターネットの環境においては、ＩＳＤＮを使用した最大１２８Ｋｂｐｓの非常時接続型の環境下で、世界中に散在する多数のパーソナルコンピュータをインターネットで接続するためであった。プロセス分担型のグリッドコンピューティングにおいては、参加者はセンターからプロシージャとデータを受け取り、自分のコンピュータで自分の仕事を処理しながら、受け取ったジョブをバックグラウンドで計算処理し、結果をセンターに返すことが行なわれる。頻繁に新しいジョブが入り込み、その結果を返すというような参加者のネットワーク環境に負担となるような処理ではなく、一回のデータやプロシージャ等のネットワークからの入力、何時間単位の計算処理、結果のネットワークへの出力という、参加者のネットワーク環境に負担とならない処理のみが分担されるようになっている。
【０００９】
【特許文献１】
特開２００１−３０６３８０号公報（第２−３頁）
【非特許文献１】
「今こそ知りたいグリッドコンピューティングのすべて」，日経ＩＴプロフェッショナル，株式会社日経ＢＰ，２００２年８月号，ｐ．４０−４２
【発明が解決しようとする課題】
しかしながら、二相コミットやレプリケーションにおいては、あるコンピュータを分散データベースシステムに組み込むには、複雑な設定の手続きが必要である。そのため、データを分散することが容易に行なうことができないという課題がある。
【００１０】
また、近年、例えば企業では社内ＬＡＮが構築され、社員の机上では高性能なパーソナルコンピュータが置かれ、多数の高性能なパーソナルコンピュータが社内ＬＡＮに接続されている。しかし、これらのパーソナルコンピュータでは、ワードプロセッサやスプレッドシート処理プログラム、プレゼンテーション作成ツールなどが昼間だけ稼動している状態であり、ＣＰＵ能力やメモリ容量、ディスク容量には余剰があり、有効に利用されていないという課題がある。
【００１１】
また、このことは、企業内に限られることはなく、例えば、インターネットの常時接続の設備が提供された集合住宅においては、その各戸に設置されたパーソナルコンピュータのＣＰＵ能力やメモリ容量、ディスク容量は有効に利用されていない。
【００１２】
また、データが分散された場合、データベースを停止させることが非常に困難となる。このため、従来のデータベースのバックアップの方法を使用することができないという課題もある。
【００１３】
そこで、本発明は、データの分散が容易になり、ネットワークに接続されたコンピュータのＣＰＵ能力やメモリ容量、ディスク容量を有効に利用することができる分散型データベースシステムを提供することを目的とする。
【００１４】
【課題を解決するための手段】
上記の課題を解決するために、本発明においては、データベースを管理するデータベース管理装置と、データベース管理装置のデータベースを管理するためのトポロジ管理サーバ装置と、トポロジ管理サーバ装置が管理する管理ドメイン内に配置された複数の計算機と、を備える分散型データベースシステムを提供する。この分散型データベースシステムにおいては、トポロジ管理サーバ装置は、データベース管理装置により管理されるデータベースオブジェクトを識別するためのデータベースオブジェクト識別子と、そのデータベースオブジェクトが管理されるデータベース管理装置を識別するためのデータベース管理装置識別子と、を対応付けた情報を含むトポロジ情報を格納する。また、トポロジ管理サーバは、データベースオブジェクトをキャッシュするために計算機から発せられるキャッシュ命令を受信し、キャッシュ命令に含まれるデータベースオブジェクト識別子に基づいてデータベース管理装置識別子を取得し、そのデータベース管理装置識別子で識別されるデータベース管理装置に対して、キャッシュ要求を転送する。
【００１５】
これにより、計算機にデータベースオブジェクトをキャッシュさせることが容易に行なえ、課題が解決される。
【００１６】
また、計算機は、キャッシュしたデータベースオブジェクトを参照しながら計算を行なうためのプログラムを受信するようにしてもよい。
【００１７】
これにより、データを計算機に分散させて、計算を行なうことが可能となり、課題が解決される。
【００１８】
なお、計算機は、自身の計算負荷を検出し、その計算負荷に応じてキャッシュ要求を送信するようにしてもよい。
【００１９】
これにより、例えば、計算負荷が低い場合にデータベースオブジェクトのキャッシュが行なえ、課題が解決される。
【００２０】
また、キャッシュ要求には、キャッシュできるデータベースオブジェクトの量又は／及びデータ種別に関する情報が含まれていてもよい。
【００２１】
これにより、計算機のＣＰＵ能力やメモリ容量、ディスク容量に応じたキャッシュが行なえ、課題が解決される。
【００２２】
また、キャッシュ要求には、キャッシュが行なえる時間帯に関する情報が含まれていてもよい。
【００２３】
これにより、例えば、夜間にキャッシュが行なわれるようにでき、計算機の計算能力の余剰を効率良く利用でき、課題が解決される。
【００２４】
また、キャッシュ要求には、計算機の計算能力に関する情報が含まれていてもよい。
【００２５】
これにより、計算能力に応じたデータの分散が可能となり、課題が解決される。
【００２６】
また、キャッシュ要求には、キャッシュに対する対価に関する情報が含まれていてもよい。
【００２７】
これにより、例えば、計算機の所有者に本発明の分散型データベースシステムに参加させる動機付けを行なうことができる。
【００２８】
また、トポロジ情報は、データベースオブジェクト識別子にデータベースオブジェクトがキャッシュされた計算機の識別子を対応付け、トポロジ管理サーバ装置は、データベースオブジェクトが計算機にキャッシュされることを検出すると、トポロジ情報を更新するようにしてもよい。
【００２９】
これにより、データベースオブジェクトをキャッシュする計算機の追加が容易に行なえる。
【００３０】
また、トポロジ管理サーバ装置は、データベースオブジェクトに対するロックの情報を保持するようにしてもよい。
【００３１】
これにより、データが分散されても、矛盾を生じさせることなくデータの更新が行なえるようになる。
【００３２】
また、トポロジ管理サーバ装置は、他のトポロジ管理サーバ装置とトポロジ情報を交換するようになっていてもよい。
【００３３】
これにより、広範囲でのデータの分散が可能となる。
【００３４】
また、データベース管理装置がデータベースオブジェクトの変更を行なうと、そのデータベースオブジェクトをキャッシュしている計算機に向けて変更を送信するようにしたり、あるいは、計算機がキャッシュしているデータベースオブジェクトの変更を行なうと、データベース管理装置に向けて変更を送信したりするようにしてもよい。
【００３５】
これにより、データの変更を実現することができる。特に、計算機でデータベースオブジェクトを参照しながら計算が行なわれている場合には、データの変更に応じて計算を行なうことができる。
【００３６】
また、データベース管理装置での変更操作をジャーナルとして送信し、それをジャーナル管理サーバ装置で受信し、ジャーナル管理サーバ装置で、ジャーナルをリプレイするようにしてもよい。
【００３７】
これによりデータベースを停止させることなく、バックアップを行なうことができ、課題が解決される。
【００３８】
【発明の実施の形態】
以下、本発明の実施の形態について、図を用いて説明する。なお、本発明は、これら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施し得る。
【００３９】
（発明の概念）
図１は、本発明の概念を示す。分散型データベースシステム１０１、１１３が本発明に係る分散型データベースシステムである。例えば、分散型データベースシステム１０１は、データベース管理装置１０２と、トポロジ管理サーバ装置１０３と、複数の計算機１０４、１０５、…、１０６と、を備え、これらがネットワークシステムなどを構成するためのルータ１０７によって通信可能になっている。
【００４０】
計算機１０４、１０５、…、１０６より、データベース管理装置１０２で管理されているデータベースオブジェクトをキャッシュするための要求であるキャッシュ要求が、トポロジ管理サーバ装置１０３へ送信される。トポロジ管理サーバ装置１０３はキャッシュ要求をデータベース管理装置１０２へ転送し、それに応じて、データベース管理装置１０２はデータベースオブジェクトを、キャッシュ要求を送信した計算機に向けて送信し、計算機がデータベースオブジェクトをキャッシュできるようになっている。
【００４１】
また、図１に例示されるように、分散型データベースシステムが、複数存在してもよい。この場合、複数の分散型データベースシステムは、通信網１１４を介して接続されている。このような場合、分散型データベースシステム１０１のトポロジ管理サーバ装置１０３と、分散型データベースシステム１１３のトポロジ管理サーバ装置１０９と、が互いに通信をして、自分の属する分散型データベース管理システムのデータベース管理装置が格納するデータベースオブジェクトに関する情報を交換する。例えば、トポロジ管理サーバ装置１０３は、データベース管理装置１０２が格納するデータベースオブジェクトに関する情報を、トポロジ管理サーバ装置１０９へ送信する。
【００４２】
これにより、例えば、分散型データベースシステム１１３の計算機１１０がトポロジ管理サーバ装置１０９へ、データベース管理装置１０２が管理するデータベースオブジェクトのキャッシュ要求を、送信することにより、トポロジ管理サーバ装置１０９は、要求されたデータベースオブジェクトが分散型データベースシステム１０１のデータベース管理装置１０２に存在することを検出し、キャッシュ要求をトポロジ管理サーバ装置１０３へ転送する。
【００４３】
なお、トポロジ管理サーバ装置に対して、そのトポロジ管理サーバ装置へキャッシュ要求を送信する計算機が属する分散型データベースシステムを、「管理ドメイン」、あるいは、「トポロジドメイン」という場合がある。
【００４４】
図２は、計算機１０４からキャッシュ要求が送信され、それがトポロジ管理サーバ装置に転送されて、データベース管理装置からデータベースオブジェクトの転送がされる過程を示すシーケンス図を例示する。
【００４５】
ステップＳ２０１において、計算機１０４がキャッシュ要求をトポロジ管理サーバ装置１０３へ送信する。もし、何らかの理由により、データベースオブジェクトのキャッシュが許可できない場合には、キャッシュできない旨の返答が行なわれる（ステップＳ２０２）。
【００４６】
もしキャッシュが可能であり、そのキャッシュの要求が他の管理ドメインのデータベース管理装置に格納されている場合には、キャッシュ要求をルータ１０７へ送信し（ステップＳ２０３）、ルータ、トポロジ管理サーバ装置１０９へ転送される（ステップＳ２０４、Ｓ２０５）。もし、何らかの理由により、データベースオブジェクトのキャッシュが許可できない場合には、キャッシュできない旨の返答が行なわれ、計算機１０４へ送信される（ステップＳ２０６、Ｓ２０７、Ｓ２０８）。
【００４７】
もし、キャッシュが可能であれば、データベース管理装置１０８へキャッシュ要求が転送され（ステップＳ２０９）、データベース管理装置１０８よりキャッシュが送信され（ステップＳ２１０）、計算機１０４へ転送される（ステップＳ２１１、Ｓ２１２、Ｓ２１３）。
【００４８】
また、キャッシュ要求が、同じ管理ドメインのデータベース管理装置１０２に格納されたデータベースオブジェクトに対するものであれば、トポロジ管理サーバ装置１０３は、データベース管理装置１０２へキャッシュ要求を転送する（ステップＳ２１４）。データベース管理装置１０２は、キャッシュを送信し（ステップＳ２１５）、トポロジ管理サーバ装置１０３は、キャッシュを計算機１０４へ転送する（ステップＳ２１６）。
【００４９】
もし、計算機１０４がデータベースオブジェクトのキャッシュを解放する場合には、トポロジ管理サーバ装置１０３へキャッシュ解放要求を送信する（ステップＳ２１７）。もし、キャッシュ解放要求が同じ管理ドメインのデータベース管理装置に格納されているデータベースオブジェクトに関するものであれば、トポロジ管理サーバ装置１０３は、キャッシュ解放完了通知を返す（ステップＳ２１６）。
【００５０】
もし、キャッシュ解放要求が異なる管理ドメインのデータベース管理装置に格納されているデータベースオブジェクトに関するものであれば、トポロジ管理サーバ装置１０３は、異なる管理ドメインのトポロジ管理サーバ装置１０８へキャッシュ解放要求を送信し（ステップＳ２１９、Ｓ２２０、Ｓ２２１）、異なる管理ドメインのトポロジ管理サーバ装置１０８は、キャッシュ解放完了要求を返信する（ステップＳ２２２、Ｓ２２３、Ｓ２２４）。
【００５１】
なお、ステップＳ２１５、Ｓ２１０において、キャッシュの送信は、データベース管理装置から同じ管理ドメインのトポロジ管理サーバ装置へ行なわれているが、キャッシュ要求を送信した計算機へ直接、キャッシュの送信が行なわれるようになっていてもよい。
【００５２】
また、トポロジ管理サーバ装置は、データベースオブジェクトに対するロック操作を管理してもよい。
【００５３】
図３は、計算機１０４が、キャッシュしているデータベースオブジェクトにロックを行なう際の過程に関するシーケンス図を例示する。
【００５４】
ステップＳ３０１において、計算機１０４がトポロジ管理サーバ装置１０３にＳＬＯＣＫ要求を送信したとする。もし、ロックの要求が同じ管理ドメインのデータベース管理装置が格納しているデータベースオブジェクトに対するものであり、ロックができない場合には、ＳＬＯＣＫができない旨の返答がトポロジ管理サーバ装置１０３より行なわれる（ステップＳ３０２）。また、ロックの要求が同じ管理ドメインのデータベース管理装置が格納しているデータベースオブジェクトに対するものであり、ロックが可能であれば、ロックができた旨の返答がされる（ステップＳ３０３）。
【００５５】
もし、ロックの要求が異なる管理ドメインのデータベース管理装置が格納しているデータベースオブジェクトに対するものであれば、トポロジ管理サーバ装置１０３は、異なる管理ドメインのトポロジ管理サーバ装置１０９へ向けてロック要求を送信し（ステップＳ３０４、Ｓ３０５、Ｓ３０６）、もしロックができなければその旨の返答がされる（ステップＳ３０７、Ｓ３０８、Ｓ３０９、Ｓ３１０）。また、もし、ロックが可能であれば、ロックができた旨の返答がされる（ステップＳ３１１、Ｓ３１２、Ｓ３１３、Ｓ３１４）。
【００５６】
このようにトポロジ管理サーバ装置が、管理ドメインのデータベース管理装置に格納されたデータベースオブジェクトのキャッシュやロックなどを管理することにより、新たな計算機を管理ドメインに追加したり、他の管理ドメインのデータベース管理装置が格納するデータベースオブジェクトのキャッシュを行なったりすることが可能となる。また、データの不整合が起きないように、データベースオブジェクトに対してロックを行なうことも可能となる。
【００５７】
（実施形態１）
図４は、本発明の実施形態１における分散型データベースシステムの機能ブロック図を例示する。本実施形態における分散型データベースシステム４００は、データベース管理装置４０２と、トポロジ管理サーバ装置４０１と、複数の計算機４０３、４０４、…、４０５と、を備える。
【００５８】
（実施形態１：分散型データベースシステムの構成）
「データベース管理装置」４０２は、ネットワーク上に配置されたデータベースを管理する。なお、ネットワーク上に配置されたデータベースには、データベース管理装置４０２の中に格納されているデータベースも含まれる。
【００５９】
「トポロジ管理サーバ装置」４０１は、データベース管理装置４０２のデータを分散するための装置であり、以下に説明する部を有する。
【００６０】
「計算機」４０３、４０４、…、４０５は、トポロジ管理サーバ装置４０１が前記ネットワーク上で管理する管理ドメイン内に配置されており、以下に説明する部を有する。なお、「前記ネットワーク」とは、データベース管理装置４０２が管理するデータベースが配置されたネットワークを意味する。
【００６１】
（実施形態１：トポロジ管理サーバ装置）
図５は、トポロジ管理サーバ装置４０１の機能ブロック図を例示する。トポロジ管理サーバ装置４０１は、トポロジ情報格納部５０１と、キャッシュ要求受信部５０２と、データベース管理装置識別子取得部５０３と、キャッシュ要求転送部５０４と、を有する。
【００６２】
（実施形態１：トポロジ管理サーバ装置：トポロジ情報格納部）
「トポロジ情報格納部」５０１は、トポロジ情報を格納する。「トポロジ情報」とは、データベースオブジェクト識別子と、データベース管理装置識別子と、を対応付けた情報を含む情報である。「データベースオブジェクト識別子」とは、データベース管理装置４０２により管理されるデータベースオブジェクトを識別するための情報である。「データベースオブジェクト」には、例えば次のものがある；（１）データベースそのもの、（２）データベースを構成する個々のテーブル、（３）テーブルの列に付けられた索引、（４）テーブルを構成する個々の行、（５）行を構成する個々の列。したがって、データベースオブジェクト識別子は、データベース識別子、テーブル識別子、索引識別子、行識別子、列識別子などである。「データベース管理装置識別子」とは、データベースオブジェクトが管理されるデータベース管理装置を識別するための情報である。例えば、データベース管理装置が、名前で識別される場合には、その名前がデータベース管理装置識別子となり、また、例えば、ＩＰアドレスで識別される場合は、そのＩＰアドレスがデータベース管理装置識別子となる。
【００６３】
トポロジ情報は、データベースオブジェクト識別子と、データベース管理装置識別子と、を対応付けた情報を含む。そこで、トポロジ情報格納部５０１は、例えば、データベースオブジェクト識別子とデータベース管理装置識別子とからなる列を持つ表によりトポロジ情報を格納するようにしてもよい。データベースオブジェクト識別子から、それに対応付けられたデータベース管理装置識別子が得られるように、データベースオブジェクト識別子をキーとし、データベース管理装置識別子をバリューとする索引を用いるようにしてもよい。
【００６４】
（実施形態１：トポロジ管理サーバ装置：キャッシュ要求受信部）
「キャッシュ要求受信部」５０２は、キャッシュ要求を受信する。「キャッシュ要求」とは、データベースオブジェクト識別子で識別されるデータベースオブジェクトをキャッシュするために、計算機の少なくとも一以上から発せられるデータベースオブジェクト識別子を含む情報である。
【００６５】
図６は、キャッシュ要求を模式的に例示する。キャッシュ要求５０６が、データベースオブジェクト識別子６０１を含んでいる状態が示されている。
【００６６】
（実施形態１：トポロジ管理サーバ装置：データベース管理装置識別子取得部）
「データベース管理装置識別子取得部」５０３は、キャッシュ要求受信部５０２で受信されたキャッシュ要求に含まれるデータベースオブジェクト識別子に基づいて、トポロジ情報格納部５０１から、対応するデータベース管理装置識別子を取得する。例えば、データベースオブジェクト識別子をキーとし、データベース管理装置識別子をバリューとする索引がある場合には、その索引を用いて、データベース管理装置識別子を取得する。
【００６７】
（実施形態１：トポロジ管理サーバ装置：キャッシュ要求転送部）
「キャッシュ要求転送部」５０４は、データベース管理装置識別子取得部５０３で取得されたデータベース管理装置識別子で識別されるデータベース管理装置に対して、前記キャッシュ要求を転送する。「前記キャッシュ要求」とは、キャッシュ要求受信部で受信されたキャッシュ要求である。
【００６８】
（実施形態１：トポロジ管理サーバ装置の処理）
図８は、トポロジ管理サーバ装置４０１の処理の流れを説明するフローチャートを例示する。ステップＳ８０１において、キャッシュ要求受信部５０２にて、キャッシュ要求を受信する。ステップＳ８０２において、キャッシュ要求に含まれるデータベースオブジェクト識別子を選別し、データベース管理装置識別子取得部５０３にて、データベース管理装置識別子を取得する。ステップＳ８０４において、データベース管理装置識別子で識別されるデータベース管理装置へ向けて、キャッシュ要求転送部５０４にて、キャッシュ要求を転送する。
【００６９】
（実施形態１：トポロジ管理サーバ装置が計算機とデータベース管理装置との間の通信を中継しても良い）
なお、トポロジ管理サーバ装置は、ネットワークの通信におけるルータあるいはファイアウォールのように計算機とデータベース管理装置との間の通信を中継するものであってもよい。
【００７０】
図９は、トポロジ管理サーバ装置４０１が、計算機４０３、４０４、…、４０５とデータベース管理装置４０２との間の通信を中継する場合の分散型データベースシステム９００の機能ブロック図を例示する。図９に例示される構成が採られる場合には、計算機から送信されたキャッシュ要求に対してデータベース管理装置４０２から送信されるデータベースオブジェクトは、トポロジ管理サーバ装置４０１により中継されて計算機へ送信されることになる。このため、トポロジ管理サーバ装置４０１は、どの計算機がどのデータベースオブジェクトに対するキャッシュ要求を送信したかを管理する必要がある。
【００７１】
図１０は、計算機がどのデータベースオブジェクトに対するキャッシュ要求を送信したかを管理するために用いられる表を例示している。「キャッシュ要求送信元」の列には、キャッシュ要求を送信した計算機を識別する識別子が格納される。図１０では、ＩＰアドレスが識別子として用いられている。「データベースオブジェクト識別子」の列には、計算機が送信したキャッシュ要求に含まれるデータベースオブジェクト識別子が格納される。トポロジ管理サーバ装置４０１が、データベース管理装置４０２より送信されたデータベースオブジェクトを受信すると、表１００１を参照し、データベースオブジェクト識別子からキャッシュ要求送信元の計算機の識別子を得て、その識別子により識別される計算機へデータベースオブジェクトを送信する。
【００７２】
（実施形態１：計算機）
図１１は、計算機の機能ブロック図を例示する。計算機４０３は、キャッシュ要求送信部１１０１と、データベースオブジェクト受信部１１０２と、データベースオブジェクトキャッシュ部１１０３と、を有している。
【００７３】
（実施形態１：計算機：キャッシュ要求受信部）
「キャッシュ要求受信部」１１０１は、キャッシュ要求を送信する。キャッシュ要求を送信するタイミングとしては、例えば、計算機４０３の操作者が指令した時を挙げることができる。この操作者の指令の中に、キャッシュしようとするデータベースオブジェクトを識別するデータベースオブジェクト識別子が含まれていてもよい。あるいは、計算機４０３に対してキャッシュするべきデータベースオブジェクトを識別するデータベースオブジェクト識別子が前もって指定されていてもよい。
【００７４】
（実施形態１：計算機：データベースオブジェクト受信部）
「データベースオブジェクト受信部」１１０２は、キャッシュ要求送信部１１０１でのキャッシュ要求の送信に応じて返信されるデータベースオブジェクトを受信する。
【００７５】
（実施形態１：計算機：データベースオブジェクトキャッシュ部）
「データベースオブジェクトキャッシュ部」１１０３は、データベースオブジェクト受信部１１０２で受信されたデータベースオブジェクトをキャッシュする。このキャッシュは、計算機４０３の有する記憶装置によって行なわれる。例えば、ランダムアクセスメモリなどのメモリにより行なわれたり、あるいは、磁気ディスクなどの二次記憶により行なわれたりする。
【００７６】
（実施形態１：計算機の処理）
図１２は、計算機４０３の処理の流れを説明するフローチャートを例示する。ステップＳ１２０１において、キャッシュ要求送信部１１０１にて、キャッシュ要求を送信する。ステップＳ１１０２において、データベースオブジェクトの受信が可能となるまで待つ。ステップＳ１２０３において、データベースオブジェクト受信部１１０２にて、データベースオブジェクトを受信する。ステップＳ１２０４において、データベースオブジェクトキャッシュ部にて、データベースオブジェクトをキャッシュする。
【００７７】
（実施形態１：データベース管理装置）
図１３は、データベース管理装置４０２の機能ブロック図を例示する。データベース管理装置４０２は、キャッシュ要求受信部１３０１と、データベースオブジェクト複製送信部１３０２と、を有する。
【００７８】
（実施形態１：データベース管理装置：キャッシュ要求受信部）
「キャッシュ要求受信部」１３０１は、トポロジ管理サーバ装置４０１から転送されるキャッシュ要求を受信する。
【００７９】
（実施形態１：データベース管理装置：データベースオブジェクト複製送信部）
「データベースオブジェクト複製送信部」１３０２は、キャッシュ要求受信部で受信されたキャッシュ要求に応じてデータベースオブジェクトを複製して送信する。キャッシュ要求には、データベースオブジェクト識別子が含まれるので、そのデータベースオブジェクト識別子で識別されるデータベースオブジェクトを、データベース１３０３より取得し、複製して送信する。なお、図１３では、データベース１３０３は、データベース管理装置４０２の内部に存在するが、データベース管理装置４０２の外部に存在していてもよい。例えば、データベース管理装置４０２以外のサーバによりデータベースが格納されていてもよい。
【００８０】
（実施形態１：データベース管理装置の処理）
図１４は、キャッシュ要求が受信されてからデータベースオブジェクトが送信されるまでのデータベース管理装置４０２の処理の流れを説明するフローチャートを例示する。ステップＳ１４０１において、キャッシュ要求受信部１３０１により、キャッシュ要求を受信する。ステップＳ１４０２において、キャッシュ要求に含まれるデータベースオブジェクト識別子を得る。ステップＳ１４０３において、データベースオブジェクトを得る。ステップＳ１４０４において、キャッシュ要求の送信元を得る。ステップＳ１４０５において、データベースオブジェクト複製送信部１３０２にて、キャッシュ要求の送信元へ、データベースオブジェクトの複製し送信する。
【００８１】
なお、ステップＳ１４０４において、キャッシュ要求の送信元を得ることが行なわれるが、トポロジ管理サーバ装置４０１がキャッシュ要求の送信元として得られる場合と、キャッシュ要求を送信した計算機がキャッシュ要求の送信元として得られる場合がある。また、キャッシュ要求の送信元を明示的に得ることを行なわなくても、キャッシュ要求の受信に伴い、自動的にキャッシュ要求の送信元が得られる場合もある。例えば、ＴＣＰ／ＩＰにおける通信においては、通信のためのコネクションを確立することにより、双方向の通信路が確立される場合がある。このような場合には、キャッシュ要求の受信により、データベースオブジェクトを送信するための通信路も確立されることになり、明示的なキャッシュ要求の送信元を得ることは不要となる。
【００８２】
（実施形態１：計算機と、トポロジ管理サーバ装置と、データベース管理装置と、の間のデータの流れ）
図７は、計算機４０３よりキャッシュ要求が送信されるとした場合の、計算機４０３と、トポロジ管理サーバ装置４０１と、データベース管理装置４０２と、の間の処理の流れを説明するシーケンス図を例示する。ステップＳ７０１において、計算機４０３よりキャッシュ要求が送信され、トポロジ管理サーバ装置４０１により受信される。ステップ７０２において、トポロジ管理サーバ装置４０１は、受信したキャッシュ要求からデータベースオブジェクト識別子を取得し、そのデータベースオブジェクト識別子からデータベース管理装置識別子取得部５０３によりデータベース管理装置識別子を取得し、そのデータベース管理装置識別子により識別されるデータベース管理装置へキャッシュ要求を転送する。データベース管理装置４０２が転送されたキャッシュ要求を受信すると、キャッシュ要求に含まれるデータベースオブジェクト識別子を取得し、そのデータベースオブジェクト識別子で識別されるデータベースオブジェクトを計算機４０３に向けて送信する（ステップＳ７０３）。なお、データベース管理装置４０２は、データベースオブジェクトを計算機４０３に直接送信するようにしてもよいし、あるいは、トポロジ管理サーバ装置４０１を経由して計算機４０３に送信するようにしてもよい。
【００８３】
（データベース管理装置、トポロジ管理サーバ装置、計算機は、機械的要素を含まないものであってもよい）
なお、データベース管理装置、トポロジ管理サーバ装置、計算機は、コンピュータ装置によって実現される。この場合、データベース管理装置、トポロジ管理サーバ装置、計算機を実現するコンピュータ装置のいずれか一以上あるいは全ては、回転軸などの摺動機械要素を含む磁気ディスク装置を使用しないものであってもよい。このように機械要素が存在しないようにすることにより、コンピュータ装置の信頼性を上げることができ、システム全体の信頼性をも上げることができる。また、磁気ディスクを使用しないことにより、コンピュータ装置で動作するオペレーティングシステムにファイルシステムを持たせる必要がなくなり、リソースの最大有効利用が可能となる。また、コンピュータ装置には蓄電池を装備し停電が発生してもある程度の時間の電源の供給が可能な無停電装置を接続しておいてもよい。これにより、さらに信頼性を上げることができる。
【００８４】
（実施形態１：主な効果）
本実施形態の分散型データベースシステムにより、計算機がキャッシュ要求を送信し返信されるデータベースオブジェクトをキャッシュする機能を持てば、分散型データベースシステムに参加することができ、データの分散が容易に行なえる。また、データベースオブジェクトの複製が計算機によりキャッシュされるので、データベース管理装置に障害が発生しても、計算機のキャッシュを用いて、復旧を行なうことができる。また、データベースオブジェクトを計算機にキャッシュさせることにより、データベースオブジェクトの多重化（物理的に別の場所に存在する複数のコンピュータ装置へのミラーリング）が可能となる。このような多重化により、データベース管理装置を点検や交換などにより停止せざるを得ないじょうきょうにおいて、システム全体のサービスを停止することなく継続することが可能となる。
【００８５】
（実施形態２）
本発明の実施形態２においては、計算機にキャッシュされたデータベースオブジェクトを参照しながら計算が行なわれる分散型データベースシステムが提供される。すなわち、グリッドコンピューティングが実現できる。
【００８６】
（実施形態２：構成）
図１５は、実施形態２における分散型データベースシステムの計算機４０３の機能ブロック図を例示する。本実施形態の計算機は、実施形態１の計算機が更にプログラム受信部１５０１を有したものになっている。
【００８７】
（実施形態２：計算機：プログラム受信部）
「プログラム受信部」１５０１は、データベースオブジェクトキャッシュ部１１０３にキャッシュされたデータベースオブジェクトを参照しながら計算を行なうためのプログラムを受信する。例えば、ｆｔｐなどを用いて、計算機が外部のサーバなどとの通信を開始してプログラムを受信してもよい。また、外部のサーバなどが、計算機４０３へ定期的あるいは不定期的にプログラムを送信し、それを受信するようにしてもよい。なお、外部のサーバなどは、分散型データベースシステムの内部にあってもよいし、外部にあってもよい。また、プログラムが光ディスクなどの媒体に記録され、その媒体を読み取ることにより、プログラムが受信されてもよい。
【００８８】
プログラムは、データベースオブジェクトキャッシュ部１１０３にキャッシュされたデータベースオブジェクトを参照しながら計算を行なうものであれば、何であってもよい。例えば、有限要素法の各要素がデータベースオブジェクトにより表現され、そのようなデータベースオブジェクトにより、有限要素法の計算を行なうものであってもよい。また、計算の結果をデータベースオブジェクトに書き込むことにより、他の計算機で動作するプログラムに、計算の結果を伝えるようになっていてもよい。このようなプログラムにより行なわれる計算の例としては、例えば、海洋での汚染物質の拡散の様子を計算するもの、気象予報を行なうもの、などを挙げることができる。
【００８９】
（実施形態２：主な効果）
本実施形態の分散型データベースシステムにより、データベースオブジェクトを参照しながら行なわれる計算を分散して行なうことができる。特に、データベースオブジェクトを更新しながら計算を行なうことにより、動的に変化する状況に応じた計算を行なうことができる。
【００９０】
（実施形態３）
本発明の実施形態３においては、負荷に基づいてキャッシュ要求を送信する計算機を備える分散型データベースシステムが提供される。
【００９１】
（実施形態３：構成）
図１６は、本実施形態における分散型データベースシステムの計算機の機能ブロック図を例示する。本実施形態における計算機４０３は、実施形態１または２の計算機が、計算負荷検出部１６０１を更に有している構成になっている。
【００９２】
（実施形態３：計算機：計算負荷検出部）
「計算負荷検出部」１６０１は、自身の計算負荷を検出する。ここに「自身」とは、計算機４０３を意味する。また、「計算負荷」とは、計算機４０３のＣＰＵ占有率、メモリ占有率、磁気ディスクのデータの占有率、通信の状況（例えば、破棄されたパケットの数、一定時間あたりに送信あるいは受信されたパケットの数）、などである。
【００９３】
（実施形態３：計算機：キャッシュ要求送信部）
本実施形態において、キャッシュ要求送信部１１０１は、計算負荷検出部１６０１で検出された計算負荷に基づいてキャッシュ要求を送信する。例えば、メモリ占有率が所定の値以下であれば、キャッシュ要求送信部１１０１は、キャッシュ要求を送信する。あるいは、ＣＰＵ占有率が所定の値以下であれば、キャッシュ要求を送信する。
【００９４】
また、計算負荷検出部１６０１で検出された計算負荷に応じてキャッシュ要求の内容が変更されてもよい。例えば、メモリ占有率が低ければ、サイズの大きなデータベースオブジェクトを識別するデータベースオブジェクト識別子を含むキャッシュ要求が送信されるようになっていてもよい。
【００９５】
（実施形態３：主な効果）
本実施形態によれば、計算負荷に基づいてキャッシュ要求が送信されるので、例えば、計算負荷の高い場合には、キャッシュ要求が送信されないので、計算機の計算負荷を異常に高めることを避けることができる。
【００９６】
（実施形態４）
本実施形態においては、起動時にキャッシュ要求が送信される計算機を備える分散型データベース管理システムが提供される。
【００９７】
（実施形態４：計算機：キャッシュ送信部）
本実施形態における計算機のキャッシュ要求送信部は、実施形態１または２の分散型データベースシステムが備える計算機が起動すると、キャッシュ要求を送信することを特徴としたものである。ここに、「計算機」とは、キャッシュ要求送信部を有する計算機であってもよいし、他の計算機であってもよい。例えば、計算機が起動し、ブートする過程において、キャッシュ要求送信部が活性化されて、キャッシュ要求が送信されるようになっていてもよい。また、他の計算機が起動すると、その情報が受信されてキャッシュ要求送信部が活性化されてキャッシュ要求が送信されるようになっていてもよい。
【００９８】
（実施形態４：主な効果）
本実施形態により、計算機が起動するとキャッシュ要求が送信されるので、キャッシュ要求を送信する操作を別に行なう必要がない。これにより、多数の計算機がキャッシュ要求を送信できるようになり、データの分散を図ることができる。
【００９９】
（実施形態５）
本実施形態においては、キャッシュ要求に計算機がキャッシュすることができるデータベースオブジェクトの量又は／及びデータ種別に関する情報が含まれる分散型データベースシステムが提供される。
【０１００】
（実施形態５：キャッシュ要求）
本実施形態は、実施形態１ないし４のいずれかの分散型データベースシステムにおいて、キャッシュ要求には、データベースオブジェクトキャッシュ部がキャッシュすることができるデータベースオブジェクトの量又は／及びデータ種別に関する情報が含まれることを特徴とする。
【０１０１】
図１７（ａ）は、キャッシュ要求に、データベースオブジェクトキャッシュ部がキャッシュすることができるデータベースオブジェクトの量に関する情報１７０１が含まれていることを模式的に示す図である。例えば、どの程度のバイト数までのデータベースオブジェクトをキャッシュすることができるかの情報がキャッシュ要求に含まれている。
【０１０２】
図１７（ｂ）は、キャッシュ要求に、データベースオブジェクトキャッシュ部がキャッシュすることができるデータ種別に関する情報１７０２が含まれていることを模式的に示す図である。データ種別としては、例えば、データベース、テーブル、索引、行、列などがある。
【０１０３】
本実施形態において、データベースオブジェクト識別子とデータベースオブジェクトの量とがキャッシュ要求に含まれるとき、そのキャッシュ要求は、例えば、データベースオブジェクト識別子がデータベースを識別するものである場合には、データベースがデータベースオブジェクトの量と等しいかあるいはそれより小さい場合にキャッシュすることを要求する条件付きのキャッシュ要求と解釈してもよい。また、データベースの中のテーブルのうち、データベースオブジェクトの量と等しいかあるいはそれより小さいものを要求するキャッシュ要求と解釈してもよい。データベースの中のテーブルのうち、データベースオブジェクトの量と等しいかあるいはそれより小さいものの選択をデータベース管理装置に行なわせることにより、特定のテーブルだけがキャッシュされることを防止することができる。
【０１０４】
同様に、データベースオブジェクト識別子とデータ種別とがキャッシュ要求に含まれる場合には、そのキャッシュ要求は、例えば、データベースオブジェクト識別子がデータベースを識別し、データ種別がテーブルを指定するものであるときには、データベースオブジェクト識別子により識別されるデータベースに含まれるテーブルを要求するキャッシュ要求と解釈してもよい。
【０１０５】
（実施形態５：キャッシュ要求は、計算負荷に応じて送信されてもよい）
本実施形態において、キャッシュ要求は、例えば、計算負荷に応じて変更がされたり、あるいは、計算機の起動時に送信されたりするようになっていてもよい。例えば、メモリ占有率が低ければ、大きなサイズのデータベースオブジェクトをキャッシュするためのキャッシュ要求が送信されるようになっていてもよい。
【０１０６】
（実施形態５：計算により参照されるデータベースオブジェクトに基づいてキャッシュ要求が送信されてもよい）
また、データベースオブジェクトを参照して計算を行なうプログラムが計算機で動作される場合には、そのプログラムの参照するデータベースオブジェクトに応じてキャッシュ要求が送信されてもよい。例えば、同じテーブルの行が多数参照される場合には、それらの行を含むテーブルを識別するデータベースオブジェクト識別子を含むキャッシュ要求が送信されるようになっていてもよい。また、多数のテーブルの行が参照される計算が行なわれる場合には、それらのテーブルを含むデータベースを識別するデータベースオブジェクト識別子を含むキャッシュ要求が送信されるようになっていてもよい。
【０１０７】
（実施形態５：キャッシュ要求には、データベースオブジェクトの量に関する情報とデータ種別との両方が含まれていてもよい）
なお、キャッシュ要求には、データベースオブジェクトの量に関する情報とデータ種別との両方が同時に含まれていてもよい。これにより、特定の種別のデータベースオブジェクトのうち、特定のサイズまでのもののキャッシュを要求することができる。
【０１０８】
（実施形態５：主な効果）
本実施形態により、計算機がキャッシュすることになるデータベースオブジェクトが過大なものになることを防止することができる。また、計算により参照されるデータベースオブジェクトを効率良く参照するためのキャッシュを行なうことができる。また、計算機にキャッシュされるデータベースオブジェクトが偏らないようにすることができる。
【０１０９】
（実施形態６）
本実施形態においては、キャッシュ要求に、キャッシュが行なえる時間帯に関する情報が含まれる分散型データベースシステムが提供される。
【０１１０】
（実施形態６：キャッシュ要求）
本実施形態は、実施形態１ないし４のいずれかの分散型データベースシステムにおいて、キャッシュ要求には、データベースオブジェクトキャッシュ部がデータベースオブジェクトをキャッシュできる時間帯に関する情報が含まれる。
【０１１１】
図１８は、キャッシュ要求にデータベースオブジェクトキャッシュ部がデータベースオブジェクトをキャッシュできる時間帯に関する情報１８０１が含まれていることを模式的に示す図である。
【０１１２】
時間帯に関する情報１８０１は、例えば、データベースオブジェクトキャッシュ部がデータベースオブジェクトをキャッシュできる時間帯がいつであるかを示すものであってもよい。また、データベースオブジェクトキャッシュ部がデータベースオブジェクトをキャッシュできない時間帯がいつであるかを示すものであってもよい。
【０１１３】
このような時間帯に関する情報は、計算機の稼動予定に基づいて生成されたり、あるいは、過去の計算機の稼動状況に基づいて生成されたりしてもよい。例えば、昼間に計算機が稼動しない日が過去に多ければ、昼間はキャッシュすることができないという時間帯に関する情報が生成されるようになっていてもよい。
【０１１４】
また、過去の計算機の計算負荷から時間帯に関する情報が生成されてもよい。例えば、夕方は、ＣＰＵ占有率が高かったり、通信パケット数が多い場合には、夕方にはキャッシュすることができないという時間帯に関する情報が生成されるようになっていてもよい。
【０１１５】
また、データベースオブジェクトを参照しながら計算を行なうプログラムがいつ動作するかに基づいて、キャッシュできる時間帯に関する情報が生成されるようになっていてもよい。
【０１１６】
（実施形態６：主な効果）
本実施形態により、データベースオブジェクトキャッシュ部がキャッシュできる時間帯に、データベース管理装置が計算機に対してデータベースオブジェクトを送信することができ、キャッシュを有効に行なうことができる。
【０１１７】
（実施形態７）
本実施形態においては、キャッシュ要求に、計算機の有する情報が含まれる分散型データベースシステムが提供される。
【０１１８】
（実施形態７：キャッシュ要求）
本実施形態は、実施形態１ないし４のいずれかの分散型データベースシステムにおいて、キャッシュ要求には、計算機の有する計算能力に関する情報が含まれることを特徴とする。
【０１１９】
図１９は、キャッシュ要求に計算能力に関する情報１９０１が含まれていることを模式的に示す図である。
【０１２０】
「計算機の有する計算能力に関する情報」とは、例えば、計算機が備えるメモリ量、磁気ディスクの容量、ＣＰＵの型番や動作周波数など、計算の処理能力を示す情報である。
【０１２１】
（実施形態７：主な効果）
本実施形態によれば、計算能力に応じて、データベースオブジェクトのキャッシュを計算機にさせることができ、データの分散を有効に行なうことができる。
【０１２２】
（実施形態８）
本実施形態においては、キャッシュ要求にデータベースオブジェクトをキャッシュすることに対する対価に関する情報が含まれる分散型データベースシステムが提供される。
【０１２３】
（実施形態８：キャッシュ要求）
本実施形態は、実施形態１ないし４のいずれかの分散型データベースシステムにおいて、キャッシュ要求には、計算機がデータベースオブジェクトをキャッシュすることに対する対価に関する情報が含まれる。
【０１２４】
図２０は、キャッシュ要求に、対価に関する情報２００１が含まれていることを模式的に示す図である。
【０１２５】
「対価に関する情報」としては、例えば、一つのデータベースオブジェクトあたり、いくらの対価を計算機の管理者（所有者、占有者などを含む。）に支払うべきかを示す情報を挙げることができる。また、データベースオブジェクトのバイト数に応じていくらの対価を計算機の管理者に支払うべきかを示す情報を挙げることができる。
【０１２６】
また、逆に、計算機の管理者がデータベース管理装置の管理者にいくらの対価を支払うべきかを示す情報であってもよい。この場合は、例えば、計算機で、データベースオブジェクトを参照して計算が行なわれる場合に、そのデータベースオブジェクトを参照することに対する対価となる。この場合、キャッシュ要求に含まれる対価に関する情報は、計算機の管理者が支払ってもよい対価の上限を示すと解釈されてもよい。
【０１２７】
（実施形態８：主な効果）
本実施形態によれば、例えば、データベース管理装置の管理者がデータベースオブジェクトを計算機にキャッシュさせてデータベースのバックアップを行なう場合において、最も費用が低くなるように計算機にキャッシュをさせることができる。また、データベースオブジェクトを参照して計算を行なう場合に、データベースオブジェクトの参照に伴って対価を支払う場合には、支払うべき対価が高くなることを防止することができる。
【０１２８】
（実施形態９）
本実施形態においては、データベースオブジェクトをキャッシュしている計算機を管理することができる分散型データベースシステムが提供される。
【０１２９】
（実施形態９：構成）
本実施形態の分散型データベースシステムは、実施形態１の分散型データベースシステムにおいて、トポロジ情報が、さらにデータベースオブジェクト識別子に、データベースオブジェクトがキャッシュされた計算機の識別子を対応付けたものである。
【０１３０】
また、本実施形態において、トポロジ管理サーバは、キャッシュ済情報受信部と、トポロジ情報キャッシュ更新部とを有する。
【０１３１】
（実施形態９：トポロジ情報）
図２１は、本実施形態におけるトポロジ情報を模式的に例示する図である。トポロジ情報５０５に、データベースオブジェクト識別子２１０１にデータベース管理装置識別子２１０２とが対応付けられるとともに、計算機の識別子２１０３、２１０４が対応づけられている。この計算機の識別子２１０３、２１０４は、データベースオブジェクト識別子で識別されるデータベースオブジェクトをキャッシュしている計算機を識別する識別子である。その識別子としては、例えば、計算機のＩＰアドレスを用いることができる。
【０１３２】
図２２は、図２１に模式的に例示されたトポロジ情報を表現する表を例示する。表２２０１は、データベースオブジェクト識別子とデータベース管理装置識別子とを対応付ける表である。また、表２２０２は、データベースオブジェクト識別子と計算機の識別子とを対応付ける表である。このように二つの表を用いることにより、一つのデータベースオブジェクトが複数の計算機によりキャッシュされる場合には、表２２０２に複数のデータベースオブジェクト識別子と計算機の識別子とが格納され、表２２０１において、データベース管理装置識別子が冗長に格納されることを避けることができる。
【０１３３】
（実施形態９：トポロジ管理サーバ装置）
図２４は、本実施形態におけるトポロジ管理サーバ装置の機能ブロック図を例示している。本実施形態におけるトポロジ管理サーバ装置は、実施形態１の分散型データベースシステムのトポロジ管理サーバ装置が、キャッシュ済情報受信部２４０１と、トポロジ情報キャッシュ更新部２４０２と、をさらに有している構成となっている。
【０１３４】
（実施形態９：トポロジ管理サーバ装置：キャッシュ済情報受信部）
「キャッシュ済情報受信部」２４０１は、キャッシュ済情報を受信する。「キャッシュ済情報」は、データベースオブジェクトが計算機にキャッシュされたことを示す情報である。このキャッシュ済情報は、例えば、計算機にキャッシュ済情報送信部があり、計算機がデータベースオブジェクトをキャッシュすると、キャッシュ済情報送信部が、キャッシュ済情報を送信するようになっていてもよい。あるいは、データベース管理装置がキャッシュ済情報送信部を有しており、データベースオブジェクトを計算機に向けて送信することが終了した時点で、キャッシュ済情報を送信するようになっていてもよい。あるいは、データベースオブジェクトがトポロジ管理サーバ装置を経由して計算機に送信される場合には、トポロジ管理サーバ装置が計算機へデータベースオブジェクトを送信した後で、トポロジ管理サーバ装置内部でキャッシュ済情報が発生され、キャッシュ済情報受信部２４０１で受信されるようになっていてもよい。
【０１３５】
キャッシュ済情報には、データベースオブジェクトをキャッシュした計算機を識別するための識別子が少なくとも含まれる。また、更に、キャッシュしたデータベースオブジェクトのデータベースオブジェクト識別子が、キャッシュ済情報に、含まれていてもよい。
【０１３６】
（実施形態９：トポロジ管理サーバ装置：トポロジ情報キャッシュ更新部）
「トポロジ情報キャッシュ更新部」２４０２は、キャッシュ済情報受信部２４０１で受信されたキャッシュ済情報に基づいて、トポロジ情報格納部に格納されたトポロジ情報のキャッシュ済情報を最新の状態に更新する。
【０１３７】
例えば、キャッシュ済情報に、計算機の識別子とデータベースオブジェクト識別子とが含まれている場合には、データベースオブジェクト識別子と計算機の識別子とを取り出し、表２２０２に行を追加する。
【０１３８】
また、分散型データベースシステムが、図９に例示されるように、計算機とデータベース管理装置との通信がトポロジ管理サーバ装置を介して行なわれるように構成されている場合において、キャッシュ済情報に計算機の識別子しか含まれていないときには、例えば、図１０の表１００１を参照して、データベースオブジェクト識別子を取り出し、表２２０２に行を追加するようにしてもよい。
【０１３９】
（実施形態９：データの流れ）
図２５は、計算機がキャッシュ済情報送信部を有している場合のデータの流れを例示するシーケンス図である。
【０１４０】
ステップＳ２５０１において、計算機４０３より、トポロジ管理サーバ装置４０１にキャッシュ要求が送信される。ステップＳ２５０２において、トポロジ管理サーバ装置４０１により、キャッシュ要求が、データベース管理装置４０２へ転送される。ステップＳ２５０３において、データベース管理装置４０２から計算機４０３へ向けてデータベースオブジェクトが送信される。ステップＳ２５０４において、計算機４０３がデータベースオブジェクトをキャッシュすると、キャッシュ済情報がトポロジ管理サーバ装置４０１へ送信される。
【０１４１】
（実施形態９：主な効果）
本実施形態により、データベースオブジェクトをキャッシュしている計算機をトポロジ管理サーバ装置により管理することができる。これにより、例えば、データベース管理装置に障害が発生しても、データベースオブジェクトをキャッシュしている計算機を求めて、その計算機からキャッシュしているデータベースオブジェクトを取得して、障害からの復旧を行なうことができる。また、データベースオブジェクトのキャッシュに伴い、対価の支払が発生する場合に、その対価の支払についての情報をトポロジ管理サーバ装置で管理することができる。
【０１４２】
（実施形態１０）
本実施形態においては、データベースオブジェクトに関するロック情報を管理するトポロジ管理サーバ装置を備える分散型データベースシステムが提供される。
【０１４３】
（実施形態１０：構成）
本実施形態においては、実施形態９に記載の分散型データベースシステムにおいて、トポロジ情報が、さらにデータベースオブジェクト識別子に、ロック情報を対応付けることとする。また、トポロジ管理サーバ装置は、ロック操作情報受信部と、トポロジ情報ロック更新部と、をさらに有する。
【０１４４】
（実施形態１０：ロック情報）
「ロック情報」とは、データベースオブジェクトに操作されたロックに関する情報である。「ロック」とは、データベースに対する操作を一定の範囲で禁止することを意味する。例えば、データベースオブジェクトに対して読み取りの操作を行なう場合には、その読み取りの操作の間に、データベースオブジェクトの内容が変更されないように、共有ロック（ＳＬＯＣＫ）をかけることを行なう。また、データベースオブジェクトの内容が変更される場合、その内容の変更が確定するまで（すなわち、コミットされるまで）、他の者によりデータベースオブジェクトの内容が読み取られたり、内容の変更が行なわれたりしないように排他ロック（ＸＬＯＣＫ）をかけることを行なう。
【０１４５】
また、ロック情報には、以上説明したように、ロックの内容に限定されず、更に、ロック操作を行なった者が誰であるかを示す情報が含まれていてもよい。また、楽観的ロックを実現するために、ロックの操作が行なわれた時刻に関する情報も含まれていてもよい。
【０１４６】
また、ロック情報は、データベースオブジェクトに対してロックを行なったことを示す情報を含む場合に加えて、データベースオブジェクトに対して行なったロックを解除することを示す情報を含む場合があってもよい。
【０１４７】
本実施形態において、トポロジ情報にロック情報が含まれるために、トポロジ情報格納部は、トポロジ情報を、図２２の表２２０１、２２０２に加えて、図２３に例示される表２３０１を用いて管理するようにしてもよい。表２３０１は、データベースオブジェクト識別子とロック情報を対応付けている表である。
【０１４８】
（実施形態１０：トポロジ管理サーバ装置）
図２６は、本実施形態における分散型データベースシステムのトポロジ管理サーバ装置の機能ブロック図を例示している。トポロジ管理サーバ装置４０１は、実施形態９における分散型データベースシステムのトポロジ管理サーバ装置が、さらにロック操作情報受信部２６０１と、トポロジ情報ロック更新部２６０２と、を有している。
【０１４９】
（実施形態１０：トポロジ管理サーバ装置：ロック操作情報受信部）
「ロック操作情報受信部」２６０１は、ロック情報を受信する。ロック情報は、例えば、データベース管理装置から送信されてもよい。また、計算機がキャッシュしているデータベースオブジェクトを参照したり変更したりする場合に、計算機がロック情報を送信してもよい。
【０１５０】
（実施形態１０：トポロジ管理サーバ装置：トポロジ情報ロック更新部）
「トポロジ情報ロック更新部」２６０２は、ロック操作情報受信部２６０１で受信されたロック情報に基づいてトポロジ情報格納部５０１に格納されたトポロジ情報のロック情報を最新の状態に更新する。
【０１５１】
例えば、データベースオブジェクトに対してロックが行なわれる場合には、表２３０１に行を追加する。なお、この際、既にデータベースオブジェクトに対してロックが行なわれているかどうかをチェックし、もしロックが既に行なわれている場合に、新たに行なわれるロックと矛盾しないかどうかをチェックしてもよい。例えば、あるデータベースオブジェクトに対して、ＸＬＯＣＫが行なわれているときに、そのＸＬＯＣＫを行なった者以外の者がそのデータベースオブジェクトにＳＬＯＣＫを行なうと、ロックが矛盾するので、この場合は、トポロジ情報のロック情報を更新せず、エラーを返す。
【０１５２】
また、データベースオブジェクトのロックを解除する場合には、解除されるロックに対応する表２３０１の対応する行を削除する。
【０１５３】
（実施形態１０：主な効果）
本実施形態によれば、ロックがトポロジ管理サーバ装置により管理されるので、データベースオブジェクトの更新を矛盾無く行なうことが可能となる。
【０１５４】
（実施形態１１）
本発明の実施形態１１においては、複数のトポロジ管理サーバ装置がトポロジ情報を交換する分散型データベースシステムが提供される。
【０１５５】
図２７は、本実施形態の概要を例示する。本実施形態の分散型データベースシステムは、実施形態９または１０の分散型データベースシステムにおいて、トポロジ管理サーバ装置が複数ある。その複数のトポロジ管理サーバ装置は互いに通信が可能であって、トポロジ情報を交換しあう。このようなトポロジ情報の交換は、隣接するルータによる経路情報の交換に対応するものである。
【０１５６】
（実施形態１１：構成）
図２８は、本実施形態における分散型データベースシステムのトポロジ管理サーバ装置の機能ブロック図を例示する。本実施形態のトポロジ管理サーバ装置は、実施形態９または１０のトポロジ管理サーバ装置がトポロジ情報交換部２９０１を有するものになっている。
【０１５７】
（実施形態１１：トポロジ管理サーバ装置：トポロジ情報交換部）
「トポロジ情報交換部」２８０１は、他トポロジ管理サーバ装置とトポロジ情報を交換する。「他トポロジ管理サーバ装置」とは、ネットワークにより通信が可能な他の管理ドメインを管理する他のトポロジ管理サーバ装置を意味する。
【０１５８】
トポロジ情報交換部２８０１は、定期的、あるいは、不定期的にトポロジ情報格納部５０１に格納されているトポロジ情報を送信する。また、他トポロジ管理サーバ装置から、定期的、あるいは、不定期的に送信されるトポロジ情報を受信する。また、自身の存在を他トポロジ管理サーバ装置に知らせるために、トポロジ情報交換部は、自身のＩＰアドレスなどの識別子を含む情報をブロードキャストするようにしてもよい。ブロードキャストする情報には、例えば、トポロジ情報を送信する時間間隔や、格納しているトポロジ情報の量、などが含まれていてもよい。
【０１５９】
トポロジ情報交換部２８０１が他トポロジ管理サーバ装置よいトポロジ情報を受信した場合には、そのトポロジ情報をトポロジ情報格納部５０１に格納する。その際、トポロジ情報に、どの管理ドメインのトポロジ情報であるかを付加して格納してもよい。
【０１６０】
（実施形態１１：主な効果）
本実施形態により、管理ドメインが複数ある場合に、計算機が属する管理ドメイン以外の管理ドメインのデータベース管理装置により管理されるデータベースオブジェクトをキャッシュすることが可能となる。これにより、広範囲のデータの分散が可能となる。
【０１６１】
（実施形態１２、１３）
本発明の実施形態１２と１３は、実施形態２における分散型データベースシステムにおいて、データベースオブジェクトの更新の機能を明確にしたものに関する。実施形態１２は、データベース管理装置が、自身の管理するデータベースオブジェクトの更新を開始できるようにする形態であり、実施形態１３は、計算機がキャッシュしているデータベースオブジェクトの更新を開始することができる形態である。実施形態１３においては、計算機がキャッシュしているデータベースオブジェクトの更新は、例えば、プログラム受信部で受信されたプログラムの実行に伴って開始される。これにより、プログラムがデータベースオブジェクトの更新を行なうことができるようにしている。
【０１６２】
（実施形態１２）
図２９は、実施形態１２におけるデータの流れを説明するシーケンス図を例示する。データベース管理装置４０２でデータベースオブジェクトに対して更新操作が行なわれると、ステップＳ２９０１において、計算機によりキャッシュされているデータベースオブジェクトを更新操作の命令である更新操作命令が送信され、トポロジ管理サーバ装置４０１で受信される。ステップＳ２９０２において、トポロジ管理サーバ装置４０１は計算機に向けて、更新操作命令を計算機に向けて送信する。なお、トポロジ管理サーバ措置が格納するトポロジ情報がデータベースオブジェクト識別子にデータベースオブジェクトがキャッシュされた計算機の識別子を対応付けている場合には、更新されたデータベースオブジェクトをキャッシュしている計算機の識別子を求め、識別子が求められた計算機に対して更新操作命令が送信されるようになっていてもよい。
【０１６３】
なお、「更新操作」には、データベースオブジェクトの変更、削除が含まれる。また、データベースオブジェクトがデータベースであれば、データベースへのテーブルや索引の追加も含まれる。また、データベースオブジェクトがテーブルであれば、行の追加、列の追加を含み、また、列の名前の変更なども含まれる。
【０１６４】
（実施形態１２：データベース管理装置）
図３０は、データベース管理装置の機能ブロック図を例示する。本実施形態のデータベース管理装置は、実施形態２、実施形態９または実施形態１１のデータベース管理装置が、更新操作命令送信部３００１を有している。
【０１６５】
（実施形態１２：データベース管理装置：更新操作命令送信部）
「更新操作命令送信部」３００１は、データベースオブジェクトをキャッシュしている計算機であるクライアント装置に向けて、キャッシュされているデータベースオブジェクトの更新操作の命令である更新操作命令を送信する。例えば、全ての計算機に対してブロードキャストにより送信してもよい。もし、データベース管理装置が、データベースオブジェクトをキャッシュしている計算機を管理していれば、更新操作命令送信部から直接計算機へ更新操作命令が送信されてよい。
【０１６６】
（実施形態１２：実施形態９に基づく場合）
あるいは、本実施形態の分散型データベースシステムが実施形態９に基づく場合には、トポロジ管理サーバ装置が管理するトポロジ情報にどの計算機がどのデータベースオブジェクトをキャッシュしているかを保持している。そこで、更新操作命令送信部３００１は、更新操作命令をトポロジ管理サーバ装置へ送信してもよい。更新操作命令を受信したトポロジ管理サーバ装置は、トポロジ情報に基づいて、更新されたデータベースオブジェクトをキャッシュしている計算機を求め、その計算機へ更新操作命令を送信する。
【０１６７】
（実施形態１２：実施形態１１に基づく場合）
また、本実施形態の分散型データベースシステムが実施形態１１に基づく場合には、複数のトポロジ管理サーバ装置がトポロジ情報を交換している。したがって、他のドメインの計算機がデータベースオブジェクトをキャッシュしている場合であっても、他のドメインの計算機へ向けて更新操作命令を送信することができる。
【０１６８】
（実施形態１２：計算機）
図３１は、計算機の機能ブロック図を例示する。本実施形態の計算機は、実施形態２、実施形態９または実施形態１１の計算機が、更新操作命令受信部３１０１と、データベースオブジェクト更新操作部３１０２を有している。
【０１６９】
（実施形態１２：更新操作命令受信部）
「更新操作命令受信部」３１０１は、更新操作命令を受信する。
【０１７０】
（実施形態１２：データベースオブジェクト更新操作部）
「データベースオブジェクト更新操作部」３１０２は、更新操作命令受信部３１０１で受信された更新操作命令に基づいて、データベースオブジェクトキャッシュ部１１０３にキャッシュされたデータベースオブジェクトを更新する。
【０１７１】
例えば、更新操作命令が、データベースオブジェクトの削除を命令するものであれば、キャッシュしているデータベースオブジェクトの削除を行なう。
【０１７２】
また、更新操作命令に基づいて、データベースオブジェクトを更新する際には、更新操作命令の対象となるデータベースオブジェクトがデータベースオブジェクトキャッシュ部１１０３にキャッシュされているかどうかを調べ、キャッシュされている場合に限り、更新操作を行なうようにしてもよい。
【０１７３】
（実施形態１２：主な効果）
本実施形態により、データベース管理装置でのデータベースオブジェクトに対する更新操作が、計算機にキャッシュされているデータベースオブジェクトに対して反映される。これにより、計算機で動作するプログラムは、最新の状態のデータベースオブジェクトを参照して計算を行なうことができる。
【０１７４】
また、本実施形態が実施形態１１に基づく場合には、他ドメインの計算機に向けて更新操作命令を送信することができ、二相コミットにおける整合性確認や排他制御確認などを必要とせず遅延が発生しないようにすることができる。
【０１７５】
（実施形態１３）
図３２は、本実施形態における分散型データベースシステムにおけるデータの流れを説明するシーケンス図を例示する。
【０１７６】
計算機４０３で、キャッシュされているデータベースオブジェクトに対して更新が行なわれようとすると、ステップＳ３２０１において、更新操作情報がトポロジ管理サーバ装置４０１へ送信される。トポロジ管理サーバ装置４０１は、トポロジ情報を参照して、更新がされようとしているデータベースオブジェクトを管理しているデータベース管理装置を求め、そのデータベース管理装置へ更新操作情報を転送する（ステップＳ３２０２）。データベース管理装置４０２で、更新操作情報に基づいて、データベースオブジェクトが更新されると、実施形態１２におけるように、データベースオブジェクトの更新操作命令が、トポロジ管理サーバ装置４０１へ送信され（ステップＳ３２０３）、計算機４０３へ転送され（ステップＳ３２０４）、計算機４０３で、データベースオブジェクトの更新が行なわれる。
【０１７７】
（実施形態１３：更新操作が可能であるかどうかがデータベース管理装置４０２で判断されてもよい）
なお、データベース管理装置４０２が更新操作情報を受信した際には、整合性のチェックや排他制御のチェックを行ない、整合性がとれなかったり排他制御に矛盾が生じたりする場合には、更新をしなようにしてもよい。このようにデータベース管理装置４０２が更新をしない場合には、エラーを示す情報が更新操作情報を送信した計算機４０３へ送信されてもよい。
【０１７８】
（実施形態１３：データベース管理装置）
図３３は、本実施形態におけるデータベース管理装置の機能ブロック図を例示する。本実施形態におけるデータベース管理装置は、実施形態２、実施形態９または実施形態１１のデータベース管理装置が、更新操作情報受信部３３０１と、更新操作部３３０２と、更新操作命令送信部３３０３と、をさらに有している構成になっている。
【０１７９】
（実施形態１３：データベース管理装置：更新操作情報受信部）
「更新操作情報受信部」３３０１は、更新操作情報を受信する。「更新操作情報」とは、データベースオブジェクトに対する更新操作に関する情報である。例えば、どのデータベースオブジェクトに対して、どのような更新の操作が行なわれようとしているか、あるいは、どのような更新の操作が行なわれるべきか、を表わす情報である。
【０１８０】
（実施形態１３：データベース管理装置：更新操作部）
「更新操作部」３３０２は、更新操作情報受信部３３０１で受信された更新操作情報に基づいて自らが保持するデータベースオブジェクトに対して更新操作を行なう。「自らが保持するデータベースオブジェクト」とは、データベース管理装置４０２が保持するデータベースのデータベースオブジェクトである。
【０１８１】
（実施形態１３：データベース管理装置：更新操作命令送信部）
「更新操作命令送信部」３３０３は、更新操作情報に基づいて、データベースオブジェクトをキャッシュしている計算機であるクライアント装置に向けて、キャッシュされているデータベースオブジェクトの更新操作の命令である更新操作命令を送信する。例えば、ブロードキャストによって更新操作命令を送信してもよい。もし、データベース管理装置が、データベースオブジェクトをキャッシュしている計算機を管理していれば、更新操作命令送信部から直接計算機へ更新操作命令が送信されてよい。
【０１８２】
（実施形態１３：更新操作命令は、トポロジ管理サーバ装置を経由して計算機へ送られてもよい（実施形態９または１１に基づく場合））
更新操作命令は、上で説明したようにデータベース管理装置から計算機へ直接送信されてもよい。あるいは、トポロジ管理サーバ装置へ送信されてもよい。トポロジ管理サーバ装置が管理されているトポロジ情報にデータベースオブジェクト識別子にそのデータベースオブジェクトがキャッシュされた計算機の識別子を対応付けている場合には、更新操作命令を受信したトポロジ管理サーバ装置は、更新されるべきデータベースオブジェクトをキャッシュしている計算機の識別子をトポロジ情報の参照により求め、求められた識別子を持つ計算機へ更新操作命令を送信する。
【０１８３】
（実施形態１３：計算機）
図３４は、本実施形態における計算機の機能ブロック図を例示する。本実施形態における計算機は、実施形態１２の計算機が更新操作情報送信部３４０１をさらに有している構成になっている。
【０１８４】
（実施形態１３：計算機：更新操作情報送信部）
「更新操作情報送信部」３４０１は、更新操作情報を送信する。この送信のタイミングは、計算機４０３がキャッシュしているデータベースオブジェクトに対して更新操作を行なおうとするときである。このタイミングで、更新操作情報送信部３４０１は、どのデータベースオブジェクトに対して、どのような更新操作が行なわれようとしているかを検出して、更新操作情報を生成して送信する。なお、キャッシュしているデータベースオブジェクトが実際に更新されるのは、更新操作命令が更新操作命令受信部３１０１で受信され、データベースオブジェクト更新操作部３１０２により更新操作が行なわれるときである。
【０１８５】
（実施形態１３：更新操作情報はトポロジ管理サーバ装置を経由してデータベース管理装置へ送信されてもよい）
更新操作情報は、データベース管理装置へ直接送信されてもよい。あるいは、一度トポロジ管理サーバ装置へ送られてもよく、トポロジ管理サーバ装置はトポロジ情報を参照して、更新されようとしているデータベースオブジェクトを管理しているデータベース管理装置へ更新操作情報を送信する。また、トポロジ管理サーバ装置が他のトポロジ管理サーバ装置とトポロジ情報を交換している場合には、もし、更新操作情報に係るデータベースオブジェクトが他のドメインのデータベース管理装置が管理するデータベースオブジェクトであれば、他のドメインのトポロジ管理サーバ装置へ更新操作情報を転送する。
【０１８６】
（実施形態１３：主な効果）
本実施形態によれば、クライアント装置である計算機でのデータベースオブジェクトに対する更新操作が、データベース管理装置で管理されているデータベースオブジェクトや、他の計算機にキャッシュされているデータベースオブジェクトに反映されることになる。これにより、例えば、計算機で動作するプログラムの結果を他の計算機で動作するプログラムへ伝えることが可能となる。
【０１８７】
また、本実施形態においては、計算機がキャッシュしているデータベースオブジェクトを更新することが可能である。更新は、データベース管理装置での更新が正常に完了した場合にのみ、そのデータベースオブジェクトをキャッシュしている計算機だけにその更新内容を送信することが可能である。これにより、従来のレプリケーション技術を使用している場合のように、キャッシュしているデータを変更できないという不具合や、キャッシュしているデータを変更できないことにより、同期対象を絞り込めないために遅延を生ずるという不具合を避けることができる。
【０１８８】
（実施形態１４）
本発明の実施形態１４においては、データベースを停止させることなく、バックアップが行なわれ、障害が発生した場合に復旧が可能となる分散型データベースシステムが提供される。このために、データベース管理装置で生成される更新ジャーナルをネットワークに接続された物理的に異なるサーバ装置に出力する。
【０１８９】
（実施形態１４：構成）
図３５は、本実施形態の分散型データベースシステムの機能ブロック図を例示する。分散型データベースシステムは、実施形態１の分散型データベースシステムがジャーナル管理サーバ装置３５０１を備えた構成を採っている。
【０１９０】
図３６は、ジャーナル管理サーバ装置３５０１の機能ブロック図を例示する。ジャーナル管理サーバ装置３５０１は、ジャーナル受信部３６０１と、ジャーナル蓄積部３６０２と、ジャーナルリプレイ部３６０３とスナップショット保持部３６０４と、リカバリ部３６０５とを有する。
【０１９１】
図３７は、本実施形態におけるデータベース管理装置の機能ブロック図を例示しており、実施形態１のデータベース管理システムがジャーナル送信部３７０１を有した構成になっている。
【０１９２】
（実施形態１４：ジャーナル管理サーバ装置：ジャーナル受信部）
「ジャーナル受信部」３６０１は、ジャーナルを受信する。「ジャーナル」とは、データベース管理装置で管理されるデータベースオブジェクトに対する更新を表わす情報である。すなわち、データベース管理装置でデータベースオブジェクトに対して、どのような更新の操作が行なわれたかを表わす情報である。ジャーナルは、個々の更新の操作ごとに生成されてもよい。あるいは、ジャーナルは、トランザクションがコミットされるなどのタイミングで、一つまたは複数の更新の操作が行なわれるごとに生成されてもよい。
【０１９３】
（実施形態１４：ジャーナル管理サーバ装置：ジャーナル蓄積部）
「ジャーナル蓄積部」３６０２は、ジャーナル受信部３６０１で受信されたジャーナルを蓄積する。例えば、メモリや磁気ディスク、光ディスクなどに蓄積する部である。あるいは、電源などの信頼性が高ければ主メモリにジャーナルを蓄積するようになっていてもよい。
【０１９４】
（実施形態１４：ジャーナル管理サーバ装置：ジャーナルリプレイ部）
「ジャーナルリプレイ部」３６０３は、ジャーナル蓄積部３６０２で蓄積したジャーナルをリプレイする。「リプレイ」とは、ジャーナルが表わすデータベースオブジェクトに対する更新の操作を、ジャーナル管理サーバ装置３５０１で、実行することを意味する。ジャーナルのリプレイの実行は、スナップショット保持部３６０４に保持されているスナップショットに対して実行される。
【０１９５】
このリプレイは、ジャーナル蓄積部３６０２にジャーナルが蓄積される都度、行なわれてもよい。あるいは、ジャーナル蓄積部３６０２に所定の量以上のジャーナルが蓄積された時に、リプレイが行なわれるようになっていてもよい。あるいは、所定の時間ごとにリプレイが行なわれるようになっていてもよい。
【０１９６】
「スナップショット保持部」３６０４は、ジャーナルリプレイ部３６０３でリプレイされたジャーナルに基づいて生成されたスナップショットを保持する。
【０１９７】
ジャーナルがリプレイされることにより、データベース管理装置の管理されるデータベースがジャーナル管理サーバ装置において再現される。「スナップショット」とは、このように再現されたデータベースのある時点における複製である。このような複製は、例えば、メモリや磁気ディスク装置、光ディスク装置などにより記憶され保持される。また、スナップショットが保持される都度、ジャーナル蓄積部３６０２からリプレイされたジャーナルを削除するようにしてもよい。
【０１９８】
なお、スナップショットは、複数保持されていてもよい。例えば、（１）特定のジャーナルがリプレイされる前のスナップショット、（２）特定のジャーナルがリプレイされた後のスナップショット、など、２つ以上のスナップショットが保持されてもよい。
【０１９９】
「リカバリ部」３６０５は、ドメインが障害を蒙ったときに前記スナップショットから障害ドメインのリカバリのための処理を行なう機能を有する部である。「ドメインが障害を蒙ったとき」には、例えば、分散型データベースシステムのデータベース管理装置に障害が発生したとき、がある。「障害ドメイン」とは、障害を蒙ったドメインである。「リカバリのための処理」とは、障害から復旧するための処理である。例えば、スナップショット保持部に保持されたスナップショットをデータベース管理装置へ送信し、スナップショット保持部にスナップショットが保持された後にジャーナル蓄積部に蓄積されたジャーナルをデータベース管理装置にてリプレイする。あるいは、スナップショット保持部に保持されたスナップショットに対して、スナップショット保持部にスナップショットが保持された後にジャーナル蓄積部に蓄積されたジャーナルをリプレイして得られるスナップショットをデータベース管理装置へ送信する。あるいは、新しくデータベース管理装置を用意して、そのデータベース管理装置へスナップショットを送信するようにしてもよい。
【０２００】
（実施形態１４：データベース管理装置：ジャーナル送信部）
「ジャーナル送信部」３７０１は、ジャーナルを送信する。すなわち、データベース管理装置４０２でのデータベースオブジェクトに対してどのような更新の操作が行なわれたかを表わす情報を送信する。この送信は、データベースオブジェクトに対して更新の操作が行なわれる都度行なわれてもよい。あるいは、トランザクションがコミットされるなど、一定のイベントが発生する都度行なわれてもよい。
【０２０１】
（実施形態１４：主な効果）
本発明においては、データベースオブジェクトが計算機にキャッシュされているため、データベースを停止させることが困難であるので、本実施形態により、データベースを停止させることなくデータベースのバックアップを採ることができる。また、スナップショットの移動により障害からのリカバリが行なわれるので、復旧を短時間で終わらせることができる。
【０２０２】
また、データベース管理装置などのハードウェアの故障やソフトウェアのハングアップなどによる再起動に伴なうメインメモリ上のデータの消失に対処することができる。リカバリの実行は限られたドメイン内で完結するため、巨大データベースのリカバリ処理も分散したオブジェクトで完結するため運用上の負担が減る。
【０２０３】
（実施例１）
以下に、本発明の実施例を挙げる。
【０２０４】
企業内に設置されたワークステーションあるいはパーソナルコンピュータがＬＡＮに接続されている。従業員の机上のパーソナルコンピュータは、就業時間中に使用されるが、夜間や休日は使用されていない。それらのパーソナルコンピュータは高性能であるにもかかわらず、稼動するソフトウェアは、ワードプロセッサ、表計算、プレゼンテーション作成ツール、メーラ、ブラウザなどの計算資源をそれほど要求しないものであり、ＣＰＵ能力、メインメモリ容量、磁気ディスク容量に余剰が生じている。
【０２０５】
一方、月次の請求入金処理が月末に集中するので、パーソナルコンピュータの余剰能力を利用するために、本発明の分散型データベースの計算機として、これらのパーソナルコンピュータを使用する。この場合、パーソナルコンピュータの負荷が一定以下になるものに、請求入金処理のためのデータベースオブジェクトをキャッシュさせて、データベースオブジェクトを参照して請求入金処理を行なうプログラムを動作させる。これにより、ワークステーションなどを増強することなしに月末処理を行なうことができる。
【０２０６】
（実施例２）
また、別の実施例を以下に挙げる。
【０２０７】
マンションなどの集合住宅にブロードバンドインターネットサービスを提供する会社が、その集合住宅の全戸にサービスを利用してもらうために、利用者からサービス利用料を徴収しないことにした。その代わりに、全戸に低消費電力の高性能パーソナルコンピュータを配布し、常時電源を入れた状態にしてもらうことを条件とした。もちろん、ブロードバンドインターネットにも常時接続されることが条件となっている。
【０２０８】
配布した低消費電力の高性能パーソナルコンピュータを、本発明の分散データベースシステムの計算機とする。この高性能パーソナルコンピュータは、回転軸などの摺動機械要素を含む磁気ディスクを含まず、機械的な故障ができるだけ発生しないようにしたものであってもよい。また、停電などに備えて、無停電装置に接続されていてもよい。ブロードバンドインターネットサービスを提供する会社は、コンピュータ資源を必要としている会社と契約を行ない、全戸に配布された低消費電力の高性能パーソナルコンピュータの余剰コンピュータ資源をまとめて提供することにする。この余剰コンピュータ資源の使用料を、ブロードバンドインターネットサービスを提供する会社が、契約した会社から徴収する。
【０２０９】
また、データベースオブジェクトを用いたグループウェアのソフトウェアを各戸のパーソナルコンピュータで動作させることにより、集合住宅内のグループウェア環境が実現され、また、地域情報ネットワークが実現される。
【０２１０】
このような地域情報ネットワークは、集合住宅をドメインとするトポロジ管理サーバ装置間でトポロジ情報が交換されることにより、成長し、マーケティングリソースとしてその価値を大きくして行く。
【０２１１】
【発明の効果】
以上のように、本発明によれば、データベースオブジェクトを複数の計算機に分散することができる。また、計算機のＣＰＵ資源、メモリ資源を有効に用いて、計算を分散して行なうことが可能となる。また、データベースを停止させることなく、データベースのバックアップが行なえる。
【図面の簡単な説明】
【図１】本発明の概念図
【図２】計算機からキャッシュ要求が送信され、それがトポロジ管理サーバ装置に転送されて、データベース管理装置からデータベースオブジェクトの転送がされる過程を示すシーケンス図
【図３】計算機が、キャッシュしているデータベースオブジェクトにロックを行なう際の過程に関するシーケンス図
【図４】実施形態１における分散型データベースシステムの機能ブロック図
【図５】実施形態１におけるトポロジ管理サーバ装置４０１の機能ブロック図
【図６】キャッシュ要求の模式図
【図７】実施形態１における計算機と、トポロジ管理サーバ装置と、データベース管理装置と、の間の処理の流れを説明するシーケンス図
【図８】実施形態１におけるトポロジ管理サーバ装置の処理の流れを説明するフローチャート
【図９】実施形態１における分散型データベースシステムの別の機能ブロック図
【図１０】計算機がどのデータベースオブジェクトに対するキャッシュ要求を送信したかを管理するために用いられる表の一例図
【図１１】実施形態１における計算機の機能ブロック図
【図１２】実施形態１における算機の処理の流れを説明するフローチャート
【図１３】実施形態１におけるデータベース管理装置の機能ブロック図
【図１４】実施形態１データベース管理装置の処理の流れを説明するフローチャート
【図１５】実施形態２における分散型データベースシステムの計算機の機能ブロック図
【図１６】実施形態３における分散型データベースシステムの計算機の機能ブロック図
【図１７】実施形態５におけるキャッシュ要求の模式図
【図１８】実施形態６におけるキャッシュ要求の模式図
【図１９】実施形態７におけるキャッシュ要求の模式図
【図２０】実施形態８におけるキャッシュ要求の模式図
【図２１】実施形態９におけるトポロジ情報の模式図
【図２２】図２１に模式的に例示されたトポロジ情報を表現する表の一例図
【図２３】データベースオブジェクト識別子とロック情報を対応付けている表の一例図
【図２４】実施形態９におけるトポロジ管理サーバ装置の機能ブロック図
【図２５】計算機がキャッシュ済情報送信部を有している場合のデータの流れを例示するシーケンス図
【図２６】実施形態１０におけるトポロジ管理サーバ装置の機能ブロック図
【図２７】実施形態１１の概要を示す図
【図２８】実施形態１１におけるトポロジ管理サーバ装置の機能ブロック図
【図２９】実施形態１２におけるデータの流れを説明するシーケンス図
【図３０】実施形態１２におけるデータベース管理装置の機能ブロック図
【図３１】実施形態１２における計算機の機能ブロック図
【図３２】実施形態１３における分散型データベースシステムにおけるデータの流れを説明するシーケンス図
【図３３】実施形態１３におけるデータベース管理装置の機能ブロック図
【図３４】実施形態１３における計算機の機能ブロック図
【図３５】実施形態１４における分散型データベースシステムの機能ブロック図
【図３６】実施形態１４におけるジャーナル管理サーバ装置の機能ブロック図
【図３７】実施形態１４におけるデータベース管理装置の機能ブロック図
【符号の説明】
１０１  分散型データベースシステム
１０２  データベース管理装置
１０３  トポロジ管理サーバ装置
１０４  計算機
１０５  計算機
１０６  計算機
１０７  ルータ
１０８  データベース管理装置
１０９  トポロジ管理サーバ装置
１１０  計算機
１１１  計算機
１１２  計算機
１１４  通信網
【図１】
2004227169.tif 000003
【図２】
2004227169.tif 000004
【図３】
2004227169.tif 000005
【図４】
2004227169.tif 000006
【図５】
2004227169.tif 000007
【図６】
2004227169.tif 000008
【図７】
2004227169.tif 000009
【図８】
2004227169.tif 000010
【図９】
2004227169.tif 000011
【図１０】
2004227169.tif 000012
【図１１】
2004227169.tif 000013
【図１２】
2004227169.tif 000014
【図１３】
2004227169.tif 000015
【図１４】
2004227169.tif 000016
【図１５】
2004227169.tif 000017
【図１６】
2004227169.tif 000018
【図１７】
2004227169.tif 000019
【図１８】
2004227169.tif 000020
【図１９】
2004227169.tif 000021
【図２０】
2004227169.tif 000022
【図２１】
2004227169.tif 000023
【図２２】
2004227169.tif 000024
【図２３】
2004227169.tif 000025
【図２４】
2004227169.tif 000026
【図２５】
2004227169.tif 000027
【図２６】
2004227169.tif 000028
【図２７】
2004227169.tif 000029
【図２８】
2004227169.tif 000030
【図２９】
2004227169.tif 000031
【図３０】
2004227169.tif 000032
【図３１】
2004227169.tif 000033
【図３２】
2004227169.tif 000034
【図３３】
2004227169.tif 000035
【図３４】
2004227169.tif 000036
【図３５】
2004227169.tif 000037
【図３６】
2004227169.tif 000038
【図３７】
2004227169.tif 000039