(57)【要約】【課題】プロセッサ間の通信量を低減して高速処理を実現できるとともに，キャッシュの利用効率を向上できるデータ管理装置を提供すること。【解決手段】外部からの要求に応じて，データの書き込み処理および読み出し処理を行う複数のプロセッサと；データが格納される１または２以上の外部記憶装置と；複数のプロセッサによって共有され，少なくとも外部記憶装置に読み書きされるデータを一時記憶する共有キャッシュ装置と；を備えることを特徴とする，データ管理装置が提供される。かかる構成により，複数のプロセッサがキャッシュを共有するので，キャッシュデータが一元化される。このため，プロセッサ間の通信量を低減できるので処理速度が向上するとともに，キャッシュ装置の利用効率が高まる。さらに，外部記憶装置とキャッシュ装置間でのデータの転送回数も低減できる。【選択図】　図２
2004054845.tif 000002
【特許請求の範囲】
【請求項１】
外部からの要求に応じて，データの書き込み処理および読み出し処理を行う複数のプロセッサと；
前記データが格納される１または２以上の外部記憶装置と；
前記複数のプロセッサによって共有され，少なくとも前記外部記憶装置に読み書きされる前記データを一時記憶する共有キャッシュ装置と；
を備えることを特徴とする，データ管理装置。
【請求項２】
前記共有キャッシュ装置は，前記複数のプロセッサによって同時にアクセス可能であることを特徴とする，請求項１に記載のデータ管理装置。
【請求項３】
前記共有キャッシュ装置は，半導体ディスクキャッシュであることを特徴とする，請求項１に記載のデータ管理装置。
【請求項４】
前記共有キャッシュ装置は，前記複数のプロセッサに外付けされて設けられることを特徴とする，請求項１に記載のデータ管理装置。
【請求項５】
前記外部記憶装置は，前記複数のプロセッサに対応して設けられていることを特徴とする，請求項１に記載のデータ管理装置。
【請求項６】
前記共有キャッシュ装置は，さらに，前記データを管理するためのメタデータを一時記憶できることを特徴とする，請求項１に記載のデータ管理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，データ管理装置に関し，特に，クラスタ・システムとして構成されたデータ管理装置に関する。
【０００２】
【従来の技術】
ハードディスク等の外部記憶装置に多様なデータを保管し，かかるデータを用いてクライアントに対して種々のサービスを提供する装置として，ファイルサーバやデータベースサーバなどといったデータ管理装置が多用されている。近年，このデータ管理装置においては，より多くのクライアントに対してサービスを提供するために，独立して動作する複数のプロセッサ（一般的にはコンピュータ）を高速ラインで並列的に接続するクラスタ化（ｃｌｕｓｔｅｒｉｎｇ）という手法が用いられている。データ管理装置をこのようなクラスタ・システム（ｃｌｕｓｔｅｒ　ｓｙｓｔｅｍ）として構成することによって，システム全体の信頼性を高め，プロセッサにかかる負荷を分散することができる。以下に，図１２および図１３に基づいて，データ管理装置に適用される一般的なクラスタ・システムの構成例について説明する。
【０００３】
図１２に示す構成例では，複数（例えば２つ）のプロセッサＰ１’，Ｐ２’が，専有のキャッシュ装置（例えばディスクキャッシュ）ＳＣ１’，ＳＣ２’と，同一の内容のデータが格納されている専有の外部記憶装置ＥＳ１’，ＥＳ２’とをそれぞれ備えている。各プロセッサＰ１’，Ｐ２’は，対応する外部記憶装置ＥＳ１’，ＥＳ２’内に格納されているデータの一部コピーを，自身が専有しているキャッシュ装置ＳＣ１’，ＳＣ２’にキャッシュすることで，多くのクライアント端末からの要求を処理する。
【０００４】
しかしながら，このようなシステム構成では，データの更新が発生した場合，すべての外部記憶装置内のデータを一致させるためと，すべてのキャッシュ装置の記憶内容を一致させるために，プロセッサ間で大量のデータ通信を行わなければならないという問題があった。このため，かかるシステム構成は，データが頻繁に更新される用途には向いていなかった。また，すべての外部記憶装置が同一のデータを格納しているため，外部記憶装置の利用効率が悪いだけでなく，各プロセッサが同一のデータのコピーをそれぞれキャッシュするため，キャッシュ装置の利用効率も悪いという問題があった。
【０００５】
また，図１３に示す構成例では，複数のプロセッサＰ１’，Ｐ２’は，キャッシュ装置ＳＣ１’，ＳＣ２’をそれぞれ専有しているとともに，１つの外部記憶装置ＥＳ’を共有している。各プロセッサＰ１’，Ｐ２’は，共有している外部記憶装置ＥＳ’内に格納されているデータの一部コピーを，自身が専有しているキャッシュ装置ＳＣ１’，ＳＣ２’にキャッシュすることで，多くのクライアント端末からの要求を処理している。
【０００６】
しかしながら，このようなシステム構成でも，データの更新が発生した場合，すべてのキャッシュ装置の記憶内容を一致させるために，プロセッサ間で大量の通信を行わなければならないという問題があった。また，すべてのプロセッサが，自身が専有しているキャッシュ装置に同一のデータをキャッシュするため，キャッシュ装置の利用効率が悪いという問題も依然として残っていた。さらに，キャッシュ装置がプロセッサごとに独立して複数存在するため，同一データの転送が各キャッシュ装置と１つの外部記憶装置との間で何度も発生するので，外部記憶装置の負荷が高くなってしまうという欠点もあった。加えて，高価な大容量のキャッシュ装置を複数設けなければならないので，装置の総コストが増大してしまうという問題もあった。
【０００７】
【発明が解決しようとする課題】
本発明は，上記問題点に鑑みてなされたものであり，本発明の目的は，複数のプロセッサ間の通信量を低減して高速処理を可能とするとともに，キャッシュ装置の利用効率を向上させ，低コスト化を図ることが可能な，新規かつ改良されたデータ管理装置を提供することである。
【０００８】
【課題を解決するための手段】
上記課題を解決するため，本発明の第１の観点によれば，外部からの要求に応じて，データの書き込み処理および読み出し処理を行う複数のプロセッサと；データが格納される１または２以上の外部記憶装置と；複数のプロセッサによって共有され，少なくとも外部記憶装置に読み書きされるデータを一時記憶する共有キャッシュ装置と；を備えることを特徴とする，データ管理装置が提供される。
【０００９】
かかる構成により，プロセッサは，外部記憶装置にデータを書き込んで格納し，また，外部記憶装置に格納されたデータを読み出すことができる。さらに，プロセッサは，外部記憶装置から読み出したデータ若しくは外部記憶装置に書き込むデータを，共有キャッシュ装置にキャッシュすることができる。これにより，プロセッサは，共有キャッシュ装置にキャッシュされたデータを高速に読み出して，読み出し要求した外部に提供できるとともに，外部から書き込み要求されたデータを高速に共有キャッシュ装置に書き込むことができる。
【００１０】
また，上記構成により，複数のプロセッサが共有キャッシュ装置を共有するので，１のプロセッサが共有キャッシュ装置上にキャッシュしたデータを，他のプロセッサが読み出したり，書き換えたりすることができる。このように，データ管理装置内でキャッシュされるすべてのデータを共有キャッシュ装置内に統一できる。よって，データの更新を行う際に，従来のように複数のキャッシュ装置間でキャッシュ内容の整合性をとる必要がないので，プロセッサ間でデータを受け渡す必要が無くなる。また，同一のデータのコピーが複数キャッシュされることがないので，キャッシュ装置の利用効率が高まる。さらに，外部記憶装置とキャッシュ装置間でのデータの転送回数も低減できる。
【００１１】
また，上記共有キャッシュ装置は，複数のプロセッサによって同時にアクセス可能である，如く構成すれば，外部からの複数の要求があった場合に，複数のプロセッサが同時に動作できるので，データ管理装置の処理能力が向上する。
【００１２】
また，上記共有キャッシュ装置は，半導体ディスクキャッシュである，如く構成すれば，ハードディスクなどからなる外部記憶装置と比べて，共有キャッシュ装置のレスポンスが大幅に向上する。
【００１３】
また，上記共有キャッシュ装置は，複数のプロセッサに外付けされて設けられる，如く構成すれば，共有キャッシュ装置をプロセッサから容易に分離できるので，共有キャッシュ装置の交換，修理，容量変更などのメンテナンスを迅速かつ容易に行うことができる。
【００１４】
また，上記外部記憶装置は，複数のプロセッサに対応して設けられている，如く構成すれば，プロセッサごとに複数の外部記憶装置を設けることで，個々の外部記憶装置にかかる負荷を分散することができる。また，各プロセッサが対応する外部記憶装置に同時にアクセスして読み書きできるので，全体としてプロセッサと外部記憶装置間での読み書きの処理速度が向上する。
【００１５】
また，上記共有キャッシュ装置は，さらに，データを管理するためのメタデータを一時記憶できる，如く構成すれば，外部記憶装置および共有キャッシュ装置に記憶されているデータのアドレス管理やキャッシュ領域の使用状況，キャッシュ領域リンクリストなどのメタデータを，共有キャッシュ装置上に集中させて，統一管理することができる。このため，各プロセッサは，かかる共有キャッシュ装置上のメタデータに基づいて，迅速にデータの読み書き処理を実行できる。
【００１６】
【発明の実施の形態】
以下に添付図面を参照しながら，本発明の好適な実施の形態について詳細に説明する。なお，本明細書及び図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００１７】
（第１の実施の形態）
以下に，本発明の第１の実施形態にかかるデータ管理装置について説明する。
【００１８】
まず，図１に基づいて，本実施形態にかかるデータ管理装置が用いられる情報管理システムの全体構成について説明する。なお，図１は，本実施形態にかかるデータ管理装置１０が用いられる情報管理システム１の全体構成を示すブロック図である。
【００１９】
図１に示すように，本実施形態にかかる情報管理システム１は，例えば複数のクライアント端末３−１，３−２，・・・，３−ｎ（以下では，クライアント端末３という場合もある。）と，例えば１つのデータ管理装置１０とが，ネットワーク５を介して接続されている。このように，情報管理システム１は，クライアント端末３を例えばクライアントコンピュータとし，データ管理装置１０を例えばサーバコンピュータとするクライアント／サーバシステムとして構成されており，クライアント端末３のユーザに対して，データ管理装置１０に格納されているデータを用いて様々なサービスを提供することができる。
【００２０】
クライアント端末３は，サービスの提供を依頼する側の端末装置であり，例えば，パーソナルコンピュータ等の汎用コンピュータや，携帯端末，携帯電話，ＰＨＳ等の移動体端末，固定電話，ＦＡＸ若しくは情報家電などで構成される。このクライアント端末３は，例えば，マウス，キーボード，各種ボタン等の入力装置（図示せず。）と，モニタ，スピーカ等の出力装置（図示せず。）などを備えている。
【００２１】
クライアント端末３のユーザは，この入力装置を利用して，要求するサービスの内容をクライアント端末３に入力可能である。クライアント端末３は，かかるユーザの要求が入力されると，クライアント要求信号を，通信装置（図示せず。）を用いてデータ管理装置１０に送信する。このクライアント要求信号は，例えばユーザの要求内容を表す信号であり，例えば新規登録したいデータ情報や更新データ情報及びこれらの識別情報，若しくは読み出して欲しいデータの識別情報などを含む。かかるクライアント要求信号は，例えばユーザの入力に基づいて例えばクライアント端末３内のアプリケーションで作成される。なお，クライアント端末３は，上記のようなユーザの入力に因らずとも，例えばデータ管理装置１０に対してクライアント要求信号を自動送信するように構成されてもよい。
【００２２】
一方，クライアント端末３は，通信装置を用いてデータ管理装置１０が送信した各種データを受信すると，出力装置を用いてかかるデータをユーザに対して出力（例えば画像表示，音声出力等）できる。
【００２３】
ネットワーク５は，例えば，専用回線，インターネット，ＬＡＮ（ＬｏｃａｌＡｒｅａ　Ｎｅｔｗｏｒｋ），ＷＡＮ（Ｗｉｄｅ　Ａｒｅａ　Ｎｅｔｗｏｒｋ），ＷＬＬ（Ｗｉｒｅｌｅｓｓ　Ｌｏｃａｌ　Ｌｏｏｐ），衛星通信回線網，電話回線網（携帯電話回線網を含む。），ケーブルＴＶ回線網及び有線放送網等の有線・無線を問わない各種の公衆回線網若しくは専用回線網などで構成される。なお，クライアント端末３とデータ管理装置１０を例えば１つの筐体内に設ける場合に，双方を接続するＡＴＡ（ＡＴ　Ａｔｔａｃｈｍｅｎｔ），ＳＣＳＩ（Ｓｍａｌｌ　Ｃｏｍｐｕｔｅｒ　Ｓｙｓｔｅｍ　Ｉｎｔｅｒｆａｃｅ）等のインターフェースに対応したケーブルもネットワーク５に含むものとする。
【００２４】
データ管理装置１０は，例えば，大量のデータを蓄積して保管し，例えばクライアント端末３からの要求に応じて必要なデータを送出するサーバ装置などであり，例えば，ファイルサーバ，データベースサーバ，メールサーバなどである。このデータ管理装置１０は，例えば，蓄積した各種データを集中管理し，修正，更新，検索，計算処理等を統合的に処理し，またデータの保護を行うためのデータベースを管理することができる。かかるデータ管理装置１０は，複数のプロセッサ等をクラスタリングしたクラスタ・システムとして構成されるが，詳細については後述する。
【００２５】
以上のような構成の情報管理システム１は，クライアント端末３からの要求に基づいて，データ管理装置１０が多様な情報を蓄積，送信，転送，加工処理若しくは提供などする多様なサービスを提供することができる。このサービスの例としては，例えば，動画像や音楽，文字情報等の大容量メディア情報を提供，管理，配信などするメディア情報管理サービス，電子メールサービス，消費者情報やマーケティング情報等の各種情報を検索・分析するサービスなどが挙げられる。
【００２６】
次に，図２に基づいて，本実施形態にかかるデータ管理装置１０の構成について詳細に説明する。なお，図２は，本実施形態にかかるデータ管理装置１０の構成を示すブロック図である。
【００２７】
図２に示すように，データ管理装置２０は，例えば２つのプロセッサＰ１，Ｐ２（以下では，プロセッサＰという場合もある。）と，各プロセッサＰ１，Ｐ２に対応して設けられた例えば２つの外部記憶装置ＥＳ１，ＥＳ２（以下では，外部記憶装置ＥＳという場合もある。）と，本実施形態にかかる大きな特徴である共有キャッシュ装置ＳＣとを備える。
【００２８】
＜プロセッサ＞
プロセッサＰは，外部記憶装置ＥＳおよび共有キャッシュ装置ＳＣに対するデータの書き込み処理および読み出し処理などの各種処理を行う処理装置であり，例えばコンピュータなどで構成される。
【００２９】
ここで，図３に基づいて，プロセッサＰの構成についてより詳細に説明する。なお，図３は，本実施形態にかかるプロセッサＰの構成を示すブロック図である。
【００３０】
図３に示すように，プロセッサＰは，送受信部２１と，読み出し処理部２２と，書き込み処理部２３と，処理依頼部２４と，制御部２５と，記憶部２６と，を備える。
【００３１】
送受信部２１は，外部や他のプロセッサＰとの間で例えばネットワーク５や通信回線１１，入出力チャネル１２，１３を介して，各種情報の送受信を行う機能を有する。例えば，この送受信部２１は，クライアント端末３から例えばネットワーク５を介してクライアント要求信号を受信するとともに，読み出したデータをクライアント端末３に送信する。また，送受信部２１は，外部記憶装置ＥＳや共有キャッシュ装置ＳＣとの間で読み書きするデータを送受信する。さらに，この送受信部２１は，他のプロセッサＰとの間で後述する処理依頼信号を送受信する。
【００３２】
読み出し処理部２２は，共有キャッシュ装置ＳＣ若しくは外部記憶装置ＥＳからデータを読み出す機能を有する。より詳細には，読み出し処理部２２は，後述するデータ管理テーブルに基づいて，読み出し要求されたデータが共有キャッシュ装置ＳＣにキャッシュされているか否かを判定し，キャッシュされている場合には共有キャッシュ装置ＳＣから当該データを読み出してクライアント端末３に送出する。一方，キャッシュされていない場合には，格納先の外部記憶装置ＥＳを特定した後，かかる外部記憶装置ＥＳから当該データを共有キャッシュ装置ＳＣ上に読み出してキャッシュした上で，クライアント端末３に対して送出する。
【００３３】
なお，上記のような外部記憶装置ＥＳからの読み出し処理は，他のプロセッサＰに依頼して，当該他のプロセッサＰの読み出し処理部２２が実行する場合もあるが詳細については後述する。また，読み出し処理部２２は，例えば，データ管理テーブルに基づいて，読み出し要求されたデータが実在するか否かを判定する機能や，共有キャッシュ装置ＳＣの空き状況を判定し空き領域を確保する機能，読み出したデータに関してデータ管理テーブル等を更新する機能も有するが，これらの詳細についても後述する。
【００３４】
書き込み処理部２３は，共有キャッシュ装置ＳＣ若しくは外部記憶装置ＥＳにデータを書き込む機能を有する。この書き込み処理は，例えば，新規データの書き込み処理と，既存データを更新するための書き込み処理の双方を含む。より詳細には，書き込み処理部２３は，既存データを更新する場合には，後述するデータ管理テーブルに基づいて，書き込み要求されたデータが共有キャッシュ装置ＳＣにキャッシュされているか否かを判定し，キャッシュされている場合には，まず，共有キャッシュ装置ＳＣ上のデータを上書きする。一方，既存データがキャッシュされていない場合には，共有キャッシュ装置ＳＣ上に空き領域を確保した上で当該データを書き込む。さらに，書き込み処理部２３は，共有キャッシュ装置ＳＣに書き込まれたデータや新規データを，例えばいずれか１つの外部記憶装置ＥＳ（既存データの場合には，元々格納されていた外部記憶装置ＥＳ）に書き込んで格納する。よって，例えば複数の外部記憶装置ＥＳに同じデータが書き込まれることはない。
【００３５】
なお，上記のような外部記憶装置ＥＳへの書き込み処理は，他のプロセッサＰに依頼して，当該他のプロセッサＰの書き込み処理部２３が実行する場合もあるが詳細については後述する。また，書き込み処理部２３は，例えば，データ管理テーブルに基づいて，書き込み要求されたデータが実在するか否かを判定する機能や，書き込んだデータに関してデータ管理テーブル等を更新する機能も有するが，これらの詳細についても後述する。
【００３６】
処理依頼部２４は，他のプロセッサＰに対して，当該他のプロセッサＰに接続された外部記憶装置ＥＳからのデータの読み出し処理，若しくはかかる外部記憶装置ＥＳへのデータの書き込み処理を依頼する機能を有する。この依頼処理は，あるプロセッサＰの処理依頼部２４が，書き込み処理若しくは読み出処理を依頼する信号（以下では，処理依頼信号という。）を作成し，かかる処理依頼信号を通信回線１１を介して他のプロセッサＰに送信することで実行される。このような依頼処理が発生するケースの例を挙げると，例えば，プロセッサＰ１がクライアント端末３より受けた書き込み要求を処理するときに，プロセッサＰ１の書き込み処理部２３は共有キャッシュ装置ＳＣには当該データを書き込めるが外部記憶装置ＥＳ２には書き込むことができないので，プロセッサＰ１の処理依頼部２４が，プロセッサＰ２の書き込み処理部２３に対して，共有キャッシュ装置ＳＣにキャッシュ済のデータを外部記憶装置ＥＳ２の該当領域に書き込んで格納するよう指示する場合などである。
【００３７】
なお，上記のような読み出し処理部２２，書き込み処理部２３および処理依頼部２４の機能を，例えば，プロセッサＰにインストールされたアプリケーションソフトウエアなどによって，実現可能に構成してもよい。
【００３８】
制御部２５は，例えばＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）などからなり，プロセッサＰの各部を制御する機能を有する。この制御部２５は，例えば記憶部２６に格納されたコンピュータプログラムに基づいて，プロセッサＰの上記各部が上記機能を発揮できるように制御する。なお，かかるコンピュータプログラムを，実行したい処理に応じて好適に構築することにより，プロセッサＰは上記に限らず多様な処理機能を有することが可能である。
【００３９】
記憶部２６は，例えば，各種のＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）等からなる主記憶装置や，プログラムを実行する上で必要な比較的小容量のキャッシュメモリ，上記プログラムを格納する例えばハードディスク等の補助記憶装置などから構成され，例えば一般的なコンピュータに具備されている程度の記憶装置である。従って，例えば，従来のデータ管理装置のプロセッサが具備するような大容量のディスクキャッシュを具備するものではない。
【００４０】
以上に，１つのプロセッサＰの構成について説明した。次に，かかるプロセッサＰ同士の接続状態について説明する。
【００４１】
本実施形態にかかるデータ管理装置１０では，図２に示すように，例えば２つのプロセッサＰ１，Ｐ２が，例えば外部バスである通信回線１１（有線回線と無線回線の双方を含む。）を介して並列的に接続されている。即ち，独立して動作可能なプロセッサＰ１とプロセッサＰ２がクラスタリングされており，クライアント側からみれば全体として一台の大きなプロセッサ（サーバ）が存在するかのようなイメージとなる。
【００４２】
このように複数のプロセッサＰをクラスタリングし，データ管理装置１０をクラスタ・システムとして構成することによって，システム全体の信頼性の向上と，高性能化を図ることができる。即ち，例えば，１つのプロセッサＰに障害が発生しても，他のプロセッサＰがその処理を引き継ぐことで，システム全体がダウンすることなく稼動し続けることができる。また，独立して動作する複数のプロセッサＰによって多くのクライアント端末３からの要求に応えることで，１つのプロセッサＰにかかる負荷を分散することができるので，全体としては処理能力が向上し高速処理が可能になる。
【００４３】
さらに，例えば複数のプロセッサＰ間を結ぶ通信回線１１は，例えば，データそのものの転送に使われるのではなく，相互に処理を依頼するためのコントロールラインとして機能するものである。即ち，双方のプロセッサＰは，この通信回線１１を介して，例えば，相互に上記処理依頼信号などを送受信するのみであり，従来のデータ管理装置のようにプロセッサ間で大量のデータを送受信する必要がない。これは，複数のプロセッサＰが共有キャッシュ装置ＳＣを共有しているため，従来のようにキャッシュ装置間の整合性をとる必要がないからである。このため，データ管理装置１０の処理速度がより高速となり，特に，データ管理装置１０が取り扱うデータが更新頻度の高い大容量データである場合に，非常に有益となる。
【００４４】
なお，本実施形態では，例えば２つのプロセッサＰ１，Ｐ２が，例えば，空間的に独立した１つの装置（例えばコンピュータ）として構成されている。しかし，かかる例に限定されず，プロセッサＰは上記のような処理機能を有しておれば，いかなる形態であってもよい。例えば，複数のプロセッサＰを例えば１つの基板上に設ける，或いは，各プロセッサＰを例えば１つの筐体に対して挿抜可能な基板等として構成して１つの筐体内にすべて収容するなどして，空間的に１つのハードウェアとして一体構成されていてもよい。この場合には，通信回線１１は例えば内部バスなどとすることができる。
【００４５】
＜外部記憶装置＞
外部記憶装置ＥＳ（Ｅｘｔｅｒｎａｌ　Ｓｔｏｒａｇｅ）は，例えば，ハードディスクや，ＣＤＲＯＭ，ＤＶＤ等の光ディスクなどで構成されたディスク記憶装置などであり，大容量のデータやプログラムなどを保存することができる。本実施形態では，このような外部記憶装置ＥＳが，例えば，複数のプロセッサＰごとに例えばそれぞれ１つずつ設けられている。具体的には，プロセッサＰ１に対応して外部記憶装置ＥＳ１が設けられ，プロセッサＰ２に対応して外部記憶装置ＥＳ２が設けられている。
【００４６】
このような外部記憶装置ＥＳ１，ＥＳ２は，プロセッサＰ１，Ｐ２本体に例えば入出力チャネル１２−１，１２−２（以下では入出力チャネル１２という場合もある。）を介して，例えば外付けされている。この入出力チャネル１２は，外部記憶装置ＥＳとプロセッサＰとを結ぶデータの通信路であり，例えば，ＡＴＡ（ＡＴ　Ａｔｔａｃｈｍｅｎｔ），ＳＣＳＩ（Ｓｍａｌｌ　Ｃｏｍｐｕｔｅｒ　Ｓｙｓｔｅｍ　Ｉｎｔｅｒｆａｃｅ），ＵＳＢ（Ｕｎｉｖａｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）等のインターフェースに対応したケーブルで結ばれる外部バスである。このように外部記憶装置ＥＳが外付けされていることにより，プロセッサＰと外部記憶装置ＥＳとを容易に分離できるため，外部記憶装置ＥＳの交換，修理や容量変更などを迅速に行うことができる。しかし，かかる外付けの例に限定されず，外部記憶装置ＥＳは，プロセッサＰに内蔵されていてもよい。
【００４７】
かかる構成の外部記憶装置ＥＳには，データ管理装置１０がサービスを実行するために必要なデータが格納されるが，この際，当該データが外部記憶装置ＥＳ１若しくはＥＳ２のいずれか一方に格納される点が特徴的である。よって，同一のデータが外部記憶装置ＥＳ１およびＥＳ２の双方に格納されることはないので，外部記憶装置ＥＳの利用効率を向上させることができる。なお，外部記憶装置ＥＳは，例えば，一般的なコンピュータ・ファイルシステムで管理されており，当該データは，例えばファイル形式で管理される。
【００４８】
＜共有キャッシュ装置＞
共有キャッシュ装置ＳＣは，例えばボックス状の筐体内に高速アクセス可能なキャッシュメモリなどを備えた装置などであり，このキャッシュメモリは例えばＳＲＡＭ（Ｓｔａｔｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）等の半導体メモリなどで構成される。この共有キャッシュ装置ＳＣは，例えば，データ管理装置１０がサービスを実行するために必要なデータをキャッシュ（一時記憶）し，プロセッサＰと外部記憶装置ＥＳとの間のデータ伝送ロスを軽減するための例えばディスクキャッシュとして機能する。このような半導体メモリからなるディスクキャッシュは，ハードディスク等で構成された外部記憶装置ＥＳより，例えば，十倍以上高速なレスポンス特性を有する。
【００４９】
例えばデータベースサーバなどにおいては，このディスクキャッシュの容量を大きくして，外部記憶装置に格納されているデータを少しでも多くキャッシュしておくことにより，要求されたデータの読み書きを高速処理することができる。かかる観点から，本実施形態にかかる共有キャッシュ装置ＳＣは，例えば非常に大容量であり，例えば数１０ＧＢ（ギガバイト）などである。このため，かかる大容量の共有キャッシュ装置ＳＣに，複数の外部記憶装置ＥＳに格納されているデータの例えば大部分をキャッシュするようにすれば，プロセッサＰは，例えば，低速な外部記憶装置ＥＳからほとんどデータを読み出すことなく，共有キャッシュ装置ＳＣのみを用いて高速にデータを読み出すことができる。
【００５０】
以下に，本実施形態にかかる共有キャッシュ装置ＳＣの特徴についてさらに説明する。
【００５１】
第１に，共有キャッシュ装置ＳＣは，プロセッサＰに例えば外付けされて設けられ，上記プロセッサＰとは例えば空間的に独立したハードウェアである点に特徴を有する。即ち，従来のデータ管理装置では，図１２及び図１３に示したように，キャッシュ装置はプロセッサに内蔵され，ＣＰＵの周辺に設けられていた。これに対し，本実施形態にかかる共有キャッシュ装置ＳＣは，図２に示すように，プロセッサＰとはハードウェア的に例えば別体に構成され，あたかもプロセッサＰの主記憶装置の一部をプロセッサＰの外部に取り出して外部記憶装置としたような構成となっている。
【００５２】
この共有キャッシュ装置ＳＣとプロセッサＰとは，例えば外部バスである入出力チャンネル１３を介して接続されている。この入出力チャンネル１３は，共有キャッシュ装置ＳＣに設けられた例えば複数の入出力端子（図示せず。）と，各プロセッサＰの入出力端子（図示せず。）とを結んでおり，高速伝送（例えば伝送速度が２．５Ｇｂｐｓ）可能な光ファイバケーブルなどで構成されている。このため，プロセッサＰは，この入出力チャネル１３を介してかかる共有キャッシュ装置ＳＣに高速アクセス可能である。従って，共有キャッシュ装置ＳＣを外付けしたことに伴う伝送ロスを十分に低減できるので，共有キャッシュ装置ＳＣを例えばディスクキャッシュとして好適に機能せしめることができる。なお，かかる入出力チャネル１３のデータ伝送の規格としては，例えば，光ファイバーとスイッチング技術によりサーバやストレージ間で高速なシリアル・データ転送を実現可能なインフィニバンド（ＩｎｆｉｎｉＢａｎｄ）規格などを用いてもよい。
【００５３】
このように共有キャッシュ装置ＳＣが，プロセッサＰに例えば外付けさていることにより，例えば，共有キャッシュ装置ＳＣの交換，修理，容量変更や，データ管理装置１０の設計変更などといったメンテナンスが迅速かつ容易になる。なお，共有キャッシュ装置ＳＣは，必ずしも上記のような外付けされた例に限定されるものではない。例えば，共有キャッシュ装置ＳＣがいずれか１つのプロセッサＰに内蔵されており，他のプロセッサＰはこのプロセッサＰに外部バスで接続され，内蔵されている共有キャッシュ装置ＳＣにアクセスできるような構成であってもよい。
【００５４】
第２に，共有キャッシュ装置ＳＣは，複数のプロセッサＰによって共有されている点に特徴を有する。即ち，従来のデータ管理装置では，図１２及び図１３に示したように，キャッシュ装置は，各プロセッサに対応して複数設けられており，さらに，かかる複数のキャッシュ装置間でキャッシュしているデータの整合性をとる必要があった。これに対し，本実施形態では，共有キャッシュ装置ＳＣは，図２に示すように，入出力チャンネル１３−１，１３−２で接続されたプロセッサＰ１およびプロセッサＰ２によって共有されており，キャッシュ装置が例えば１つだけしか設けられていない。よって，複数のプロセッサＰが，同一のキャッシュ装置（即ち，共有キャッシュ装置ＳＣ）に例えば同時にアクセスしてデータを読み書きすることができる。
【００５５】
このため，従来のように複数のキャッシュ装置間で整合性をとる必要がないので，例えばデータの更新が発生した場合などに，複数のプロセッサＰが通信回線１１を介してデータをやり取りしなくて済む。従って，プロセッサＰ間の通信量が激減するため，各々のプロセッサＰの処理速度が向上し，システム全体としてのスループットが高まる。さらに，プロセッサＰの設置数を増やした場合の処理能力の上昇効果が高く，拡張性に優れたデータ管理装置１０を提供できる。
【００５６】
また，同一のデータが異なるキャッシュ装置にキャッシュされるという冗長化を排除できるので，キャッシュメモリの利用効率が高まる。加えて，共有キャッシュ装置ＳＣが１つだけであるとともに，上記のようにデータはいずれか１つの外部記憶装置ＥＳに格納されるので，キャッシュメモリと外部記憶装置ＥＳの間でのデータの転送を例えば１度だけ行えばよい。このため，キャッシュメモリと外部記憶装置ＥＳの間での同一データの転送量が低減するので，外部記憶装置ＥＳの負荷を軽減することができる。
【００５７】
また，例えば１２８ＧＢクラスの大容量のキャッシュ装置は，非常に高価（１つの装置で例えば数億円以上もする場合もある。）であり，従来のように，かかるキャッシュ装置を複数設けると，データ管理装置を構築するのに要するコストが膨大となってしまう。これに対して，本実施形態にかかるデータ管理装置１０内には，キャッシュ装置として共有キャッシュ装置ＳＣを例えば１つだけ設ければよいので，従来と比して，コストを大幅に低減できる。
【００５８】
次に，図４に基づいて，上記のような共有キャッシュ装置ＳＣにキャッシュされている情報の構成例について説明する。なお，図４は，本実施形態にかかる共有キャッシュ装置ＳＣにキャッシュされている情報の構成例を模式的に示す説明図である。
【００５９】
図４に示すように，共有キャッシュ装置ＳＣのキャッシュ領域は，例えば，実際に処理されるデータがキャッシュされる処理データ用キャッシュ領域４０と，データ管理装置１０の運用に必要なメタデータがキャッシュされるメタデータ用キャッシュ領域５０とに大別される。
【００６０】
処理データ用キャッシュ領域４０は，データ管理装置１０がサービスとして提供するデータ（実際の処理データ）がキャッシュされる領域であり，キャッシュ領域の容量の例えば大部分を占める。この処理データ用キャッシュ領域４０にデータをキャッシュすることにより，共有キャッシュ装置ＳＣは，プロセッサＰと外部記憶装置ＥＳとの間のデータ伝送ロスを低減するためのディスクキャッシュとして機能することができる。
【００６１】
この処理データ用キャッシュ領域４０は，例えばＮ個のキャッシュ領域ＣＡ１〜ＣＡｎ−１（以下では，キャッシュ領域ＣＡという場合もある。）に分割されている。個々のキャッシュ領域ＣＡの容量は例えば６４ＫＢ（キロバイト）であり，例えば固定サイズとなっている。それぞれのキャッシュ領域ＣＡは，先頭から順に領域番号（０〜ｎー１）がふられており，かかる領域番号を用いていずれのキャッシュ領域ＣＡであるかが参照される。キャッシュされる１つのデータは，１つのキャッシュ領域ＣＡに収まるサイズであれば１つのキャッシュ領域ＣＡにキャッシュされ，１つのキャッシュ領域ＣＡより大きいサイズであれば複数のキャッシュ領域ＣＡにまたがってキャッシュされる。
【００６２】
また，メタデータ用キャッシュ領域５０は，上記データを管理するために必要なメタデータがキャッシュされる領域である。このメタデータとしては，例えば，データ管理テーブルＭＤ１，キャッシュ領域使用状況ビットマップＭＤ２，キャッシュ領域リストＭＤ３などが含まれている。以下に，この例えば３つのメタデータについて詳細に説明する。
【００６３】
まず，図５に基づいて，本実施形態にかかるデータ管理テーブルＭＤ１について説明する。なお，図５は，本実施形態にかかるデータ管理テーブルＭＤ１の構造を模式的に示す説明図である。
【００６４】
図５に示すように，データ管理テーブルＭＤ１は，データ管理装置１０内に存在するすべてのデータを識別して管理するための情報を保持するテーブルである。このデータ管理テーブルＭＤ１は，例えば固定長のレコードの集まりとなっており，例えば１つのレコードエントリーが例えば１つのデータに対応している。従って，図５の例では，例えばｍ個のレコードが登録されているので，データ管理装置１０内には例えばｍ個のデータが存在していることになる。
【００６５】
レコードエントリーの中には，例えば，▲１▼データ名，▲２▼ホスト名，▲３▼ファイル名，▲４▼最終アクセス時刻，▲５▼キャッシュ領域リストの先頭位置，などという属性が存在し，対応するデータについての各種情報が記憶されている。
【００６６】
▲１▼データ名
データ名は，クライアント端末３から与えられたデータ名であり，例えば任意の文字列である。なお，１つのデータ管理装置１０内に同一の名前が存在することは許されない。
【００６７】
▲２▼ホスト名
ホスト名は，データが格納されている外部記憶装置ＥＳと接続されているプロセッサＰの名前である。外部記憶装置ＥＳと共有キャッシュ装置ＳＣとの間のデータのコピー等の処理は，外部記憶装置ＥＳと接続されているプロセッサＰの役割である。ホスト名は，この処理を担当しているのがいずれのプロセッサＰであるかを識別するために用いられる。
【００６８】
▲３▼ファイル名
ファイル名は，当該データが記録されている外部記憶装置ＥＳ上のファイルとしての名前である。
【００６９】
▲４▼最終アクセス時刻
最終アクセス時刻は，いずれかのクライアント端末３が当該データに対して，何らかのアクセスを最後に行った時刻である。処理データ用キャッシュ領域４０が不足した場合には，この最終アクセス時刻に基づいて，処理データ用キャッシュ領域４０上から削除するデータが決定される。
【００７０】
▲５▼キャッシュ領域リストの先頭位置
キャッシュ領域リストの先頭位置は，後述するキャッシュ領域リストＭＤ３の先頭エントリーの位置を記録した値（領域番号）である。なお，この値が例えば負の値の場合は無効を意味し，キャッシュ領域リストＭＤ３内に当該データの情報が存在しないことを意味する。
【００７１】
このようなデータ管理テーブルＭＤ１を設けることにより，データ管理装置１０内のすべてのデータをもれや重複がないように統一管理できる。
【００７２】
次に，図６に基づいて，本実施形態にかかるキャッシュ領域使用状況ビットマップＭＤ２について説明する。なお，図６は，本実施形態にかかるキャッシュ領域使用状況ビットマップＭＤ２の構成を模式的に示す説明図である。
【００７３】
図６に示すように，キャッシュ領域使用状況ビットマップＭＤ２は，上記処理データ用キャッシュ領域４０を例えばｎ個に分割した各キャッシュ領域ＣＡが，使用されているか否かを表す情報を保持している。各キャッシュ領域ＣＡが使用されているか否かは，図６では，説明の便宜のため白丸と黒丸で表現してあるが，実際には例えば１ビットのフラグで表現される（例えば，未使用であれば「０」，使用中であれば「１」など）。従って，処理データ用キャッシュ領域４０全体の使用状況を表すために，キャッシュ領域使用状況ビットマップＭＤ２は，例えばｎビットのビットマップとなる。また，キャッシュ領域使用状況ビットマップＭＤ２の各ビットの先頭からの相対位置が，分割された各キャッシュ領域ＣＡの領域番号（０〜ｎ−１）に対応するので，いずれのキャッシュ領域ＣＡの使用状況であるかを識別できる。例えば，図６の例では，１番目の位置のビット（図６の最も左の黒丸）はキャッシュ領域ＣＡ１の使用状況を示しており，この場合には黒丸であるので使用中である。
【００７４】
このようなキャッシュ領域使用状況ビットマップＭＤ２を設けることで，処理データ用キャッシュ領域４０の使用状況を一元管理できるので，データをキャッシュする際に，空き領域の検索に要する時間を短縮できる。
【００７５】
次に，図７に基づいて，本実施形態にかかるキャッシュ領域リストＭＤ３について説明する。なお，図７は，本実施形態にかかるキャッシュ領域リストＭＤ３の構成を模式的に示す説明図である。
【００７６】
図７に示すように，キャッシュ領域リストＭＤ３は，１つのデータ中のどの位置がキャッシュ領域ＣＡにキャッシュされているかという情報を保持している。
【００７７】
データの容量が大きく，１つのキャッシュ領域ＣＡに収まりきらない場合には，１つのデータに対して複数のキャッシュ領域ＣＡが割り当てられる。このような場合には，１つのデータに関してキャッシュ先となっている複数のキャッシュ領域ＣＡを相互にリンクしておく必要がある。そこで，図７に示すような，リンクリストの形式でキャッシュ領域リストＭＤ３が設けられている。
【００７８】
キャッシュ領域リストＭＤ３には，上記のような例えばｎ個のキャッシュ領域ＣＡに対応して，例えばｎ個のエントリーが設けられている。即ち，キャッシュ領域リストＭＤ３のエントリーの総数は，例えば，処理データ用キャッシュ領域４０の分割総数に等しい。また，かかるエントリーのキャッシュ領域リストＭＤ３上での先頭からの相対位置によって，そのエントリーが対応するキャッシュ領域ＣＡを表すことができる。つまり，キャッシュ領域リストＭＤ３の先頭からｋ番目のエントリーは，キャッシュ領域ＣＡｋ（領域番号ｋのキャッシュ領域ＣＡ）が保持しているデータについての情報を有することになる。
【００７９】
かかるキャッシュ領域リストＭＤ３の１つのエントリーには，例えば，▲１▼データ位置，▲２▼データサイズ，▲３▼前エントリー位置，▲４▼次エントリー位置，などというの属性が存在し，対応するデータについてのリンク情報が記録されている。
【００８０】
▲１▼データ位置
データ位置は，そのエントリーに対応するキャッシュ領域ＣＡに，１つのデータ内のどの部分がキャッシュされているかを表す情報であり，当該部分のデータの先頭からの相対位置で表される。このデータ位置の単位は，処理データ用キャッシュ領域４０の分割サイズ（１つのキャッシュ領域ＣＡのサイズ）となり，例えば６４ＫＢである。つまり，例えば２５６ＫＢのデータが例えば４個のキャッシュ領域ＣＡに分けてキャッシュされる場合の例を挙げると，例えば，先頭エントリーのデータ位置は「０」×６４ＫＢとなり，次のエントリーのデータ位置は「１」×６４ＫＢとなり，その次のエントリーのデータ位置は「２」×６４ＫＢとなる。
【００８１】
▲２▼データサイズ
データサイズは，そのエントリーに対応するキャッシュ領域ＣＡが保持しているデータの部分の，有効データサイズを示す。通常，この値は１つのキャッシュ領域ＣＡのサイズ，つまり，例えば６４ＫＢとなるが，データ全体の最後部では，１つのキャッシュ領域ＣＡのサイズより小さくなる場合がある。
【００８２】
▲３▼前エントリー位置，▲４▼次エントリー位置
前エントリー位置と次エントリー位置は，リンクリストを構築するための情報であり，そのエントリーの前のエントリー位置と，次のエントリー位置を表している。詳細には，前エントリー位置は，そのエントリーに対応するキャッシュ領域ＣＡが保持しているデータの部分の直前の部分を，保持しているキャッシュ領域ＣＡに対応するエントリーの位置を表す。また，次エントリー位置は，そのエントリーに対応するキャッシュ領域ＣＡが保持しているデータの部分の直後の部分を，保持しているキャッシュ領域ＣＡに対応するエントリーの位置を表す。なお，エントリーの位置とは，上記のように，そのエントリーが，キャッシュ領域リストＭＤ３の先頭から何番目にあるかを示す数値である。
【００８３】
この前エントリー位置および次エントリー位置を，具体例を挙げてより詳細に説明する。例えば，ある１つのデータが，例えばキャッシュ領域ＣＡ０，キャッシュ領域ＣＡ３，キャッシュ領域ＣＡ７に，かかる順序でキャッシュされているとする。この場合，キャッシュ領域ＣＡ３に対応するエントリーに関し，自身のエントリー位置は「３」であり，前エントリー位置は「０」であり，次エントリー位置は「７」となる。
【００８４】
また，このような前エントリー位置が無効の値（例えば負の値）の場合には，当該エントリーが先頭のエントリーであることを示す。また，次エントリー位置が無効の値（例えば負の値）の場合には，当該エントリーが最終のエントリーであることを示す。
【００８５】
このようなキャッシュ領域リストＭＤ３を設けることで，例えば１つのデータを複数のキャッシュ領域ＣＡに分散させてキャッシュできるので，空き領域を低減して，キャッシュメモリを効率的に利用することができる。
【００８６】
＜データ管理装置の処理動作＞
次に，上記のような構成のデータ管理装置１０の処理動作について説明する。以下では，データ管理装置１０の代表的な処理の例として，新規データの作成処理，既存データの書き込み処理，既存データの読み出し処理という３つの処理を，それぞれ詳細に説明する。なお，以下の処置方法の説明では，プロセッサＰ１に接続されたクライアント端末３からの要求を処理する例について説明するが，プロセッサＰ２に接続されたクライアント端末３からの要求を処理する場合も略同一の手順で処理される。
【００８７】
＜新規データの作成処理＞
まず，図８に基づいて，本実施形態にかかるデータ管理装置１０の新規データの作成処理について説明する。なお，図８は，本実施形態にかかるデータ管理装置１０の新規データの作成処理の動作フローを示すフローチャートである。
【００８８】
図８に示すように，まず，ステップＳ１００では，プロセッサＰ１が，新規作成しようとするデータのデータ名と同じデータ名のデータが存在するか否かを判定する（ステップＳ１００）。プロセッサＰ１に接続されたクライアント端末３からの要求により新規にデータを作成する場合，プロセッサＰ１は，システム内に同じ名前のデータが既に存在するか否かを判定する。この判定は，プロセッサＰ１の書き込み処理部２３が，例えば，データ管理テーブルＭＤ１のレコードエントリーを順次取り出して，クライアント端末３が指定してきたデータ名と，すべての既存データ名とを比較することによって実行される。同じデータ名のデータが存在する場合には，ステップＳ１０１に進み，例えば，クライアント端末３に対してデータ名が重複する旨のエラーが戻され，本動作フローは終了する。一方，同じデータ名のデータが存在しない場合には，ステップＳ１０２に進む。
【００８９】
次いで，ステップＳ１０２では，データ管理テーブルＭＤ１上に新たなエントリーが作成される（ステップＳ１０２）。プロセッサＰ１の書き込み処理部２３は，共有キャッシュ装置ＳＣにアクセスして，データ管理テーブルＭＤ１に新しいエントリーを確保する。なお，この時点では，当該データに対してキャッシュ領域ＣＡが新たに割り当てられることはない。
【００９０】
さらに，ステップＳ１０４では，プロセッサＰ１がプロセッサＰ２に外部記憶装置ＥＳ２の容量を問い合わせる（ステップＳ１０４）。プロセッサＰ１の書き込み処理部２３は，プロセッサＰ２に対して，プロセッサＰ２に接続された外部記憶装置ＥＳ２の空き容量を問い合わせる。この問い合わせは，例えば，書き込み処理部２３が，通信回線１１を介して，空き容量照会信号をプロセッサＰ２に送信し，プロセッサＰ２からの応答信号を受け取る形式で行われる。
【００９１】
その後，ステップＳ１０６では，プロセッサＰ１が，いずれの外部記憶装置ＥＳが空いているかを判定する（ステップＳ１０６）。上記ステップＳ１０４での問い合わせにより，プロセッサＰ１は外部記憶装置ＥＳ２の空き容量の情報を取得できる。また，自身に接続された外部記憶装置ＥＳ１の空き容量は，自身で確認して既知である。よって，プロセッサＰ１の書き込み処理部２３は，外部記憶装置ＥＳ１の空き容量と外部記憶装置ＥＳ２の空き容量のいずれが大きいかを比較できる。この結果，外部記憶装置ＥＳ１の空き容量が大きいと判定された場合にはステップＳ１０８に進み，一方，外部記憶装置ＥＳ２の空き容量が大きいと判定された場合にはステップＳ１１０に進む。
【００９２】
次いで，ステップＳ１０８では，外部記憶装置ＥＳ１に当該データが格納される（ステップＳ１０８）。プロセッサＰ１の書き込み処理部２３は，外部記憶装置ＥＳ１に新たにファイルを作成し，このファイルを当該データに割り当てる。これにより，外部記憶装置ＥＳ１に新規作成されるデータが格納される。
【００９３】
一方，ステップＳ１１０では，外部記憶装置ＥＳ２に当該データが格納される（ステップＳ１１０）。プロセッサＰ１の処理依頼部２４は，プロセッサＰ２に対して外部記憶装置ＥＳへの当該データの書き込み処理を依頼する。この依頼を受けると，プロセッサＰ２の書き込み処理部２３は，外部記憶装置ＥＳ２に新たにファイルを作成し，このファイルを当該データに割り当てる。
【００９４】
その後，ステップＳ１１２では，データ管理テーブルＭＤ１の内容が設定される（ステップＳ１１２）。プロセッサＰ１は，上記ステップＳ１０２で新しく作成したデータ管理テーブルＭＤ１のレコードエントリーを，初期状態に設定して新規データ作成処理を終了する。データ管理テーブルＭＤ１のレコードエントリーの初期状態は，例えば，以下の通りである。
▲１▼データ名＝指定されたデータ名
▲２▼ホスト名＝データを格納した外部記録装置ＥＳに対応したプロセッサＰの名前
▲３▼ファイル名＝データに割り当てあてられた外部記録装置ＥＳ上のファイル名
▲４▼最終アクセス時刻＝このエントリーの初期化を行った時刻
▲５▼キャッシュ領域リストの先頭位置＝−１（無効）
なお，上記のような新規データ作成時においては，当該データは，外部記憶装置ＥＳには格納されるが，例えば，共有キャッシュ装置ＳＣにはキャッシュされない。
【００９５】
＜既存データの書き込み処理＞
次に，図９に基づいて，本実施形態にかかるデータ管理装置１０の既存データの書き込み処理について説明する。なお，図９は，本実施形態にかかるデータ管理装置１０の既存データの書き込み処理の動作フローを示すフローチャートである。
【００９６】
図９に示すように，まず，ステップＳ２００では，プロセッサＰ１が，指定されたデータ名と同じデータ名のデータが存在するか否かを判定する（ステップＳ２００）。プロセッサＰ１に接続されたクライアント端末３からの要求により既存データを更新する場合，プロセッサＰ１は，指定されたデータ名のデータがシステム内に実在するか否かを判定する。この判定は，プロセッサＰ１の書き込み処理部２３が，例えば，データ管理テーブルＭＤ１のレコードエントリーを順次取り出して，クライアント端末３が指定してきたデータ名と，既存のデータ名とを比較することによって実行される。同じデータ名のデータが存在しない場合には，ステップＳ２０１に進み，クライアント端末３に対して，指定されたデータ名のデータが存在しない旨のエラーが戻され，本動作フローは終了する。一方，同じデータ名のデータが存在する場合には，ステップＳ２０２に進む。
【００９７】
次いで，ステップＳ２０２では，書き込みが指定されたデータ部分が共有キャッシュ装置ＳＣにキャッシュされているか否かが判定される。（ステップＳ２０２）。プロセッサＰ１の書き込み処理部２３は，まず，データ管理テーブルＭＤ１の当該データのレコードエントリーから，キャッシュ領域リストＭＤ３の先頭エントリーの位置を取り出す。次いで，この先頭エントリーの位置に基づいて，キャッシュ領域リストＭＤ３のリンクリストをたどりながら，書き込みを指定されたデータ部分（即ち，当該データのうち更新される部分であり，当該データの一部若しくは全部）が共有キャッシュ装置ＳＣの処理データ用キャッシュ領域４０上にキャッシュされているか否かを判定する。この結果，処理データ用キャッシュ領域４０上に該当データ部分がキャッシュされていると判定された場合には，ステップＳ２１２に進む。一方，キャッシュされていないと判定された場合には，ステップＳ２０４に進む。
【００９８】
さらに，ステップＳ２０４では，処理データ用キャッシュ領域４０上に空き領域があるか否かが判定される（ステップＳ２０４）。プロセッサＰ１の書き込み処理部２３は，キャッシュ領域使用状況ビットマップＭＤ２を参照して，処理データ用キャッシュ領域４０上に例えば，当該データをキャッシュする分の空きがあるか否かを判定する。この結果，空きがあると判定された場合にはステップＳ２０８に進み，空きがないと判定された場合にはステップＳ２０６に進む。
【００９９】
その後，ステップＳ２０６では，処理データ用キャッシュ領域４０上の古いキャッシュ領域ＣＡが開放される（ステップＳ２０６）。プロセッサＰ１の書き込み処理部２３は，データ管理テーブルＭＤ１のエントリー内の最終アクセス時刻に基づいて，例えば最も長い時間アクセスされていないデータを検出し，そのデータをキャッシュ領域ＣＡ上から破棄する。これにより，古いデータがキャッシュされていた１または２以上のキャッシュ領域ＣＡが開放され，処理データ用キャッシュ領域４０上に空きが発生する。
【０１００】
次いで，ステップＳ２０８では，処理データ用キャッシュ領域４０上に当該データを書き込む分のキャッシュ領域ＣＡが確保される（ステップＳ２０８）。元々空いていたキャッシュ領域ＣＡや，上記ステップＳ２０６で空きを領域となったキャッシュ領域ＣＡの中から，当該データを書き込む分の容量の１または２以上のキャッシュ領域ＣＡが確保される。書き込み処理部２３は，かかるキャッシュ領域ＣＡを当該データに対して新たに割り当てる。
【０１０１】
さらに，ステップＳ２１０では，キャッシュ領域リストＭＤ３上のエントリーが，新しく追加若しくは更新される。（ステップＳ２１０）。プロセッサＰ１の書き込み処理部２３は，上記ステップＳ２０８で新たなキャッシュ領域ＣＡを当該データに対して割り当てたことに伴い，キャッシュ領域リストＭＤ３に，例えばエントリーを追加する若しくは既存のエントリー内部の情報を更新するなどして，キャッシュ領域リストＭＤ３を当該データに対応したものに設定し直す。
【０１０２】
その後，ステップＳ２１２では，処理データ用キャッシュ領域４０上に該当データが書き込まれる（ステップＳ２１２）。プロセッサＰ１の書き込み処理部２３は，元々当該データがキャッシュされていた場合には，そのキャッシュ領域ＣＡ上に更新されるデータ部分を上書きする。また，上記ステップＳ２０８で，当該データを書き込むためのキャッシュ領域ＣＡが新たに確保された場合には，そのキャッシュ領域ＣＡ上に当該データを新たに書き込む。このような処理により，当該データが，共有キャッシュ装置ＳＣ上に，更新された内容でキャッシュされる。
【０１０３】
次いで，ステップＳ２１４では，当該データがいずれの外部記憶装置ＥＳのどのファイルに格納されているかが特定される（ステップＳ２１４）。共有キャッシュ装置ＳＣに更新されたデータがキャッシュされると，次に，外部記録装置ＥＳ上の既存のデータにこの更新を反映させる必要がある。このため，プロセッサＰ１の書き込み処理部２３は，いずれの外部記録装置ＥＳのどのファイルに，更新されたデータを書き込まなければならないかを特定する。この特定は，データ管理テーブルＭＤ１における，当該データに対応するレコードエントリー中のホスト名とファイル名に基づいて行われる。当該ホスト名が，プロセッサＰ１を指示していた場合にはステップＳ２１６に進み，プロセッサＰ２を指示していた場合にはステップＳ２１８に進む。
【０１０４】
さらに，ステップＳ２１６では，プロセッサＰ１が外部記憶装置ＥＳ１内の当該データを更新する（ステップＳ２１６）。プロセッサＰ１の書き込み処理部２３は，外部記憶装置ＥＳ１内のファイルの中から，上記ステップＳ２１４で特定されたファイルに当該データの更新内容を上書きする。
【０１０５】
一方，ステップＳ２１８では，プロセッサＰ１から依頼を受けたプロセッサＰ２が，外部記憶装置ＥＳ２内の当該データを更新する（ステップＳ２１８）。プロセッサＰ１の処理依頼部２４は，プロセッサＰ２に対して外部記憶装置ＥＳ２への当該データの更新処理を依頼する。この依頼を受けると，プロセッサＰ２の書き込み処理部２３は，外部記憶装置ＥＳ２内のファイルの中から，上記ステップＳ２１４で特定されたファイルに当該データの更新内容を上書きする。
【０１０６】
その後，ステップＳ２２０では，最終アクセス時刻が更新される（ステップＳ２２０）。例えばプロセッサＰ１の書き込み処理部２３は，上記ステップＳ２１６若しくはステップＳ２１８での外部記憶装置ＥＳへのデータの更新処理が終了した時点で，データ管理テーブルＭＤ１のレコードエントリー内の最終アクセス時刻を更新する。
【０１０７】
＜既存データの読み出し処理＞
次に，図１０に基づいて，本実施形態にかかるデータ管理装置１０の既存データの読み出し処理について説明する。なお，図１０は，本実施形態にかかるデータ管理装置１０の既存データの読み出し処理の動作フローを示すフローチャートである。
【０１０８】
図１０に示すように，まず，ステップＳ３００では，プロセッサＰ１が，指定されたデータ名と同じデータ名のデータが存在するか否かを判定する（ステップＳ３００）。プロセッサＰ１に接続されたクライアント端末３からの要求により既存データの読み出しを行う場合，プロセッサＰ１は，システム内に指定されたデータ名のデータが存在するか否かを判定する。この判定は，プロセッサＰ１の読み出し処理部２２が，例えば，データ管理テーブルＭＤ１のレコードエントリーを順次取り出して，クライアント端末３が指定してきたデータ名と，既存のデータ名とを比較することによって実行される。同じデータ名のデータが存在しない場合には，ステップＳ３０１に進み，クライアント端末３に対して，指定されたデータ名のデータが存在しない旨のエラーが戻され，本動作フローは終了する。一方，同じデータ名のデータが存在する場合には，ステップＳ３０２に進む。
【０１０９】
次いで，ステップＳ３０２では，読み出しが指定されたデータ部分が共有キャッシュ装置ＳＣにキャッシュされているか否かが判定される。（ステップＳ３０２）。プロセッサＰ１の読み出し処理部２２は，まず，データ管理テーブルＭＤ１の当該データのレコードエントリーから，キャッシュ領域リストＭＤ３の先頭エントリーの位置を取り出す。次いで，この先頭エントリーの位置に基づいて，キャッシュ領域リストＭＤ３のリンクリストをたどりながら，読み出しを指定されたデータ部分（即ち，当該データのうち読み出される部分であり，当該データの一部若しくは全部）が共有キャッシュ装置ＳＣの処理データ用キャッシュ領域４０上にキャッシュされているか否かを判定する。この結果，処理データ用キャッシュ領域４０上に該当データ部分が，キャッシュされていないと判定された場合には，ステップＳ３０４に進む。一方，キャッシュされていると判定された場合には，外部記憶装置ＥＳから当該データを読み出す必要がないので，ステップＳ３１８に進む。
【０１１０】
さらに，ステップＳ３０４では，処理データ用キャッシュ領域４０上に空き領域があるか否かが判定される（ステップＳ３０４）。プロセッサＰ１の読み出し処理部２２は，キャッシュ領域使用状況ビットマップＭＤ２を参照して，処理データ用キャッシュ領域４０上に例えば，当該データを外部記憶装置ＥＳから読み出してキャッシュする分の空きがあるか否かを判定する。この結果，空きがあると判定された場合にはステップＳ３０８に進み，空きがないと判定された場合にはステップＳ３０６に進む。
【０１１１】
その後，ステップＳ３０６では，処理データ用キャッシュ領域４０上の古いキャッシュ領域ＣＡが開放される（ステップＳ３０６）。プロセッサＰ１の読み出し処理部２２は，データ管理テーブルＭＤ１のエントリー内の最終アクセス時刻に基づいて，例えば最も長い時間アクセスされていないデータを検出し，そのデータをキャッシュ領域ＣＡ上から破棄する。これにより，古いデータがキャッシュされていた１または２以上のキャッシュ領域ＣＡが開放され，処理データ用キャッシュ領域４０上に空きが発生する。
【０１１２】
次いで，ステップＳ３０８では，処理データ用キャッシュ領域４０上に当該データを読み出す分のキャッシュ領域ＣＡが確保される（ステップＳ３０８）。元々空いていたキャッシュ領域ＣＡや，上記ステップＳ２０６で空きを領域となったキャッシュ領域ＣＡの中から，当該データを書き込む分の容量の１または２以上のキャッシュ領域ＣＡが確保される。読み出し処理部２２は，かかるキャッシュ領域ＣＡを，読み出す予定の当該データに対して新たに割り当てる。
【０１１３】
さらに，ステップＳ３１０では，キャッシュ領域リストＭＤ３上のエントリーが，新しく追加若しくは更新される。（ステップＳ３１０）。プロセッサＰ１の読み出し処理部２２は，上記ステップＳ３０８で新たなキャッシュ領域ＣＡを当該データに対して割り当てたことに伴い，キャッシュ領域リストＭＤ３に，例えばエントリーを追加する若しくは既存のエントリー内部の情報を更新するなどして，キャッシュ領域リストＭＤ３を当該データに対応したものに設定し直す。
【０１１４】
その後，ステップＳ３１２では，指定されたデータがいずれの外部記憶装置ＥＳのどのファイルに格納されているかが特定される（ステップＳ３１２）。処理データ用キャッシュ領域４０上のキャッシュ領域ＣＡが確保されると，次に，外部記録装置ＥＳから確保したキャッシュ領域ＣＡに対して，指定されたデータを読み込む必要がある。このため，プロセッサＰ１の読み出し処理部２２は，いずれの外部記録装置ＥＳのどのファイルから，当該データを読み込まなければならないかを特定する。この特定は，データ管理テーブルＭＤ１における，当該データに対応するレコードエントリー中のホスト名とファイル名に基づいて行われる。当該ホスト名が，プロセッサＰ１を指示していた場合にはステップＳ３１４に進み，プロセッサＰ２を指示していた場合にはステップＳ３１６に進む。
【０１１５】
次いで，ステップＳ３１４では，プロセッサＰ１が，外部記憶装置ＥＳ１から当該データを処理データ用キャッシュ領域４０上に読み出す（ステップＳ３１４）。プロセッサＰ１の読み出し処理部２２は，外部記憶装置ＥＳ１内の上記ステップＳ３１２で特定されたファイルから当該データを読み出し，上記ステップＳ３０８で割り当てられたキャッシュ領域ＣＡに当該データをキャッシュする。
【０１１６】
一方，ステップＳ３１６では，プロセッサＰ１から依頼を受けたプロセッサＰ２が，外部記憶装置ＥＳ２から当該データを処理データ用キャッシュ領域４０上に読み出す（ステップＳ３１６）。プロセッサＰ１の処理依頼部２４は，プロセッサＰ２に対して外部記憶装置ＥＳ２から当該データの読み出し処理を依頼する。この依頼を受けると，プロセッサＰ２の読み出し処理部２２は，外部記憶装置ＥＳ２内の上記ステップＳ３１２で特定されたファイルから当該データを読み出し，上記ステップＳ３０８で割り当てられたキャッシュ領域ＣＡに当該データをキャッシュする。
【０１１７】
さらに，ステップＳ３１８では，共有キャッシュ装置ＳＣ内の当該データが，クライアント端末３に対して送出される（ステップＳ３１８）。プロセッサＰ１の読み出し処理部２２は，送受信部２１を用いて処理データ用キャッシュ領域４０上にキャッシュされている当該データを，読み出しを要求してきたクライアント端末３に送出する。かかるデータを受け取ったクライアント端末３は，例えば，所定のアプリケーションなどを用いて，このデータを閲覧することができる。
【０１１８】
その後，ステップＳ３２０では，最終アクセス時刻が更新される（ステップＳ３２０）。例えばプロセッサＰ１の読み出し処理部２２は，上記ステップＳ３１８での送出処理が終了した時点で，データ管理テーブルＭＤ１のレコードエントリー内の最終アクセス時刻を更新する。
【０１１９】
以上のようなデータ管理装置１０の処理動作では，例えば２つのプロセッサＰ１，Ｐ２が，共有する同一の共有キャッシュ装置ＳＣにデータをキャッシュするので，従来のように複数のキャッシュ装置同士の整合性をとる必要がない。このため，データの更新時にプロセッサ間で更新データの受け渡しを行う必要がないので，データ管理装置１０の処理速度を向上させることができる。また，同じデータのコピーが複数キャッシュされたり，複数の外部記憶装置ＥＳに格納されたりすることがないので，共有キャッシュ装置ＳＣと外部記憶装置ＥＳの利用効率が向上し，システム全体としての記憶容量を低減することができる。さらに，コピーのための外部記憶装置ＥＳと共有キャッシュ装置ＳＣ間でのデータの転送回数が少ないので，外部記憶装置ＥＳにかかる負荷が軽減され，クラスタ・システムとして構成されたデータ管理装置１０のレスポンスを向上させることができる。なお，以上のような効果は，データ管理装置１０の取り扱うデータが，更新頻度が高く大容量なものである場合に，より顕著になる。
【０１２０】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明はかかる例に限定されない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１２１】
例えば，上記実施形態にかかるデータ管理装置１０は，例えば２組のプロセッサＰおよび外部記憶装置ＥＳを備える構成であったが，本発明はかかる例に限定されない，例えば，データ管理装置１０は，図１１に示すように，例えば３組以上の任意のｎ組のプロセッサＰおよび外部記憶装置ＥＳを具備していてもよい。この際，ｎ個のプロセッサＰは，相互に通信回線１１で結ばれ，入出力チャンネル１２を介して接続された例えば１つの共有キャッシュ装置ＳＣを共有するようにしてもよい。かかる構成により，より多くのプロセッサＰをクラスタリングして大規模な例えばサーバ環境を構築できるので，データ管理装置１０の処理能力が向上し，より多くのクライアント端末３からの要求に対応することができる。
【０１２２】
また，上記実施形態にかかるデータ管理装置１０では，複数のプロセッサＰに対応してそれぞれ外部記憶装置ＥＳが設けられていたが，本発明はかかる例に限定されず，外部記憶装置ＥＳは，必ずしもプロセッサＰと１対１で設けられなくてもよい。例えば，データ管理装置１０内に例えばプロセッサＰ１にのみ接続された例えば１つの大容量の外部記憶装置ＥＳを設けてもよい。また，図１１に示すように，複数のプロセッサＰが，例えば１または２以上の外部記憶装置ＥＳを共有する（即ち，外部記憶装置ＥＳを，すべてのプロセッサＰと接続して，いずれのプロセッサＰからもアクセス可能な共有外部記憶装置とする）ように構成してもよい。
【０１２３】
また，上記実施形態にかかるデータ管理装置１０では，共有キャッシュ装置ＳＣが例えば１つだけ設けられていたが，本発明はかかる例に限定されない，例えば，データ管理装置１０内に複数の共有キャッシュ装置ＳＣを設けて，各共有キャッシュ装置ＳＣを各プロセッサＰと例えば並列的に接続してもよい。これにより，共有キャッシュ装置ＳＣを多重化して，不意の共有キャッシュ装置ＳＣの故障に対応できるので，データ管理装置１０の信頼性が向上する。
【０１２４】
また，上記実施形態にかかるデータ管理装置１０では，複数のプロセッサＰ，１の共有キャッシュ装置ＳＣ，複数の外部記憶装置ＥＳがハードウェアとして別体に構成されていたが，本発明はかかる例に限定されない。例えば，外部記憶装置ＥＳは，外付けではなく，プロセッサＰの筐体内に組み込まれていてもよい。さらに，例えば，複数のプロセッサＰ，共有キャッシュ装置，複数の外部記憶装置ＥＳのすべてが，例えば，１つの筐体内に設けられる，若しくは，同一基板上に設けられるなどして，ハードウェア的に一体化されていてもよい。
【０１２５】
また，上記実施形態では，データ管理装置１０にサービスの提供（例えば，データの授受）を要求する手段として，ハードウェアとして別体に構成されたクライアント端末３を用いたが，本発明はかかる例に限定されない。例えば，かかる要求手段は，データ管理装置１０と一体に構成されたハードウェアなどであってもよく，或いは，例えばデータ管理装置１０やその他の機器にインストールされたソフトウエアなどで構成してもよい。
【０１２６】
また，データ管理装置１０は，読み書きするデータを加工するデータ加工部を備えるようにしてもよい。例えば，プロセッサＰが，このようなデータ加工部を備えることで，外部記憶装置ＥＳ若しくは共有キャッシュ装置ＳＣとの間で読み書きするデータに，各種の演算，集計，合成などの加工処置を施せるようにしてもよい。これにより，データ管理装置１０は，例えば，所望された態様に加工したデータをクライアント端末３に提供する，或いは，外部記憶装置ＥＳに加工したデータを格納して，外部記憶装置ＥＳの効率化を図ることができる。
【０１２７】
【発明の効果】
以上説明したように，本発明によれば，複数のプロセッサがキャッシュ装置を共有することにより，キャッシュデータを一元化できるので，プロセッサ間でデータの受け渡しを行う必要がない。従って，プロセッサの処理速度が向上して，データ管理装置全体のスループットが向上する。さらに，プロセッサの設置数を増やした場合における処理能力の上昇率がより高まるので，拡張性に優れたデータ管理装置を提供することができる。
【０１２８】
また，同じデータのコピーが複数キャッシュされることがないので，キャッシュ装置の利用効率を向上させることができる。また，外部記憶装置とキャッシュ装置間のデータの転送回数が減るため，外部記憶装置にかかる負荷が軽減され，データ管理装置のレスポンスが向上する。
【図面の簡単な説明】
【図１】図１は，第１の実施形態にかかるデータ管理装置が用いられる情報管理システム１の全体構成を示すブロック図である。
【図２】図２は，第１の実施形態にかかるデータ管理装置の構成を示すブロック図である。
【図３】図３は，第１の実施形態にかかるプロセッサの構成を示すブロック図である。
【図４】図４は，第１の実施形態にかかる共有キャッシュ装置にキャッシュされている情報の構成例を模式的に示す説明図である。
【図５】図５は，第１の実施形態にかかるデータ管理テーブルの構造を模式的に示す説明図である。
【図６】図６は，第１の実施形態にかかるキャッシュ領域使用状況ビットマップの構成を模式的に示す説明図である。
【図７】図７は，第１の実施形態にかかるキャッシュ領域リストの構成を模式的に示す説明図である。
【図８】図８は，第１の実施形態にかかるデータ管理装置の新規データの作成処理の動作フローを示すフローチャートである。
【図９】図９は，第１の実施形態にかかるデータ管理装置の既存データの書き込み処理の動作フローを示すフローチャートである。
【図１０】図１０は，第１の実施形態にかかるデータ管理装置の既存データの読み出し処理の動作フローを示すフローチャートである。
【図１１】図１１は，データ管理装置の変更例を示すブロック図である。
【図１２】図１２は，従来のデータ管理装置に適用される一般的なクラスタ・システムの構成例を示すブロック図である。
【図１３】図１３は，従来のデータ管理装置に適用される一般的なクラスタ・システムの構成例を示すブロック図である。
【符号の説明】
１　：　情報管理システム
３　：　クライアント端末
５　：　ネットワーク
１０　：　データ管理装置
１１　：　通信回線
１２，１３　：　入出力チャネル
２２　：　読み出し処理部
２３　：　書き込み処理部
４０　：　処理データ用キャッシュ領域
５０　：　メタデータ用キャッシュ領域
Ｐ　：　プロセッサ
ＳＣ　：　共有キャッシュ装置
ＥＳ　：　外部記憶装置
ＭＤ１　：　データ管理テーブル
ＭＤ２　：　キャッシュ領域使用状況ビットマップ
ＭＤ３　：　キャッシュ領域リスト
【図１】
2004054845.tif 000003
【図２】
2004054845.tif 000004
【図３】
2004054845.tif 000005
【図４】
2004054845.tif 000006
【図５】
2004054845.tif 000007
【図６】
2004054845.tif 000008
【図７】
2004054845.tif 000009
【図８】
2004054845.tif 000010
【図９】
2004054845.tif 000011
【図１０】
2004054845.tif 000012
【図１１】
2004054845.tif 000013
【図１２】
2004054845.tif 000014
【図１３】
2004054845.tif 000015