JP2004054845A - Data management device - Google Patents
Data management device Download PDFInfo
- Publication number
- JP2004054845A JP2004054845A JP2002215210A JP2002215210A JP2004054845A JP 2004054845 A JP2004054845 A JP 2004054845A JP 2002215210 A JP2002215210 A JP 2002215210A JP 2002215210 A JP2002215210 A JP 2002215210A JP 2004054845 A JP2004054845 A JP 2004054845A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- processor
- external storage
- processors
- 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.)
- Withdrawn
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は,データ管理装置に関し,特に,クラスタ・システムとして構成されたデータ管理装置に関する。
【0002】
【従来の技術】
ハードディスク等の外部記憶装置に多様なデータを保管し,かかるデータを用いてクライアントに対して種々のサービスを提供する装置として,ファイルサーバやデータベースサーバなどといったデータ管理装置が多用されている。近年,このデータ管理装置においては,より多くのクライアントに対してサービスを提供するために,独立して動作する複数のプロセッサ(一般的にはコンピュータ)を高速ラインで並列的に接続するクラスタ化(clustering)という手法が用いられている。データ管理装置をこのようなクラスタ・システム(cluster system)として構成することによって,システム全体の信頼性を高め,プロセッサにかかる負荷を分散することができる。以下に,図12および図13に基づいて,データ管理装置に適用される一般的なクラスタ・システムの構成例について説明する。
【0003】
図12に示す構成例では,複数(例えば2つ)のプロセッサP1’,P2’が,専有のキャッシュ装置(例えばディスクキャッシュ)SC1’,SC2’と,同一の内容のデータが格納されている専有の外部記憶装置ES1’,ES2’とをそれぞれ備えている。各プロセッサP1’,P2’は,対応する外部記憶装置ES1’,ES2’内に格納されているデータの一部コピーを,自身が専有しているキャッシュ装置SC1’,SC2’にキャッシュすることで,多くのクライアント端末からの要求を処理する。
【0004】
しかしながら,このようなシステム構成では,データの更新が発生した場合,すべての外部記憶装置内のデータを一致させるためと,すべてのキャッシュ装置の記憶内容を一致させるために,プロセッサ間で大量のデータ通信を行わなければならないという問題があった。このため,かかるシステム構成は,データが頻繁に更新される用途には向いていなかった。また,すべての外部記憶装置が同一のデータを格納しているため,外部記憶装置の利用効率が悪いだけでなく,各プロセッサが同一のデータのコピーをそれぞれキャッシュするため,キャッシュ装置の利用効率も悪いという問題があった。
【0005】
また,図13に示す構成例では,複数のプロセッサP1’,P2’は,キャッシュ装置SC1’,SC2’をそれぞれ専有しているとともに,1つの外部記憶装置ES’を共有している。各プロセッサP1’,P2’は,共有している外部記憶装置ES’内に格納されているデータの一部コピーを,自身が専有しているキャッシュ装置SC1’,SC2’にキャッシュすることで,多くのクライアント端末からの要求を処理している。
【0006】
しかしながら,このようなシステム構成でも,データの更新が発生した場合,すべてのキャッシュ装置の記憶内容を一致させるために,プロセッサ間で大量の通信を行わなければならないという問題があった。また,すべてのプロセッサが,自身が専有しているキャッシュ装置に同一のデータをキャッシュするため,キャッシュ装置の利用効率が悪いという問題も依然として残っていた。さらに,キャッシュ装置がプロセッサごとに独立して複数存在するため,同一データの転送が各キャッシュ装置と1つの外部記憶装置との間で何度も発生するので,外部記憶装置の負荷が高くなってしまうという欠点もあった。加えて,高価な大容量のキャッシュ装置を複数設けなければならないので,装置の総コストが増大してしまうという問題もあった。
【0007】
【発明が解決しようとする課題】
本発明は,上記問題点に鑑みてなされたものであり,本発明の目的は,複数のプロセッサ間の通信量を低減して高速処理を可能とするとともに,キャッシュ装置の利用効率を向上させ,低コスト化を図ることが可能な,新規かつ改良されたデータ管理装置を提供することである。
【0008】
【課題を解決するための手段】
上記課題を解決するため,本発明の第1の観点によれば,外部からの要求に応じて,データの書き込み処理および読み出し処理を行う複数のプロセッサと;データが格納される1または2以上の外部記憶装置と;複数のプロセッサによって共有され,少なくとも外部記憶装置に読み書きされるデータを一時記憶する共有キャッシュ装置と;を備えることを特徴とする,データ管理装置が提供される。
【0009】
かかる構成により,プロセッサは,外部記憶装置にデータを書き込んで格納し,また,外部記憶装置に格納されたデータを読み出すことができる。さらに,プロセッサは,外部記憶装置から読み出したデータ若しくは外部記憶装置に書き込むデータを,共有キャッシュ装置にキャッシュすることができる。これにより,プロセッサは,共有キャッシュ装置にキャッシュされたデータを高速に読み出して,読み出し要求した外部に提供できるとともに,外部から書き込み要求されたデータを高速に共有キャッシュ装置に書き込むことができる。
【0010】
また,上記構成により,複数のプロセッサが共有キャッシュ装置を共有するので,1のプロセッサが共有キャッシュ装置上にキャッシュしたデータを,他のプロセッサが読み出したり,書き換えたりすることができる。このように,データ管理装置内でキャッシュされるすべてのデータを共有キャッシュ装置内に統一できる。よって,データの更新を行う際に,従来のように複数のキャッシュ装置間でキャッシュ内容の整合性をとる必要がないので,プロセッサ間でデータを受け渡す必要が無くなる。また,同一のデータのコピーが複数キャッシュされることがないので,キャッシュ装置の利用効率が高まる。さらに,外部記憶装置とキャッシュ装置間でのデータの転送回数も低減できる。
【0011】
また,上記共有キャッシュ装置は,複数のプロセッサによって同時にアクセス可能である,如く構成すれば,外部からの複数の要求があった場合に,複数のプロセッサが同時に動作できるので,データ管理装置の処理能力が向上する。
【0012】
また,上記共有キャッシュ装置は,半導体ディスクキャッシュである,如く構成すれば,ハードディスクなどからなる外部記憶装置と比べて,共有キャッシュ装置のレスポンスが大幅に向上する。
【0013】
また,上記共有キャッシュ装置は,複数のプロセッサに外付けされて設けられる,如く構成すれば,共有キャッシュ装置をプロセッサから容易に分離できるので,共有キャッシュ装置の交換,修理,容量変更などのメンテナンスを迅速かつ容易に行うことができる。
【0014】
また,上記外部記憶装置は,複数のプロセッサに対応して設けられている,如く構成すれば,プロセッサごとに複数の外部記憶装置を設けることで,個々の外部記憶装置にかかる負荷を分散することができる。また,各プロセッサが対応する外部記憶装置に同時にアクセスして読み書きできるので,全体としてプロセッサと外部記憶装置間での読み書きの処理速度が向上する。
【0015】
また,上記共有キャッシュ装置は,さらに,データを管理するためのメタデータを一時記憶できる,如く構成すれば,外部記憶装置および共有キャッシュ装置に記憶されているデータのアドレス管理やキャッシュ領域の使用状況,キャッシュ領域リンクリストなどのメタデータを,共有キャッシュ装置上に集中させて,統一管理することができる。このため,各プロセッサは,かかる共有キャッシュ装置上のメタデータに基づいて,迅速にデータの読み書き処理を実行できる。
【0016】
【発明の実施の形態】
以下に添付図面を参照しながら,本発明の好適な実施の形態について詳細に説明する。なお,本明細書及び図面において,実質的に同一の機能構成を有する構成要素については,同一の符号を付することにより重複説明を省略する。
【0017】
(第1の実施の形態)
以下に,本発明の第1の実施形態にかかるデータ管理装置について説明する。
【0018】
まず,図1に基づいて,本実施形態にかかるデータ管理装置が用いられる情報管理システムの全体構成について説明する。なお,図1は,本実施形態にかかるデータ管理装置10が用いられる情報管理システム1の全体構成を示すブロック図である。
【0019】
図1に示すように,本実施形態にかかる情報管理システム1は,例えば複数のクライアント端末3−1,3−2,・・・,3−n(以下では,クライアント端末3という場合もある。)と,例えば1つのデータ管理装置10とが,ネットワーク5を介して接続されている。このように,情報管理システム1は,クライアント端末3を例えばクライアントコンピュータとし,データ管理装置10を例えばサーバコンピュータとするクライアント/サーバシステムとして構成されており,クライアント端末3のユーザに対して,データ管理装置10に格納されているデータを用いて様々なサービスを提供することができる。
【0020】
クライアント端末3は,サービスの提供を依頼する側の端末装置であり,例えば,パーソナルコンピュータ等の汎用コンピュータや,携帯端末,携帯電話,PHS等の移動体端末,固定電話,FAX若しくは情報家電などで構成される。このクライアント端末3は,例えば,マウス,キーボード,各種ボタン等の入力装置(図示せず。)と,モニタ,スピーカ等の出力装置(図示せず。)などを備えている。
【0021】
クライアント端末3のユーザは,この入力装置を利用して,要求するサービスの内容をクライアント端末3に入力可能である。クライアント端末3は,かかるユーザの要求が入力されると,クライアント要求信号を,通信装置(図示せず。)を用いてデータ管理装置10に送信する。このクライアント要求信号は,例えばユーザの要求内容を表す信号であり,例えば新規登録したいデータ情報や更新データ情報及びこれらの識別情報,若しくは読み出して欲しいデータの識別情報などを含む。かかるクライアント要求信号は,例えばユーザの入力に基づいて例えばクライアント端末3内のアプリケーションで作成される。なお,クライアント端末3は,上記のようなユーザの入力に因らずとも,例えばデータ管理装置10に対してクライアント要求信号を自動送信するように構成されてもよい。
【0022】
一方,クライアント端末3は,通信装置を用いてデータ管理装置10が送信した各種データを受信すると,出力装置を用いてかかるデータをユーザに対して出力(例えば画像表示,音声出力等)できる。
【0023】
ネットワーク5は,例えば,専用回線,インターネット,LAN(LocalArea Network),WAN(Wide Area Network),WLL(Wireless Local Loop),衛星通信回線網,電話回線網(携帯電話回線網を含む。),ケーブルTV回線網及び有線放送網等の有線・無線を問わない各種の公衆回線網若しくは専用回線網などで構成される。なお,クライアント端末3とデータ管理装置10を例えば1つの筐体内に設ける場合に,双方を接続するATA(AT Attachment),SCSI(Small Computer System Interface)等のインターフェースに対応したケーブルもネットワーク5に含むものとする。
【0024】
データ管理装置10は,例えば,大量のデータを蓄積して保管し,例えばクライアント端末3からの要求に応じて必要なデータを送出するサーバ装置などであり,例えば,ファイルサーバ,データベースサーバ,メールサーバなどである。このデータ管理装置10は,例えば,蓄積した各種データを集中管理し,修正,更新,検索,計算処理等を統合的に処理し,またデータの保護を行うためのデータベースを管理することができる。かかるデータ管理装置10は,複数のプロセッサ等をクラスタリングしたクラスタ・システムとして構成されるが,詳細については後述する。
【0025】
以上のような構成の情報管理システム1は,クライアント端末3からの要求に基づいて,データ管理装置10が多様な情報を蓄積,送信,転送,加工処理若しくは提供などする多様なサービスを提供することができる。このサービスの例としては,例えば,動画像や音楽,文字情報等の大容量メディア情報を提供,管理,配信などするメディア情報管理サービス,電子メールサービス,消費者情報やマーケティング情報等の各種情報を検索・分析するサービスなどが挙げられる。
【0026】
次に,図2に基づいて,本実施形態にかかるデータ管理装置10の構成について詳細に説明する。なお,図2は,本実施形態にかかるデータ管理装置10の構成を示すブロック図である。
【0027】
図2に示すように,データ管理装置20は,例えば2つのプロセッサP1,P2(以下では,プロセッサPという場合もある。)と,各プロセッサP1,P2に対応して設けられた例えば2つの外部記憶装置ES1,ES2(以下では,外部記憶装置ESという場合もある。)と,本実施形態にかかる大きな特徴である共有キャッシュ装置SCとを備える。
【0028】
<プロセッサ>
プロセッサPは,外部記憶装置ESおよび共有キャッシュ装置SCに対するデータの書き込み処理および読み出し処理などの各種処理を行う処理装置であり,例えばコンピュータなどで構成される。
【0029】
ここで,図3に基づいて,プロセッサPの構成についてより詳細に説明する。なお,図3は,本実施形態にかかるプロセッサPの構成を示すブロック図である。
【0030】
図3に示すように,プロセッサPは,送受信部21と,読み出し処理部22と,書き込み処理部23と,処理依頼部24と,制御部25と,記憶部26と,を備える。
【0031】
送受信部21は,外部や他のプロセッサPとの間で例えばネットワーク5や通信回線11,入出力チャネル12,13を介して,各種情報の送受信を行う機能を有する。例えば,この送受信部21は,クライアント端末3から例えばネットワーク5を介してクライアント要求信号を受信するとともに,読み出したデータをクライアント端末3に送信する。また,送受信部21は,外部記憶装置ESや共有キャッシュ装置SCとの間で読み書きするデータを送受信する。さらに,この送受信部21は,他のプロセッサPとの間で後述する処理依頼信号を送受信する。
【0032】
読み出し処理部22は,共有キャッシュ装置SC若しくは外部記憶装置ESからデータを読み出す機能を有する。より詳細には,読み出し処理部22は,後述するデータ管理テーブルに基づいて,読み出し要求されたデータが共有キャッシュ装置SCにキャッシュされているか否かを判定し,キャッシュされている場合には共有キャッシュ装置SCから当該データを読み出してクライアント端末3に送出する。一方,キャッシュされていない場合には,格納先の外部記憶装置ESを特定した後,かかる外部記憶装置ESから当該データを共有キャッシュ装置SC上に読み出してキャッシュした上で,クライアント端末3に対して送出する。
【0033】
なお,上記のような外部記憶装置ESからの読み出し処理は,他のプロセッサPに依頼して,当該他のプロセッサPの読み出し処理部22が実行する場合もあるが詳細については後述する。また,読み出し処理部22は,例えば,データ管理テーブルに基づいて,読み出し要求されたデータが実在するか否かを判定する機能や,共有キャッシュ装置SCの空き状況を判定し空き領域を確保する機能,読み出したデータに関してデータ管理テーブル等を更新する機能も有するが,これらの詳細についても後述する。
【0034】
書き込み処理部23は,共有キャッシュ装置SC若しくは外部記憶装置ESにデータを書き込む機能を有する。この書き込み処理は,例えば,新規データの書き込み処理と,既存データを更新するための書き込み処理の双方を含む。より詳細には,書き込み処理部23は,既存データを更新する場合には,後述するデータ管理テーブルに基づいて,書き込み要求されたデータが共有キャッシュ装置SCにキャッシュされているか否かを判定し,キャッシュされている場合には,まず,共有キャッシュ装置SC上のデータを上書きする。一方,既存データがキャッシュされていない場合には,共有キャッシュ装置SC上に空き領域を確保した上で当該データを書き込む。さらに,書き込み処理部23は,共有キャッシュ装置SCに書き込まれたデータや新規データを,例えばいずれか1つの外部記憶装置ES(既存データの場合には,元々格納されていた外部記憶装置ES)に書き込んで格納する。よって,例えば複数の外部記憶装置ESに同じデータが書き込まれることはない。
【0035】
なお,上記のような外部記憶装置ESへの書き込み処理は,他のプロセッサPに依頼して,当該他のプロセッサPの書き込み処理部23が実行する場合もあるが詳細については後述する。また,書き込み処理部23は,例えば,データ管理テーブルに基づいて,書き込み要求されたデータが実在するか否かを判定する機能や,書き込んだデータに関してデータ管理テーブル等を更新する機能も有するが,これらの詳細についても後述する。
【0036】
処理依頼部24は,他のプロセッサPに対して,当該他のプロセッサPに接続された外部記憶装置ESからのデータの読み出し処理,若しくはかかる外部記憶装置ESへのデータの書き込み処理を依頼する機能を有する。この依頼処理は,あるプロセッサPの処理依頼部24が,書き込み処理若しくは読み出処理を依頼する信号(以下では,処理依頼信号という。)を作成し,かかる処理依頼信号を通信回線11を介して他のプロセッサPに送信することで実行される。このような依頼処理が発生するケースの例を挙げると,例えば,プロセッサP1がクライアント端末3より受けた書き込み要求を処理するときに,プロセッサP1の書き込み処理部23は共有キャッシュ装置SCには当該データを書き込めるが外部記憶装置ES2には書き込むことができないので,プロセッサP1の処理依頼部24が,プロセッサP2の書き込み処理部23に対して,共有キャッシュ装置SCにキャッシュ済のデータを外部記憶装置ES2の該当領域に書き込んで格納するよう指示する場合などである。
【0037】
なお,上記のような読み出し処理部22,書き込み処理部23および処理依頼部24の機能を,例えば,プロセッサPにインストールされたアプリケーションソフトウエアなどによって,実現可能に構成してもよい。
【0038】
制御部25は,例えばCPU(Central Processing Unit)などからなり,プロセッサPの各部を制御する機能を有する。この制御部25は,例えば記憶部26に格納されたコンピュータプログラムに基づいて,プロセッサPの上記各部が上記機能を発揮できるように制御する。なお,かかるコンピュータプログラムを,実行したい処理に応じて好適に構築することにより,プロセッサPは上記に限らず多様な処理機能を有することが可能である。
【0039】
記憶部26は,例えば,各種のROM(Read Only Memory)やRAM(Random Access Memory)等からなる主記憶装置や,プログラムを実行する上で必要な比較的小容量のキャッシュメモリ,上記プログラムを格納する例えばハードディスク等の補助記憶装置などから構成され,例えば一般的なコンピュータに具備されている程度の記憶装置である。従って,例えば,従来のデータ管理装置のプロセッサが具備するような大容量のディスクキャッシュを具備するものではない。
【0040】
以上に,1つのプロセッサPの構成について説明した。次に,かかるプロセッサP同士の接続状態について説明する。
【0041】
本実施形態にかかるデータ管理装置10では,図2に示すように,例えば2つのプロセッサP1,P2が,例えば外部バスである通信回線11(有線回線と無線回線の双方を含む。)を介して並列的に接続されている。即ち,独立して動作可能なプロセッサP1とプロセッサP2がクラスタリングされており,クライアント側からみれば全体として一台の大きなプロセッサ(サーバ)が存在するかのようなイメージとなる。
【0042】
このように複数のプロセッサPをクラスタリングし,データ管理装置10をクラスタ・システムとして構成することによって,システム全体の信頼性の向上と,高性能化を図ることができる。即ち,例えば,1つのプロセッサPに障害が発生しても,他のプロセッサPがその処理を引き継ぐことで,システム全体がダウンすることなく稼動し続けることができる。また,独立して動作する複数のプロセッサPによって多くのクライアント端末3からの要求に応えることで,1つのプロセッサPにかかる負荷を分散することができるので,全体としては処理能力が向上し高速処理が可能になる。
【0043】
さらに,例えば複数のプロセッサP間を結ぶ通信回線11は,例えば,データそのものの転送に使われるのではなく,相互に処理を依頼するためのコントロールラインとして機能するものである。即ち,双方のプロセッサPは,この通信回線11を介して,例えば,相互に上記処理依頼信号などを送受信するのみであり,従来のデータ管理装置のようにプロセッサ間で大量のデータを送受信する必要がない。これは,複数のプロセッサPが共有キャッシュ装置SCを共有しているため,従来のようにキャッシュ装置間の整合性をとる必要がないからである。このため,データ管理装置10の処理速度がより高速となり,特に,データ管理装置10が取り扱うデータが更新頻度の高い大容量データである場合に,非常に有益となる。
【0044】
なお,本実施形態では,例えば2つのプロセッサP1,P2が,例えば,空間的に独立した1つの装置(例えばコンピュータ)として構成されている。しかし,かかる例に限定されず,プロセッサPは上記のような処理機能を有しておれば,いかなる形態であってもよい。例えば,複数のプロセッサPを例えば1つの基板上に設ける,或いは,各プロセッサPを例えば1つの筐体に対して挿抜可能な基板等として構成して1つの筐体内にすべて収容するなどして,空間的に1つのハードウェアとして一体構成されていてもよい。この場合には,通信回線11は例えば内部バスなどとすることができる。
【0045】
<外部記憶装置>
外部記憶装置ES(External Storage)は,例えば,ハードディスクや,CDROM,DVD等の光ディスクなどで構成されたディスク記憶装置などであり,大容量のデータやプログラムなどを保存することができる。本実施形態では,このような外部記憶装置ESが,例えば,複数のプロセッサPごとに例えばそれぞれ1つずつ設けられている。具体的には,プロセッサP1に対応して外部記憶装置ES1が設けられ,プロセッサP2に対応して外部記憶装置ES2が設けられている。
【0046】
このような外部記憶装置ES1,ES2は,プロセッサP1,P2本体に例えば入出力チャネル12−1,12−2(以下では入出力チャネル12という場合もある。)を介して,例えば外付けされている。この入出力チャネル12は,外部記憶装置ESとプロセッサPとを結ぶデータの通信路であり,例えば,ATA(AT Attachment),SCSI(Small Computer System Interface),USB(Univarsal Serial Bus)等のインターフェースに対応したケーブルで結ばれる外部バスである。このように外部記憶装置ESが外付けされていることにより,プロセッサPと外部記憶装置ESとを容易に分離できるため,外部記憶装置ESの交換,修理や容量変更などを迅速に行うことができる。しかし,かかる外付けの例に限定されず,外部記憶装置ESは,プロセッサPに内蔵されていてもよい。
【0047】
かかる構成の外部記憶装置ESには,データ管理装置10がサービスを実行するために必要なデータが格納されるが,この際,当該データが外部記憶装置ES1若しくはES2のいずれか一方に格納される点が特徴的である。よって,同一のデータが外部記憶装置ES1およびES2の双方に格納されることはないので,外部記憶装置ESの利用効率を向上させることができる。なお,外部記憶装置ESは,例えば,一般的なコンピュータ・ファイルシステムで管理されており,当該データは,例えばファイル形式で管理される。
【0048】
<共有キャッシュ装置>
共有キャッシュ装置SCは,例えばボックス状の筐体内に高速アクセス可能なキャッシュメモリなどを備えた装置などであり,このキャッシュメモリは例えばSRAM(Static Random Access Memory)等の半導体メモリなどで構成される。この共有キャッシュ装置SCは,例えば,データ管理装置10がサービスを実行するために必要なデータをキャッシュ(一時記憶)し,プロセッサPと外部記憶装置ESとの間のデータ伝送ロスを軽減するための例えばディスクキャッシュとして機能する。このような半導体メモリからなるディスクキャッシュは,ハードディスク等で構成された外部記憶装置ESより,例えば,十倍以上高速なレスポンス特性を有する。
【0049】
例えばデータベースサーバなどにおいては,このディスクキャッシュの容量を大きくして,外部記憶装置に格納されているデータを少しでも多くキャッシュしておくことにより,要求されたデータの読み書きを高速処理することができる。かかる観点から,本実施形態にかかる共有キャッシュ装置SCは,例えば非常に大容量であり,例えば数10GB(ギガバイト)などである。このため,かかる大容量の共有キャッシュ装置SCに,複数の外部記憶装置ESに格納されているデータの例えば大部分をキャッシュするようにすれば,プロセッサPは,例えば,低速な外部記憶装置ESからほとんどデータを読み出すことなく,共有キャッシュ装置SCのみを用いて高速にデータを読み出すことができる。
【0050】
以下に,本実施形態にかかる共有キャッシュ装置SCの特徴についてさらに説明する。
【0051】
第1に,共有キャッシュ装置SCは,プロセッサPに例えば外付けされて設けられ,上記プロセッサPとは例えば空間的に独立したハードウェアである点に特徴を有する。即ち,従来のデータ管理装置では,図12及び図13に示したように,キャッシュ装置はプロセッサに内蔵され,CPUの周辺に設けられていた。これに対し,本実施形態にかかる共有キャッシュ装置SCは,図2に示すように,プロセッサPとはハードウェア的に例えば別体に構成され,あたかもプロセッサPの主記憶装置の一部をプロセッサPの外部に取り出して外部記憶装置としたような構成となっている。
【0052】
この共有キャッシュ装置SCとプロセッサPとは,例えば外部バスである入出力チャンネル13を介して接続されている。この入出力チャンネル13は,共有キャッシュ装置SCに設けられた例えば複数の入出力端子(図示せず。)と,各プロセッサPの入出力端子(図示せず。)とを結んでおり,高速伝送(例えば伝送速度が2.5Gbps)可能な光ファイバケーブルなどで構成されている。このため,プロセッサPは,この入出力チャネル13を介してかかる共有キャッシュ装置SCに高速アクセス可能である。従って,共有キャッシュ装置SCを外付けしたことに伴う伝送ロスを十分に低減できるので,共有キャッシュ装置SCを例えばディスクキャッシュとして好適に機能せしめることができる。なお,かかる入出力チャネル13のデータ伝送の規格としては,例えば,光ファイバーとスイッチング技術によりサーバやストレージ間で高速なシリアル・データ転送を実現可能なインフィニバンド(InfiniBand)規格などを用いてもよい。
【0053】
このように共有キャッシュ装置SCが,プロセッサPに例えば外付けさていることにより,例えば,共有キャッシュ装置SCの交換,修理,容量変更や,データ管理装置10の設計変更などといったメンテナンスが迅速かつ容易になる。なお,共有キャッシュ装置SCは,必ずしも上記のような外付けされた例に限定されるものではない。例えば,共有キャッシュ装置SCがいずれか1つのプロセッサPに内蔵されており,他のプロセッサPはこのプロセッサPに外部バスで接続され,内蔵されている共有キャッシュ装置SCにアクセスできるような構成であってもよい。
【0054】
第2に,共有キャッシュ装置SCは,複数のプロセッサPによって共有されている点に特徴を有する。即ち,従来のデータ管理装置では,図12及び図13に示したように,キャッシュ装置は,各プロセッサに対応して複数設けられており,さらに,かかる複数のキャッシュ装置間でキャッシュしているデータの整合性をとる必要があった。これに対し,本実施形態では,共有キャッシュ装置SCは,図2に示すように,入出力チャンネル13−1,13−2で接続されたプロセッサP1およびプロセッサP2によって共有されており,キャッシュ装置が例えば1つだけしか設けられていない。よって,複数のプロセッサPが,同一のキャッシュ装置(即ち,共有キャッシュ装置SC)に例えば同時にアクセスしてデータを読み書きすることができる。
【0055】
このため,従来のように複数のキャッシュ装置間で整合性をとる必要がないので,例えばデータの更新が発生した場合などに,複数のプロセッサPが通信回線11を介してデータをやり取りしなくて済む。従って,プロセッサP間の通信量が激減するため,各々のプロセッサPの処理速度が向上し,システム全体としてのスループットが高まる。さらに,プロセッサPの設置数を増やした場合の処理能力の上昇効果が高く,拡張性に優れたデータ管理装置10を提供できる。
【0056】
また,同一のデータが異なるキャッシュ装置にキャッシュされるという冗長化を排除できるので,キャッシュメモリの利用効率が高まる。加えて,共有キャッシュ装置SCが1つだけであるとともに,上記のようにデータはいずれか1つの外部記憶装置ESに格納されるので,キャッシュメモリと外部記憶装置ESの間でのデータの転送を例えば1度だけ行えばよい。このため,キャッシュメモリと外部記憶装置ESの間での同一データの転送量が低減するので,外部記憶装置ESの負荷を軽減することができる。
【0057】
また,例えば128GBクラスの大容量のキャッシュ装置は,非常に高価(1つの装置で例えば数億円以上もする場合もある。)であり,従来のように,かかるキャッシュ装置を複数設けると,データ管理装置を構築するのに要するコストが膨大となってしまう。これに対して,本実施形態にかかるデータ管理装置10内には,キャッシュ装置として共有キャッシュ装置SCを例えば1つだけ設ければよいので,従来と比して,コストを大幅に低減できる。
【0058】
次に,図4に基づいて,上記のような共有キャッシュ装置SCにキャッシュされている情報の構成例について説明する。なお,図4は,本実施形態にかかる共有キャッシュ装置SCにキャッシュされている情報の構成例を模式的に示す説明図である。
【0059】
図4に示すように,共有キャッシュ装置SCのキャッシュ領域は,例えば,実際に処理されるデータがキャッシュされる処理データ用キャッシュ領域40と,データ管理装置10の運用に必要なメタデータがキャッシュされるメタデータ用キャッシュ領域50とに大別される。
【0060】
処理データ用キャッシュ領域40は,データ管理装置10がサービスとして提供するデータ(実際の処理データ)がキャッシュされる領域であり,キャッシュ領域の容量の例えば大部分を占める。この処理データ用キャッシュ領域40にデータをキャッシュすることにより,共有キャッシュ装置SCは,プロセッサPと外部記憶装置ESとの間のデータ伝送ロスを低減するためのディスクキャッシュとして機能することができる。
【0061】
この処理データ用キャッシュ領域40は,例えばN個のキャッシュ領域CA1〜CAn−1(以下では,キャッシュ領域CAという場合もある。)に分割されている。個々のキャッシュ領域CAの容量は例えば64KB(キロバイト)であり,例えば固定サイズとなっている。それぞれのキャッシュ領域CAは,先頭から順に領域番号(0〜nー1)がふられており,かかる領域番号を用いていずれのキャッシュ領域CAであるかが参照される。キャッシュされる1つのデータは,1つのキャッシュ領域CAに収まるサイズであれば1つのキャッシュ領域CAにキャッシュされ,1つのキャッシュ領域CAより大きいサイズであれば複数のキャッシュ領域CAにまたがってキャッシュされる。
【0062】
また,メタデータ用キャッシュ領域50は,上記データを管理するために必要なメタデータがキャッシュされる領域である。このメタデータとしては,例えば,データ管理テーブルMD1,キャッシュ領域使用状況ビットマップMD2,キャッシュ領域リストMD3などが含まれている。以下に,この例えば3つのメタデータについて詳細に説明する。
【0063】
まず,図5に基づいて,本実施形態にかかるデータ管理テーブルMD1について説明する。なお,図5は,本実施形態にかかるデータ管理テーブルMD1の構造を模式的に示す説明図である。
【0064】
図5に示すように,データ管理テーブルMD1は,データ管理装置10内に存在するすべてのデータを識別して管理するための情報を保持するテーブルである。このデータ管理テーブルMD1は,例えば固定長のレコードの集まりとなっており,例えば1つのレコードエントリーが例えば1つのデータに対応している。従って,図5の例では,例えばm個のレコードが登録されているので,データ管理装置10内には例えばm個のデータが存在していることになる。
【0065】
レコードエントリーの中には,例えば,▲1▼データ名,▲2▼ホスト名,▲3▼ファイル名,▲4▼最終アクセス時刻,▲5▼キャッシュ領域リストの先頭位置,などという属性が存在し,対応するデータについての各種情報が記憶されている。
【0066】
▲1▼データ名
データ名は,クライアント端末3から与えられたデータ名であり,例えば任意の文字列である。なお,1つのデータ管理装置10内に同一の名前が存在することは許されない。
【0067】
▲2▼ホスト名
ホスト名は,データが格納されている外部記憶装置ESと接続されているプロセッサPの名前である。外部記憶装置ESと共有キャッシュ装置SCとの間のデータのコピー等の処理は,外部記憶装置ESと接続されているプロセッサPの役割である。ホスト名は,この処理を担当しているのがいずれのプロセッサPであるかを識別するために用いられる。
【0068】
▲3▼ファイル名
ファイル名は,当該データが記録されている外部記憶装置ES上のファイルとしての名前である。
【0069】
▲4▼最終アクセス時刻
最終アクセス時刻は,いずれかのクライアント端末3が当該データに対して,何らかのアクセスを最後に行った時刻である。処理データ用キャッシュ領域40が不足した場合には,この最終アクセス時刻に基づいて,処理データ用キャッシュ領域40上から削除するデータが決定される。
【0070】
▲5▼キャッシュ領域リストの先頭位置
キャッシュ領域リストの先頭位置は,後述するキャッシュ領域リストMD3の先頭エントリーの位置を記録した値(領域番号)である。なお,この値が例えば負の値の場合は無効を意味し,キャッシュ領域リストMD3内に当該データの情報が存在しないことを意味する。
【0071】
このようなデータ管理テーブルMD1を設けることにより,データ管理装置10内のすべてのデータをもれや重複がないように統一管理できる。
【0072】
次に,図6に基づいて,本実施形態にかかるキャッシュ領域使用状況ビットマップMD2について説明する。なお,図6は,本実施形態にかかるキャッシュ領域使用状況ビットマップMD2の構成を模式的に示す説明図である。
【0073】
図6に示すように,キャッシュ領域使用状況ビットマップMD2は,上記処理データ用キャッシュ領域40を例えばn個に分割した各キャッシュ領域CAが,使用されているか否かを表す情報を保持している。各キャッシュ領域CAが使用されているか否かは,図6では,説明の便宜のため白丸と黒丸で表現してあるが,実際には例えば1ビットのフラグで表現される(例えば,未使用であれば「0」,使用中であれば「1」など)。従って,処理データ用キャッシュ領域40全体の使用状況を表すために,キャッシュ領域使用状況ビットマップMD2は,例えばnビットのビットマップとなる。また,キャッシュ領域使用状況ビットマップMD2の各ビットの先頭からの相対位置が,分割された各キャッシュ領域CAの領域番号(0〜n−1)に対応するので,いずれのキャッシュ領域CAの使用状況であるかを識別できる。例えば,図6の例では,1番目の位置のビット(図6の最も左の黒丸)はキャッシュ領域CA1の使用状況を示しており,この場合には黒丸であるので使用中である。
【0074】
このようなキャッシュ領域使用状況ビットマップMD2を設けることで,処理データ用キャッシュ領域40の使用状況を一元管理できるので,データをキャッシュする際に,空き領域の検索に要する時間を短縮できる。
【0075】
次に,図7に基づいて,本実施形態にかかるキャッシュ領域リストMD3について説明する。なお,図7は,本実施形態にかかるキャッシュ領域リストMD3の構成を模式的に示す説明図である。
【0076】
図7に示すように,キャッシュ領域リストMD3は,1つのデータ中のどの位置がキャッシュ領域CAにキャッシュされているかという情報を保持している。
【0077】
データの容量が大きく,1つのキャッシュ領域CAに収まりきらない場合には,1つのデータに対して複数のキャッシュ領域CAが割り当てられる。このような場合には,1つのデータに関してキャッシュ先となっている複数のキャッシュ領域CAを相互にリンクしておく必要がある。そこで,図7に示すような,リンクリストの形式でキャッシュ領域リストMD3が設けられている。
【0078】
キャッシュ領域リストMD3には,上記のような例えばn個のキャッシュ領域CAに対応して,例えばn個のエントリーが設けられている。即ち,キャッシュ領域リストMD3のエントリーの総数は,例えば,処理データ用キャッシュ領域40の分割総数に等しい。また,かかるエントリーのキャッシュ領域リストMD3上での先頭からの相対位置によって,そのエントリーが対応するキャッシュ領域CAを表すことができる。つまり,キャッシュ領域リストMD3の先頭からk番目のエントリーは,キャッシュ領域CAk(領域番号kのキャッシュ領域CA)が保持しているデータについての情報を有することになる。
【0079】
かかるキャッシュ領域リストMD3の1つのエントリーには,例えば,▲1▼データ位置,▲2▼データサイズ,▲3▼前エントリー位置,▲4▼次エントリー位置,などというの属性が存在し,対応するデータについてのリンク情報が記録されている。
【0080】
▲1▼データ位置
データ位置は,そのエントリーに対応するキャッシュ領域CAに,1つのデータ内のどの部分がキャッシュされているかを表す情報であり,当該部分のデータの先頭からの相対位置で表される。このデータ位置の単位は,処理データ用キャッシュ領域40の分割サイズ(1つのキャッシュ領域CAのサイズ)となり,例えば64KBである。つまり,例えば256KBのデータが例えば4個のキャッシュ領域CAに分けてキャッシュされる場合の例を挙げると,例えば,先頭エントリーのデータ位置は「0」×64KBとなり,次のエントリーのデータ位置は「1」×64KBとなり,その次のエントリーのデータ位置は「2」×64KBとなる。
【0081】
▲2▼データサイズ
データサイズは,そのエントリーに対応するキャッシュ領域CAが保持しているデータの部分の,有効データサイズを示す。通常,この値は1つのキャッシュ領域CAのサイズ,つまり,例えば64KBとなるが,データ全体の最後部では,1つのキャッシュ領域CAのサイズより小さくなる場合がある。
【0082】
▲3▼前エントリー位置,▲4▼次エントリー位置
前エントリー位置と次エントリー位置は,リンクリストを構築するための情報であり,そのエントリーの前のエントリー位置と,次のエントリー位置を表している。詳細には,前エントリー位置は,そのエントリーに対応するキャッシュ領域CAが保持しているデータの部分の直前の部分を,保持しているキャッシュ領域CAに対応するエントリーの位置を表す。また,次エントリー位置は,そのエントリーに対応するキャッシュ領域CAが保持しているデータの部分の直後の部分を,保持しているキャッシュ領域CAに対応するエントリーの位置を表す。なお,エントリーの位置とは,上記のように,そのエントリーが,キャッシュ領域リストMD3の先頭から何番目にあるかを示す数値である。
【0083】
この前エントリー位置および次エントリー位置を,具体例を挙げてより詳細に説明する。例えば,ある1つのデータが,例えばキャッシュ領域CA0,キャッシュ領域CA3,キャッシュ領域CA7に,かかる順序でキャッシュされているとする。この場合,キャッシュ領域CA3に対応するエントリーに関し,自身のエントリー位置は「3」であり,前エントリー位置は「0」であり,次エントリー位置は「7」となる。
【0084】
また,このような前エントリー位置が無効の値(例えば負の値)の場合には,当該エントリーが先頭のエントリーであることを示す。また,次エントリー位置が無効の値(例えば負の値)の場合には,当該エントリーが最終のエントリーであることを示す。
【0085】
このようなキャッシュ領域リストMD3を設けることで,例えば1つのデータを複数のキャッシュ領域CAに分散させてキャッシュできるので,空き領域を低減して,キャッシュメモリを効率的に利用することができる。
【0086】
<データ管理装置の処理動作>
次に,上記のような構成のデータ管理装置10の処理動作について説明する。以下では,データ管理装置10の代表的な処理の例として,新規データの作成処理,既存データの書き込み処理,既存データの読み出し処理という3つの処理を,それぞれ詳細に説明する。なお,以下の処置方法の説明では,プロセッサP1に接続されたクライアント端末3からの要求を処理する例について説明するが,プロセッサP2に接続されたクライアント端末3からの要求を処理する場合も略同一の手順で処理される。
【0087】
<新規データの作成処理>
まず,図8に基づいて,本実施形態にかかるデータ管理装置10の新規データの作成処理について説明する。なお,図8は,本実施形態にかかるデータ管理装置10の新規データの作成処理の動作フローを示すフローチャートである。
【0088】
図8に示すように,まず,ステップS100では,プロセッサP1が,新規作成しようとするデータのデータ名と同じデータ名のデータが存在するか否かを判定する(ステップS100)。プロセッサP1に接続されたクライアント端末3からの要求により新規にデータを作成する場合,プロセッサP1は,システム内に同じ名前のデータが既に存在するか否かを判定する。この判定は,プロセッサP1の書き込み処理部23が,例えば,データ管理テーブルMD1のレコードエントリーを順次取り出して,クライアント端末3が指定してきたデータ名と,すべての既存データ名とを比較することによって実行される。同じデータ名のデータが存在する場合には,ステップS101に進み,例えば,クライアント端末3に対してデータ名が重複する旨のエラーが戻され,本動作フローは終了する。一方,同じデータ名のデータが存在しない場合には,ステップS102に進む。
【0089】
次いで,ステップS102では,データ管理テーブルMD1上に新たなエントリーが作成される(ステップS102)。プロセッサP1の書き込み処理部23は,共有キャッシュ装置SCにアクセスして,データ管理テーブルMD1に新しいエントリーを確保する。なお,この時点では,当該データに対してキャッシュ領域CAが新たに割り当てられることはない。
【0090】
さらに,ステップS104では,プロセッサP1がプロセッサP2に外部記憶装置ES2の容量を問い合わせる(ステップS104)。プロセッサP1の書き込み処理部23は,プロセッサP2に対して,プロセッサP2に接続された外部記憶装置ES2の空き容量を問い合わせる。この問い合わせは,例えば,書き込み処理部23が,通信回線11を介して,空き容量照会信号をプロセッサP2に送信し,プロセッサP2からの応答信号を受け取る形式で行われる。
【0091】
その後,ステップS106では,プロセッサP1が,いずれの外部記憶装置ESが空いているかを判定する(ステップS106)。上記ステップS104での問い合わせにより,プロセッサP1は外部記憶装置ES2の空き容量の情報を取得できる。また,自身に接続された外部記憶装置ES1の空き容量は,自身で確認して既知である。よって,プロセッサP1の書き込み処理部23は,外部記憶装置ES1の空き容量と外部記憶装置ES2の空き容量のいずれが大きいかを比較できる。この結果,外部記憶装置ES1の空き容量が大きいと判定された場合にはステップS108に進み,一方,外部記憶装置ES2の空き容量が大きいと判定された場合にはステップS110に進む。
【0092】
次いで,ステップS108では,外部記憶装置ES1に当該データが格納される(ステップS108)。プロセッサP1の書き込み処理部23は,外部記憶装置ES1に新たにファイルを作成し,このファイルを当該データに割り当てる。これにより,外部記憶装置ES1に新規作成されるデータが格納される。
【0093】
一方,ステップS110では,外部記憶装置ES2に当該データが格納される(ステップS110)。プロセッサP1の処理依頼部24は,プロセッサP2に対して外部記憶装置ESへの当該データの書き込み処理を依頼する。この依頼を受けると,プロセッサP2の書き込み処理部23は,外部記憶装置ES2に新たにファイルを作成し,このファイルを当該データに割り当てる。
【0094】
その後,ステップS112では,データ管理テーブルMD1の内容が設定される(ステップS112)。プロセッサP1は,上記ステップS102で新しく作成したデータ管理テーブルMD1のレコードエントリーを,初期状態に設定して新規データ作成処理を終了する。データ管理テーブルMD1のレコードエントリーの初期状態は,例えば,以下の通りである。
▲1▼データ名=指定されたデータ名
▲2▼ホスト名=データを格納した外部記録装置ESに対応したプロセッサPの名前
▲3▼ファイル名=データに割り当てあてられた外部記録装置ES上のファイル名
▲4▼最終アクセス時刻=このエントリーの初期化を行った時刻
▲5▼キャッシュ領域リストの先頭位置=−1(無効)
なお,上記のような新規データ作成時においては,当該データは,外部記憶装置ESには格納されるが,例えば,共有キャッシュ装置SCにはキャッシュされない。
【0095】
<既存データの書き込み処理>
次に,図9に基づいて,本実施形態にかかるデータ管理装置10の既存データの書き込み処理について説明する。なお,図9は,本実施形態にかかるデータ管理装置10の既存データの書き込み処理の動作フローを示すフローチャートである。
【0096】
図9に示すように,まず,ステップS200では,プロセッサP1が,指定されたデータ名と同じデータ名のデータが存在するか否かを判定する(ステップS200)。プロセッサP1に接続されたクライアント端末3からの要求により既存データを更新する場合,プロセッサP1は,指定されたデータ名のデータがシステム内に実在するか否かを判定する。この判定は,プロセッサP1の書き込み処理部23が,例えば,データ管理テーブルMD1のレコードエントリーを順次取り出して,クライアント端末3が指定してきたデータ名と,既存のデータ名とを比較することによって実行される。同じデータ名のデータが存在しない場合には,ステップS201に進み,クライアント端末3に対して,指定されたデータ名のデータが存在しない旨のエラーが戻され,本動作フローは終了する。一方,同じデータ名のデータが存在する場合には,ステップS202に進む。
【0097】
次いで,ステップS202では,書き込みが指定されたデータ部分が共有キャッシュ装置SCにキャッシュされているか否かが判定される。(ステップS202)。プロセッサP1の書き込み処理部23は,まず,データ管理テーブルMD1の当該データのレコードエントリーから,キャッシュ領域リストMD3の先頭エントリーの位置を取り出す。次いで,この先頭エントリーの位置に基づいて,キャッシュ領域リストMD3のリンクリストをたどりながら,書き込みを指定されたデータ部分(即ち,当該データのうち更新される部分であり,当該データの一部若しくは全部)が共有キャッシュ装置SCの処理データ用キャッシュ領域40上にキャッシュされているか否かを判定する。この結果,処理データ用キャッシュ領域40上に該当データ部分がキャッシュされていると判定された場合には,ステップS212に進む。一方,キャッシュされていないと判定された場合には,ステップS204に進む。
【0098】
さらに,ステップS204では,処理データ用キャッシュ領域40上に空き領域があるか否かが判定される(ステップS204)。プロセッサP1の書き込み処理部23は,キャッシュ領域使用状況ビットマップMD2を参照して,処理データ用キャッシュ領域40上に例えば,当該データをキャッシュする分の空きがあるか否かを判定する。この結果,空きがあると判定された場合にはステップS208に進み,空きがないと判定された場合にはステップS206に進む。
【0099】
その後,ステップS206では,処理データ用キャッシュ領域40上の古いキャッシュ領域CAが開放される(ステップS206)。プロセッサP1の書き込み処理部23は,データ管理テーブルMD1のエントリー内の最終アクセス時刻に基づいて,例えば最も長い時間アクセスされていないデータを検出し,そのデータをキャッシュ領域CA上から破棄する。これにより,古いデータがキャッシュされていた1または2以上のキャッシュ領域CAが開放され,処理データ用キャッシュ領域40上に空きが発生する。
【0100】
次いで,ステップS208では,処理データ用キャッシュ領域40上に当該データを書き込む分のキャッシュ領域CAが確保される(ステップS208)。元々空いていたキャッシュ領域CAや,上記ステップS206で空きを領域となったキャッシュ領域CAの中から,当該データを書き込む分の容量の1または2以上のキャッシュ領域CAが確保される。書き込み処理部23は,かかるキャッシュ領域CAを当該データに対して新たに割り当てる。
【0101】
さらに,ステップS210では,キャッシュ領域リストMD3上のエントリーが,新しく追加若しくは更新される。(ステップS210)。プロセッサP1の書き込み処理部23は,上記ステップS208で新たなキャッシュ領域CAを当該データに対して割り当てたことに伴い,キャッシュ領域リストMD3に,例えばエントリーを追加する若しくは既存のエントリー内部の情報を更新するなどして,キャッシュ領域リストMD3を当該データに対応したものに設定し直す。
【0102】
その後,ステップS212では,処理データ用キャッシュ領域40上に該当データが書き込まれる(ステップS212)。プロセッサP1の書き込み処理部23は,元々当該データがキャッシュされていた場合には,そのキャッシュ領域CA上に更新されるデータ部分を上書きする。また,上記ステップS208で,当該データを書き込むためのキャッシュ領域CAが新たに確保された場合には,そのキャッシュ領域CA上に当該データを新たに書き込む。このような処理により,当該データが,共有キャッシュ装置SC上に,更新された内容でキャッシュされる。
【0103】
次いで,ステップS214では,当該データがいずれの外部記憶装置ESのどのファイルに格納されているかが特定される(ステップS214)。共有キャッシュ装置SCに更新されたデータがキャッシュされると,次に,外部記録装置ES上の既存のデータにこの更新を反映させる必要がある。このため,プロセッサP1の書き込み処理部23は,いずれの外部記録装置ESのどのファイルに,更新されたデータを書き込まなければならないかを特定する。この特定は,データ管理テーブルMD1における,当該データに対応するレコードエントリー中のホスト名とファイル名に基づいて行われる。当該ホスト名が,プロセッサP1を指示していた場合にはステップS216に進み,プロセッサP2を指示していた場合にはステップS218に進む。
【0104】
さらに,ステップS216では,プロセッサP1が外部記憶装置ES1内の当該データを更新する(ステップS216)。プロセッサP1の書き込み処理部23は,外部記憶装置ES1内のファイルの中から,上記ステップS214で特定されたファイルに当該データの更新内容を上書きする。
【0105】
一方,ステップS218では,プロセッサP1から依頼を受けたプロセッサP2が,外部記憶装置ES2内の当該データを更新する(ステップS218)。プロセッサP1の処理依頼部24は,プロセッサP2に対して外部記憶装置ES2への当該データの更新処理を依頼する。この依頼を受けると,プロセッサP2の書き込み処理部23は,外部記憶装置ES2内のファイルの中から,上記ステップS214で特定されたファイルに当該データの更新内容を上書きする。
【0106】
その後,ステップS220では,最終アクセス時刻が更新される(ステップS220)。例えばプロセッサP1の書き込み処理部23は,上記ステップS216若しくはステップS218での外部記憶装置ESへのデータの更新処理が終了した時点で,データ管理テーブルMD1のレコードエントリー内の最終アクセス時刻を更新する。
【0107】
<既存データの読み出し処理>
次に,図10に基づいて,本実施形態にかかるデータ管理装置10の既存データの読み出し処理について説明する。なお,図10は,本実施形態にかかるデータ管理装置10の既存データの読み出し処理の動作フローを示すフローチャートである。
【0108】
図10に示すように,まず,ステップS300では,プロセッサP1が,指定されたデータ名と同じデータ名のデータが存在するか否かを判定する(ステップS300)。プロセッサP1に接続されたクライアント端末3からの要求により既存データの読み出しを行う場合,プロセッサP1は,システム内に指定されたデータ名のデータが存在するか否かを判定する。この判定は,プロセッサP1の読み出し処理部22が,例えば,データ管理テーブルMD1のレコードエントリーを順次取り出して,クライアント端末3が指定してきたデータ名と,既存のデータ名とを比較することによって実行される。同じデータ名のデータが存在しない場合には,ステップS301に進み,クライアント端末3に対して,指定されたデータ名のデータが存在しない旨のエラーが戻され,本動作フローは終了する。一方,同じデータ名のデータが存在する場合には,ステップS302に進む。
【0109】
次いで,ステップS302では,読み出しが指定されたデータ部分が共有キャッシュ装置SCにキャッシュされているか否かが判定される。(ステップS302)。プロセッサP1の読み出し処理部22は,まず,データ管理テーブルMD1の当該データのレコードエントリーから,キャッシュ領域リストMD3の先頭エントリーの位置を取り出す。次いで,この先頭エントリーの位置に基づいて,キャッシュ領域リストMD3のリンクリストをたどりながら,読み出しを指定されたデータ部分(即ち,当該データのうち読み出される部分であり,当該データの一部若しくは全部)が共有キャッシュ装置SCの処理データ用キャッシュ領域40上にキャッシュされているか否かを判定する。この結果,処理データ用キャッシュ領域40上に該当データ部分が,キャッシュされていないと判定された場合には,ステップS304に進む。一方,キャッシュされていると判定された場合には,外部記憶装置ESから当該データを読み出す必要がないので,ステップS318に進む。
【0110】
さらに,ステップS304では,処理データ用キャッシュ領域40上に空き領域があるか否かが判定される(ステップS304)。プロセッサP1の読み出し処理部22は,キャッシュ領域使用状況ビットマップMD2を参照して,処理データ用キャッシュ領域40上に例えば,当該データを外部記憶装置ESから読み出してキャッシュする分の空きがあるか否かを判定する。この結果,空きがあると判定された場合にはステップS308に進み,空きがないと判定された場合にはステップS306に進む。
【0111】
その後,ステップS306では,処理データ用キャッシュ領域40上の古いキャッシュ領域CAが開放される(ステップS306)。プロセッサP1の読み出し処理部22は,データ管理テーブルMD1のエントリー内の最終アクセス時刻に基づいて,例えば最も長い時間アクセスされていないデータを検出し,そのデータをキャッシュ領域CA上から破棄する。これにより,古いデータがキャッシュされていた1または2以上のキャッシュ領域CAが開放され,処理データ用キャッシュ領域40上に空きが発生する。
【0112】
次いで,ステップS308では,処理データ用キャッシュ領域40上に当該データを読み出す分のキャッシュ領域CAが確保される(ステップS308)。元々空いていたキャッシュ領域CAや,上記ステップS206で空きを領域となったキャッシュ領域CAの中から,当該データを書き込む分の容量の1または2以上のキャッシュ領域CAが確保される。読み出し処理部22は,かかるキャッシュ領域CAを,読み出す予定の当該データに対して新たに割り当てる。
【0113】
さらに,ステップS310では,キャッシュ領域リストMD3上のエントリーが,新しく追加若しくは更新される。(ステップS310)。プロセッサP1の読み出し処理部22は,上記ステップS308で新たなキャッシュ領域CAを当該データに対して割り当てたことに伴い,キャッシュ領域リストMD3に,例えばエントリーを追加する若しくは既存のエントリー内部の情報を更新するなどして,キャッシュ領域リストMD3を当該データに対応したものに設定し直す。
【0114】
その後,ステップS312では,指定されたデータがいずれの外部記憶装置ESのどのファイルに格納されているかが特定される(ステップS312)。処理データ用キャッシュ領域40上のキャッシュ領域CAが確保されると,次に,外部記録装置ESから確保したキャッシュ領域CAに対して,指定されたデータを読み込む必要がある。このため,プロセッサP1の読み出し処理部22は,いずれの外部記録装置ESのどのファイルから,当該データを読み込まなければならないかを特定する。この特定は,データ管理テーブルMD1における,当該データに対応するレコードエントリー中のホスト名とファイル名に基づいて行われる。当該ホスト名が,プロセッサP1を指示していた場合にはステップS314に進み,プロセッサP2を指示していた場合にはステップS316に進む。
【0115】
次いで,ステップS314では,プロセッサP1が,外部記憶装置ES1から当該データを処理データ用キャッシュ領域40上に読み出す(ステップS314)。プロセッサP1の読み出し処理部22は,外部記憶装置ES1内の上記ステップS312で特定されたファイルから当該データを読み出し,上記ステップS308で割り当てられたキャッシュ領域CAに当該データをキャッシュする。
【0116】
一方,ステップS316では,プロセッサP1から依頼を受けたプロセッサP2が,外部記憶装置ES2から当該データを処理データ用キャッシュ領域40上に読み出す(ステップS316)。プロセッサP1の処理依頼部24は,プロセッサP2に対して外部記憶装置ES2から当該データの読み出し処理を依頼する。この依頼を受けると,プロセッサP2の読み出し処理部22は,外部記憶装置ES2内の上記ステップS312で特定されたファイルから当該データを読み出し,上記ステップS308で割り当てられたキャッシュ領域CAに当該データをキャッシュする。
【0117】
さらに,ステップS318では,共有キャッシュ装置SC内の当該データが,クライアント端末3に対して送出される(ステップS318)。プロセッサP1の読み出し処理部22は,送受信部21を用いて処理データ用キャッシュ領域40上にキャッシュされている当該データを,読み出しを要求してきたクライアント端末3に送出する。かかるデータを受け取ったクライアント端末3は,例えば,所定のアプリケーションなどを用いて,このデータを閲覧することができる。
【0118】
その後,ステップS320では,最終アクセス時刻が更新される(ステップS320)。例えばプロセッサP1の読み出し処理部22は,上記ステップS318での送出処理が終了した時点で,データ管理テーブルMD1のレコードエントリー内の最終アクセス時刻を更新する。
【0119】
以上のようなデータ管理装置10の処理動作では,例えば2つのプロセッサP1,P2が,共有する同一の共有キャッシュ装置SCにデータをキャッシュするので,従来のように複数のキャッシュ装置同士の整合性をとる必要がない。このため,データの更新時にプロセッサ間で更新データの受け渡しを行う必要がないので,データ管理装置10の処理速度を向上させることができる。また,同じデータのコピーが複数キャッシュされたり,複数の外部記憶装置ESに格納されたりすることがないので,共有キャッシュ装置SCと外部記憶装置ESの利用効率が向上し,システム全体としての記憶容量を低減することができる。さらに,コピーのための外部記憶装置ESと共有キャッシュ装置SC間でのデータの転送回数が少ないので,外部記憶装置ESにかかる負荷が軽減され,クラスタ・システムとして構成されたデータ管理装置10のレスポンスを向上させることができる。なお,以上のような効果は,データ管理装置10の取り扱うデータが,更新頻度が高く大容量なものである場合に,より顕著になる。
【0120】
以上,添付図面を参照しながら本発明の好適な実施形態について説明したが,本発明はかかる例に限定されない。当業者であれば,特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり,それらについても当然に本発明の技術的範囲に属するものと了解される。
【0121】
例えば,上記実施形態にかかるデータ管理装置10は,例えば2組のプロセッサPおよび外部記憶装置ESを備える構成であったが,本発明はかかる例に限定されない,例えば,データ管理装置10は,図11に示すように,例えば3組以上の任意のn組のプロセッサPおよび外部記憶装置ESを具備していてもよい。この際,n個のプロセッサPは,相互に通信回線11で結ばれ,入出力チャンネル12を介して接続された例えば1つの共有キャッシュ装置SCを共有するようにしてもよい。かかる構成により,より多くのプロセッサPをクラスタリングして大規模な例えばサーバ環境を構築できるので,データ管理装置10の処理能力が向上し,より多くのクライアント端末3からの要求に対応することができる。
【0122】
また,上記実施形態にかかるデータ管理装置10では,複数のプロセッサPに対応してそれぞれ外部記憶装置ESが設けられていたが,本発明はかかる例に限定されず,外部記憶装置ESは,必ずしもプロセッサPと1対1で設けられなくてもよい。例えば,データ管理装置10内に例えばプロセッサP1にのみ接続された例えば1つの大容量の外部記憶装置ESを設けてもよい。また,図11に示すように,複数のプロセッサPが,例えば1または2以上の外部記憶装置ESを共有する(即ち,外部記憶装置ESを,すべてのプロセッサPと接続して,いずれのプロセッサPからもアクセス可能な共有外部記憶装置とする)ように構成してもよい。
【0123】
また,上記実施形態にかかるデータ管理装置10では,共有キャッシュ装置SCが例えば1つだけ設けられていたが,本発明はかかる例に限定されない,例えば,データ管理装置10内に複数の共有キャッシュ装置SCを設けて,各共有キャッシュ装置SCを各プロセッサPと例えば並列的に接続してもよい。これにより,共有キャッシュ装置SCを多重化して,不意の共有キャッシュ装置SCの故障に対応できるので,データ管理装置10の信頼性が向上する。
【0124】
また,上記実施形態にかかるデータ管理装置10では,複数のプロセッサP,1の共有キャッシュ装置SC,複数の外部記憶装置ESがハードウェアとして別体に構成されていたが,本発明はかかる例に限定されない。例えば,外部記憶装置ESは,外付けではなく,プロセッサPの筐体内に組み込まれていてもよい。さらに,例えば,複数のプロセッサP,共有キャッシュ装置,複数の外部記憶装置ESのすべてが,例えば,1つの筐体内に設けられる,若しくは,同一基板上に設けられるなどして,ハードウェア的に一体化されていてもよい。
【0125】
また,上記実施形態では,データ管理装置10にサービスの提供(例えば,データの授受)を要求する手段として,ハードウェアとして別体に構成されたクライアント端末3を用いたが,本発明はかかる例に限定されない。例えば,かかる要求手段は,データ管理装置10と一体に構成されたハードウェアなどであってもよく,或いは,例えばデータ管理装置10やその他の機器にインストールされたソフトウエアなどで構成してもよい。
【0126】
また,データ管理装置10は,読み書きするデータを加工するデータ加工部を備えるようにしてもよい。例えば,プロセッサPが,このようなデータ加工部を備えることで,外部記憶装置ES若しくは共有キャッシュ装置SCとの間で読み書きするデータに,各種の演算,集計,合成などの加工処置を施せるようにしてもよい。これにより,データ管理装置10は,例えば,所望された態様に加工したデータをクライアント端末3に提供する,或いは,外部記憶装置ESに加工したデータを格納して,外部記憶装置ESの効率化を図ることができる。
【0127】
【発明の効果】
以上説明したように,本発明によれば,複数のプロセッサがキャッシュ装置を共有することにより,キャッシュデータを一元化できるので,プロセッサ間でデータの受け渡しを行う必要がない。従って,プロセッサの処理速度が向上して,データ管理装置全体のスループットが向上する。さらに,プロセッサの設置数を増やした場合における処理能力の上昇率がより高まるので,拡張性に優れたデータ管理装置を提供することができる。
【0128】
また,同じデータのコピーが複数キャッシュされることがないので,キャッシュ装置の利用効率を向上させることができる。また,外部記憶装置とキャッシュ装置間のデータの転送回数が減るため,外部記憶装置にかかる負荷が軽減され,データ管理装置のレスポンスが向上する。
【図面の簡単な説明】
【図1】図1は,第1の実施形態にかかるデータ管理装置が用いられる情報管理システム1の全体構成を示すブロック図である。
【図2】図2は,第1の実施形態にかかるデータ管理装置の構成を示すブロック図である。
【図3】図3は,第1の実施形態にかかるプロセッサの構成を示すブロック図である。
【図4】図4は,第1の実施形態にかかる共有キャッシュ装置にキャッシュされている情報の構成例を模式的に示す説明図である。
【図5】図5は,第1の実施形態にかかるデータ管理テーブルの構造を模式的に示す説明図である。
【図6】図6は,第1の実施形態にかかるキャッシュ領域使用状況ビットマップの構成を模式的に示す説明図である。
【図7】図7は,第1の実施形態にかかるキャッシュ領域リストの構成を模式的に示す説明図である。
【図8】図8は,第1の実施形態にかかるデータ管理装置の新規データの作成処理の動作フローを示すフローチャートである。
【図9】図9は,第1の実施形態にかかるデータ管理装置の既存データの書き込み処理の動作フローを示すフローチャートである。
【図10】図10は,第1の実施形態にかかるデータ管理装置の既存データの読み出し処理の動作フローを示すフローチャートである。
【図11】図11は,データ管理装置の変更例を示すブロック図である。
【図12】図12は,従来のデータ管理装置に適用される一般的なクラスタ・システムの構成例を示すブロック図である。
【図13】図13は,従来のデータ管理装置に適用される一般的なクラスタ・システムの構成例を示すブロック図である。
【符号の説明】
1 : 情報管理システム
3 : クライアント端末
5 : ネットワーク
10 : データ管理装置
11 : 通信回線
12,13 : 入出力チャネル
22 : 読み出し処理部
23 : 書き込み処理部
40 : 処理データ用キャッシュ領域
50 : メタデータ用キャッシュ領域
P : プロセッサ
SC : 共有キャッシュ装置
ES : 外部記憶装置
MD1 : データ管理テーブル
MD2 : キャッシュ領域使用状況ビットマップ
MD3 : キャッシュ領域リスト[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data management device, and more particularly, to a data management device configured as a cluster system.
[0002]
[Prior art]
As an apparatus for storing various data in an external storage device such as a hard disk and providing various services to a client using the data, a data management device such as a file server or a database server is often used. In recent years, in order to provide services to a larger number of clients, this data management apparatus has a cluster (in which a plurality of independently operating processors (generally, computers) are connected in parallel by a high-speed line. clustering) is used. By configuring the data management device as such a cluster system, the reliability of the entire system can be improved and the load on the processor can be distributed. Hereinafter, a configuration example of a general cluster system applied to the data management device will be described with reference to FIGS.
[0003]
In the configuration example shown in FIG. 12, a plurality of (for example, two) processors P1 'and P2' are occupied by exclusive use cache devices (for example, disk caches) SC1 'and SC2' in which data of the same content is stored. External storage devices ES1 ′ and ES2 ′. Each processor P1 ', P2' caches a partial copy of the data stored in the corresponding external storage device ES1 ', ES2' in its own cache device SC1 ', SC2'. , Handles requests from many client terminals.
[0004]
However, in such a system configuration, when data is updated, a large amount of data is exchanged between processors in order to match data in all external storage devices and to match storage contents of all cache devices. There was a problem that communication had to be performed. Therefore, such a system configuration is not suitable for applications in which data is frequently updated. In addition, since all the external storage devices store the same data, not only is the use efficiency of the external storage device inferior, but also the use efficiency of the cache device is reduced because each processor caches a copy of the same data. There was a problem of bad.
[0005]
In the configuration example shown in FIG. 13, the processors P1 'and P2' occupy the cache devices SC1 'and SC2', respectively, and share one external storage device ES '. Each of the processors P1 'and P2' caches a partial copy of the data stored in the shared external storage device ES 'in its own cache device SC1' or SC2 '. Handles requests from many client terminals.
[0006]
However, even in such a system configuration, when data is updated, there is a problem that a large amount of communication must be performed between processors in order to make the storage contents of all cache devices coincide. In addition, since all processors cache the same data in the cache device occupied by themselves, there still remains a problem that the use efficiency of the cache device is poor. Further, since a plurality of cache devices are independently provided for each processor, the same data transfer occurs many times between each cache device and one external storage device, so that the load on the external storage device increases. There was also a disadvantage that it would be lost. In addition, since a plurality of expensive large-capacity cache devices must be provided, there is a problem that the total cost of the devices increases.
[0007]
[Problems to be solved by the invention]
The present invention has been made in view of the above problems, and an object of the present invention is to reduce the amount of communication between a plurality of processors to enable high-speed processing, and to improve the efficiency of use of a cache device. An object of the present invention is to provide a new and improved data management device capable of reducing costs.
[0008]
[Means for Solving the Problems]
In order to solve the above problems, according to a first aspect of the present invention, there are provided a plurality of processors for performing a data write process and a data read process in response to an external request; A data management device is provided, comprising: an external storage device; and a shared cache device that is shared by a plurality of processors and temporarily stores at least data read and written to the external storage device.
[0009]
With this configuration, the processor can write and store data in the external storage device, and can read data stored in the external storage device. Further, the processor can cache data read from the external storage device or data to be written to the external storage device in the shared cache device. As a result, the processor can read out the data cached in the shared cache device at a high speed and provide the read-out data to the outside, and can write the data requested to be written from the outside to the shared cache device at a high speed.
[0010]
Further, according to the above configuration, since a plurality of processors share the shared cache device, data cached on the shared cache device by one processor can be read or rewritten by another processor. In this way, all data cached in the data management device can be unified in the shared cache device. Therefore, when updating data, there is no need to maintain consistency of cache contents among a plurality of cache devices as in the related art, so that there is no need to transfer data between processors. Also, since multiple copies of the same data are not cached, the use efficiency of the cache device is improved. Furthermore, the number of data transfers between the external storage device and the cache device can be reduced.
[0011]
Further, if the shared cache device is configured so that it can be accessed simultaneously by a plurality of processors, a plurality of processors can operate at the same time when a plurality of external requests are made. Is improved.
[0012]
Further, if the shared cache device is configured as a semiconductor disk cache, the response of the shared cache device is significantly improved as compared with an external storage device such as a hard disk.
[0013]
In addition, if the shared cache device is configured to be provided externally to a plurality of processors, the shared cache device can be easily separated from the processors. Therefore, maintenance such as replacement, repair, and capacity change of the shared cache device can be performed. It can be done quickly and easily.
[0014]
In addition, if the external storage device is provided corresponding to a plurality of processors, a plurality of external storage devices are provided for each processor, so that a load applied to each external storage device can be distributed. Can be. Also, since each processor can simultaneously access and read / write the corresponding external storage device, the processing speed of reading / writing between the processor and the external storage device is improved as a whole.
[0015]
Further, if the shared cache device is configured so as to be able to temporarily store metadata for managing data, address management of data stored in the external storage device and the shared cache device and the use status of the cache area are performed. Metadata such as a cache area link list can be centralized on a shared cache device and unifiedly managed. Therefore, each processor can quickly execute data read / write processing based on the metadata on the shared cache device.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In this specification and the drawings, components having substantially the same function and configuration are denoted by the same reference numerals, and redundant description is omitted.
[0017]
(First Embodiment)
Hereinafter, a data management device according to the first embodiment of the present invention will be described.
[0018]
First, an overall configuration of an information management system using a data management device according to the present embodiment will be described with reference to FIG. FIG. 1 is a block diagram showing the overall configuration of an
[0019]
As shown in FIG. 1, the
[0020]
The
[0021]
Using this input device, the user of the
[0022]
On the other hand, when the
[0023]
The
[0024]
The
[0025]
The
[0026]
Next, the configuration of the
[0027]
As shown in FIG. 2, the data management device 20 includes, for example, two processors P1 and P2 (hereinafter, also referred to as a processor P) and, for example, two external processors P1 and P2 provided in correspondence with the processors P1 and P2. The storage device includes storage devices ES1 and ES2 (hereinafter, also referred to as an external storage device ES) and a shared cache device SC which is a major feature of the present embodiment.
[0028]
<Processor>
The processor P is a processing device that performs various processes such as a data write process and a data read process with respect to the external storage device ES and the shared cache device SC, and includes, for example, a computer.
[0029]
Here, the configuration of the processor P will be described in more detail with reference to FIG. FIG. 3 is a block diagram illustrating a configuration of the processor P according to the present embodiment.
[0030]
As shown in FIG. 3, the processor P includes a transmission /
[0031]
The transmission /
[0032]
The
[0033]
The above-described read processing from the external storage device ES may be performed by the
[0034]
The
[0035]
The above-described write processing to the external storage device ES may be performed by the
[0036]
The
[0037]
The functions of the
[0038]
The
[0039]
The
[0040]
The configuration of one processor P has been described above. Next, the connection state between the processors P will be described.
[0041]
In the
[0042]
By thus clustering the plurality of processors P and configuring the
[0043]
Further, the
[0044]
In the present embodiment, for example, the two processors P1 and P2 are configured, for example, as one spatially independent device (for example, a computer). However, the present invention is not limited to such an example, and the processor P may be in any form as long as it has the processing functions as described above. For example, a plurality of processors P are provided on, for example, one board, or each processor P is configured as, for example, a board that can be inserted into and removed from one housing and housed in one housing. It may be spatially integrated as one piece of hardware. In this case, the
[0045]
<External storage device>
The external storage device ES (External Storage) is, for example, a disk storage device including a hard disk, an optical disk such as a CDROM, a DVD, or the like, and can store a large amount of data and programs. In the present embodiment, for example, one such external storage device ES is provided for each of the plurality of processors P, for example. Specifically, an external storage device ES1 is provided corresponding to the processor P1, and an external storage device ES2 is provided corresponding to the processor P2.
[0046]
The external storage devices ES1 and ES2 are externally attached to the processors P1 and P2 via, for example, input / output channels 12-1 and 12-2 (hereinafter, also referred to as input / output channels 12). I have. The input / output channel 12 is a data communication path connecting the external storage device ES and the processor P. For example, the input / output channel 12 is used for an interface such as ATA (AT Attachment), SCSI (Small Computer System Interface), and USB (Universal Serial Bus). This is an external bus that is connected by a compatible cable. Since the external storage device ES is externally attached in this manner, the processor P and the external storage device ES can be easily separated from each other, so that the external storage device ES can be quickly replaced, repaired, or changed in capacity. . However, the present invention is not limited to such an externally attached example, and the external storage device ES may be built in the processor P.
[0047]
The data necessary for the
[0048]
<Shared cache device>
The shared cache device SC is, for example, a device provided with a cache memory or the like that can be accessed at high speed in a box-shaped casing. The cache memory is configured by a semiconductor memory such as an SRAM (Static Random Access Memory). The shared cache device SC caches (temporarily stores) data necessary for the
[0049]
For example, in a database server or the like, by increasing the capacity of the disk cache and caching the data stored in the external storage device as much as possible, it is possible to read / write requested data at high speed. . From this viewpoint, the shared cache device SC according to the present embodiment has, for example, a very large capacity, for example, several tens of GB (gigabytes). For this reason, if the large-capacity shared cache device SC is configured to cache, for example, most of the data stored in the plurality of external storage devices ES, the processor P can, for example, transfer the data from the low-speed external storage device ES. Data can be read at high speed using only the shared cache device SC without reading out almost any data.
[0050]
Hereinafter, features of the shared cache device SC according to the present embodiment will be further described.
[0051]
First, the shared cache device SC is provided, for example, externally to the processor P, and is characterized in that it is hardware that is, for example, spatially independent from the processor P. That is, in the conventional data management device, as shown in FIGS. 12 and 13, the cache device is built in the processor and provided around the CPU. On the other hand, as shown in FIG. 2, the shared cache device SC according to the present embodiment is configured separately from the processor P in hardware, for example, as if it were a part of the main storage device of the processor P. Of the external storage device.
[0052]
The shared cache device SC and the processor P are connected via, for example, an input /
[0053]
As described above, since the shared cache device SC is externally attached to the processor P, for example, maintenance such as replacement, repair, capacity change of the shared cache device SC, and design change of the
[0054]
Second, the shared cache device SC is characterized in that it is shared by a plurality of processors P. That is, in the conventional data management device, as shown in FIGS. 12 and 13, a plurality of cache devices are provided corresponding to each processor, and data cached between the plurality of cache devices is further provided. Need to be consistent. On the other hand, in the present embodiment, the shared cache device SC is shared by the processors P1 and P2 connected by the input / output channels 13-1 and 13-2 as shown in FIG. For example, only one is provided. Therefore, the plurality of processors P can read and write data by accessing the same cache device (that is, the shared cache device SC), for example, simultaneously.
[0055]
For this reason, it is not necessary to maintain consistency between a plurality of cache devices as in the related art, so that a plurality of processors P do not exchange data via the
[0056]
Further, since the redundancy that the same data is cached in different cache devices can be eliminated, the use efficiency of the cache memory increases. In addition, since there is only one shared cache device SC and data is stored in any one of the external storage devices ES as described above, data transfer between the cache memory and the external storage device ES is not performed. For example, it may be performed only once. For this reason, the transfer amount of the same data between the cache memory and the external storage device ES is reduced, so that the load on the external storage device ES can be reduced.
[0057]
In addition, a large-capacity cache device of, for example, a 128 GB class is very expensive (a single device may cost several hundred million yen or more, for example). The cost required to build the management device becomes enormous. On the other hand, in the
[0058]
Next, a configuration example of information cached in the above-described shared cache device SC will be described with reference to FIG. FIG. 4 is an explanatory diagram schematically illustrating a configuration example of information cached in the shared cache device SC according to the present embodiment.
[0059]
As shown in FIG. 4, the cache area of the shared cache device SC stores, for example, a processing
[0060]
The processing
[0061]
The processing
[0062]
The
[0063]
First, the data management table MD1 according to the present embodiment will be described with reference to FIG. FIG. 5 is an explanatory diagram schematically showing the structure of the data management table MD1 according to the present embodiment.
[0064]
As shown in FIG. 5, the data management table MD1 is a table that holds information for identifying and managing all data existing in the
[0065]
In the record entry, for example, attributes such as (1) data name, (2) host name, (3) file name, (4) last access time, (5) head position of the cache area list, and the like exist. , Various information about the corresponding data is stored.
[0066]
(1) Data name
The data name is a data name given from the
[0067]
(2) Host name
The host name is the name of the processor P connected to the external storage device ES in which data is stored. Processing such as copying data between the external storage device ES and the shared cache device SC is the role of the processor P connected to the external storage device ES. The host name is used to identify which processor P is in charge of this processing.
[0068]
▲ 3 ▼ File name
The file name is a name of a file on the external storage device ES in which the data is recorded.
[0069]
▲ 4 ▼ Last access time
The last access time is the time at which any one of the
[0070]
(5) Top position of cache area list
The head position of the cache area list is a value (area number) that records the position of the head entry of a cache area list MD3 described later. If this value is, for example, a negative value, it means invalid, meaning that the information of the data does not exist in the cache area list MD3.
[0071]
By providing such a data management table MD1, all data in the
[0072]
Next, the cache area use status bitmap MD2 according to the present embodiment will be described with reference to FIG. FIG. 6 is an explanatory diagram schematically showing the configuration of the cache area use status bitmap MD2 according to the present embodiment.
[0073]
As shown in FIG. 6, the cache area use status bitmap MD2 holds information indicating whether or not each cache area CA obtained by dividing the processing
[0074]
By providing such a cache area use state bitmap MD2, the use state of the processing
[0075]
Next, the cache area list MD3 according to the present embodiment will be described with reference to FIG. FIG. 7 is an explanatory diagram schematically showing the configuration of the cache area list MD3 according to the present embodiment.
[0076]
As shown in FIG. 7, the cache area list MD3 holds information indicating which position in one data is cached in the cache area CA.
[0077]
If the data capacity is too large to fit in one cache area CA, a plurality of cache areas CA are allocated to one piece of data. In such a case, it is necessary to link a plurality of cache areas CA which are cache destinations for one data. Therefore, a cache area list MD3 is provided in the form of a link list as shown in FIG.
[0078]
In the cache area list MD3, for example, n entries are provided corresponding to, for example, the n cache areas CA as described above. That is, the total number of entries in the cache area list MD3 is equal to, for example, the total number of divisions of the processing
[0079]
One entry of the cache area list MD3 has attributes such as (1) data position, (2) data size, (3) previous entry position, (4) next entry position, and the like. Link information about data is recorded.
[0080]
(1) Data position
The data position is information indicating which part of one data is cached in the cache area CA corresponding to the entry, and is represented by a relative position from the head of the data of the part. The unit of this data position is the division size of the processing data cache area 40 (the size of one cache area CA), for example, 64 KB. That is, for example, in a case where data of 256 KB is cached separately in, for example, four cache areas CA, for example, the data position of the first entry is “0” × 64 KB, and the data position of the next entry is “ 1 ”× 64 KB, and the data position of the next entry is“ 2 ”× 64 KB.
[0081]
(2) Data size
The data size indicates the effective data size of the data portion held in the cache area CA corresponding to the entry. Normally, this value is the size of one cache area CA, that is, for example, 64 KB, but may be smaller than the size of one cache area CA at the end of the entire data.
[0082]
(3) Previous entry position, (4) Next entry position
The previous entry position and the next entry position are information for constructing a linked list, and represent an entry position before the entry and a next entry position. Specifically, the previous entry position indicates the position of the entry corresponding to the cache area CA holding the part immediately before the data part held by the cache area CA corresponding to the entry. The next entry position indicates the position of the entry corresponding to the cache area CA holding the part immediately after the data part held by the cache area CA corresponding to the entry. Note that the entry position is a numerical value indicating the number of the entry from the top of the cache area list MD3 as described above.
[0083]
The previous entry position and the next entry position will be described in more detail with specific examples. For example, it is assumed that one piece of data is cached in the cache area CA0, the cache area CA3, and the cache area CA7 in this order. In this case, for the entry corresponding to the cache area CA3, its own entry position is “3”, the previous entry position is “0”, and the next entry position is “7”.
[0084]
When such a previous entry position has an invalid value (for example, a negative value), it indicates that the entry is the first entry. When the next entry position has an invalid value (for example, a negative value), it indicates that the entry is the last entry.
[0085]
By providing such a cache area list MD3, for example, one piece of data can be distributed and cached in a plurality of cache areas CA, so that free space can be reduced and the cache memory can be used efficiently.
[0086]
<Processing operation of data management device>
Next, the processing operation of the
[0087]
<Create new data>
First, a process of creating new data in the
[0088]
As shown in FIG. 8, first, in step S100, the processor P1 determines whether data having the same data name as the data to be newly created exists (step S100). When newly creating data in response to a request from the
[0089]
Next, in step S102, a new entry is created on the data management table MD1 (step S102). The
[0090]
Further, in step S104, the processor P1 inquires of the processor P2 about the capacity of the external storage device ES2 (step S104). The
[0091]
Thereafter, in step S106, the processor P1 determines which external storage device ES is free (step S106). By the inquiry in step S104, the processor P1 can acquire information on the free space of the external storage device ES2. Further, the free space of the external storage device ES1 connected to itself is confirmed by itself and known. Therefore, the
[0092]
Next, in step S108, the data is stored in the external storage device ES1 (step S108). The
[0093]
On the other hand, in step S110, the data is stored in the external storage device ES2 (step S110). The
[0094]
Thereafter, in step S112, the contents of the data management table MD1 are set (step S112). The processor P1 sets the record entry of the data management table MD1 newly created in step S102 to the initial state, and ends the new data creation processing. The initial state of the record entry of the data management table MD1 is, for example, as follows.
(1) Data name = specified data name
{Circle around (2)} host name = name of processor P corresponding to external recording device ES storing data
{Circle around (3)} File name = file name on external recording device ES assigned to data
(4) Last access time = time when this entry was initialized
(5) Head position of cache area list = -1 (invalid)
At the time of creating new data as described above, the data is stored in the external storage device ES, but is not cached in the shared cache device SC, for example.
[0095]
<Write processing of existing data>
Next, a process of writing existing data in the
[0096]
As shown in FIG. 9, first, in step S200, the processor P1 determines whether there is data having the same data name as the specified data name (step S200). When updating existing data in response to a request from the
[0097]
Next, in step S202, it is determined whether or not the data portion designated to be written is cached in the shared cache device SC. (Step S202). First, the
[0098]
Further, in step S204, it is determined whether or not there is a free area in the processing data cache area 40 (step S204). The
[0099]
Thereafter, in step S206, the old cache area CA on the processing
[0100]
Next, in step S208, a cache area CA for writing the data is secured in the processing data cache area 40 (step S208). From the cache area CA that was originally free or the cache area CA that has become free in step S206, one or more cache areas CA having a capacity for writing the data are secured. The
[0101]
Further, in step S210, an entry on the cache area list MD3 is newly added or updated. (Step S210). The
[0102]
Thereafter, in step S212, the corresponding data is written in the processing data cache area 40 (step S212). When the data is originally cached, the
[0103]
Next, in step S214, it is specified which file of which external storage device ES the data is stored in (step S214). When the updated data is cached in the shared cache device SC, next, it is necessary to reflect the update on existing data on the external recording device ES. For this reason, the
[0104]
Further, in step S216, the processor P1 updates the data in the external storage device ES1 (step S216). The
[0105]
On the other hand, in step S218, the processor P2 requested by the processor P1 updates the data in the external storage device ES2 (step S218). The
[0106]
Thereafter, in step S220, the last access time is updated (step S220). For example, the
[0107]
<Read processing of existing data>
Next, a process of reading existing data in the
[0108]
As shown in FIG. 10, first, in step S300, the processor P1 determines whether there is data having the same data name as the specified data name (step S300). When reading existing data in response to a request from the
[0109]
Next, in step S302, it is determined whether or not the data portion designated to be read is cached in the shared cache device SC. (Step S302). First, the
[0110]
Further, in step S304, it is determined whether or not there is a free area in the processing data cache area 40 (step S304). The
[0111]
Thereafter, in step S306, the old cache area CA on the processing
[0112]
Next, in step S308, a cache area CA for reading the data is secured in the processing data cache area 40 (step S308). From the cache area CA that was originally free or the cache area CA that has become free in step S206, one or more cache areas CA having a capacity for writing the data are secured. The
[0113]
Further, in step S310, an entry on the cache area list MD3 is newly added or updated. (Step S310). The
[0114]
Then, in step S312, it is specified which file of which external storage device ES stores the specified data (step S312). When the cache area CA in the processing
[0115]
Next, in step S314, the processor P1 reads the data from the external storage device ES1 onto the processing data cache area 40 (step S314). The
[0116]
On the other hand, in step S316, the processor P2 requested by the processor P1 reads the data from the external storage device ES2 onto the processing data cache area 40 (step S316). The
[0117]
Further, in step S318, the data in the shared cache device SC is sent to the client terminal 3 (step S318). The
[0118]
Thereafter, in step S320, the last access time is updated (step S320). For example, the
[0119]
In the processing operation of the
[0120]
The preferred embodiment of the present invention has been described with reference to the accompanying drawings, but the present invention is not limited to this example. It is obvious that a person skilled in the art can conceive various changes or modifications within the scope of the technical idea described in the claims, and those changes naturally fall within the technical scope of the present invention. It is understood to belong.
[0121]
For example, the
[0122]
Further, in the
[0123]
Further, in the
[0124]
In the
[0125]
In the above-described embodiment, the
[0126]
In addition, the
[0127]
【The invention's effect】
As described above, according to the present invention, cache data can be unified by sharing a cache device among a plurality of processors, so that there is no need to transfer data between processors. Therefore, the processing speed of the processor is improved, and the throughput of the entire data management device is improved. Furthermore, since the rate of increase in processing capacity when the number of processors installed is increased, a data management device with excellent expandability can be provided.
[0128]
Further, since multiple copies of the same data are not cached, the utilization efficiency of the cache device can be improved. Further, since the number of data transfers between the external storage device and the cache device is reduced, the load on the external storage device is reduced, and the response of the data management device is improved.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating an overall configuration of an
FIG. 2 is a block diagram illustrating a configuration of a data management device according to the first embodiment;
FIG. 3 is a block diagram illustrating a configuration of a processor according to the first embodiment;
FIG. 4 is an explanatory diagram schematically illustrating a configuration example of information cached in the shared cache device according to the first embodiment;
FIG. 5 is an explanatory diagram schematically illustrating the structure of a data management table according to the first embodiment;
FIG. 6 is an explanatory diagram schematically illustrating a configuration of a cache area use status bitmap according to the first embodiment;
FIG. 7 is an explanatory diagram schematically illustrating a configuration of a cache area list according to the first embodiment;
FIG. 8 is a flowchart illustrating an operation flow of a new data creation process of the data management device according to the first embodiment;
FIG. 9 is a flowchart illustrating an operation flow of a write process of existing data in the data management device according to the first embodiment;
FIG. 10 is a flowchart illustrating an operation flow of a process of reading existing data in the data management device according to the first embodiment;
FIG. 11 is a block diagram illustrating a modification of the data management device;
FIG. 12 is a block diagram showing a configuration example of a general cluster system applied to a conventional data management device.
FIG. 13 is a block diagram showing a configuration example of a general cluster system applied to a conventional data management device.
[Explanation of symbols]
1: Information management system
3: Client terminal
5: Network
10: Data management device
11: Communication line
12, 13: I / O channel
22: read processing unit
23: Write processing unit
40: Processing data cache area
50: Cache area for metadata
P: Processor
SC: Shared cache device
ES: External storage device
MD1: Data management table
MD2: Cache area usage status bitmap
MD3: Cache area list
Claims (6)
前記データが格納される1または2以上の外部記憶装置と;
前記複数のプロセッサによって共有され,少なくとも前記外部記憶装置に読み書きされる前記データを一時記憶する共有キャッシュ装置と;
を備えることを特徴とする,データ管理装置。A plurality of processors for performing data write processing and data read processing in response to external requests;
One or more external storage devices in which the data is stored;
A shared cache device shared by the plurality of processors and temporarily storing at least the data read / written to / from the external storage device;
A data management device, comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002215210A JP2004054845A (en) | 2002-07-24 | 2002-07-24 | Data management device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002215210A JP2004054845A (en) | 2002-07-24 | 2002-07-24 | Data management device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004054845A true JP2004054845A (en) | 2004-02-19 |
Family
ID=31937299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002215210A Withdrawn JP2004054845A (en) | 2002-07-24 | 2002-07-24 | Data management device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004054845A (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005352711A (en) * | 2004-06-10 | 2005-12-22 | Hitachi Ltd | Cache control method, data processing system, and processing program therefor |
JP2006134321A (en) * | 2004-10-21 | 2006-05-25 | Microsoft Corp | Using external memory device to improve system performance |
JP2007249729A (en) * | 2006-03-17 | 2007-09-27 | Hitachi Ltd | Storage system with load distribution function of microprocessor |
JP2010282628A (en) * | 2009-06-08 | 2010-12-16 | Lsi Corp | Method and device for protecting maintainability of data cached in direct attached storage (das) system |
JP2012128805A (en) * | 2010-12-17 | 2012-07-05 | Fujitsu Semiconductor Ltd | Graphics processor |
JP2013114671A (en) * | 2011-11-30 | 2013-06-10 | Hitachi Ltd | Load distribution system |
US8489815B2 (en) | 2008-09-15 | 2013-07-16 | Microsoft Corporation | Managing cache data and metadata |
US8549226B2 (en) | 2004-05-14 | 2013-10-01 | Hewlett-Packard Development Company, L.P. | Providing an alternative caching scheme at the storage area network level |
US8631203B2 (en) | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US9361183B2 (en) | 2008-09-19 | 2016-06-07 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US10216637B2 (en) | 2004-05-03 | 2019-02-26 | Microsoft Technology Licensing, Llc | Non-volatile memory cache performance improvement |
-
2002
- 2002-07-24 JP JP2002215210A patent/JP2004054845A/en not_active Withdrawn
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216637B2 (en) | 2004-05-03 | 2019-02-26 | Microsoft Technology Licensing, Llc | Non-volatile memory cache performance improvement |
US8549226B2 (en) | 2004-05-14 | 2013-10-01 | Hewlett-Packard Development Company, L.P. | Providing an alternative caching scheme at the storage area network level |
JP2005352711A (en) * | 2004-06-10 | 2005-12-22 | Hitachi Ltd | Cache control method, data processing system, and processing program therefor |
JP4506292B2 (en) * | 2004-06-10 | 2010-07-21 | 株式会社日立製作所 | Cache control method, data processing system, and processing program therefor |
US9317209B2 (en) | 2004-10-21 | 2016-04-19 | Microsoft Technology Licensing, Llc | Using external memory devices to improve system performance |
US8909861B2 (en) | 2004-10-21 | 2014-12-09 | Microsoft Corporation | Using external memory devices to improve system performance |
US8006037B2 (en) | 2004-10-21 | 2011-08-23 | Microsoft Corporation | Using external memory devices to improve system performance |
JP2012181863A (en) * | 2004-10-21 | 2012-09-20 | Microsoft Corp | Using external memory devices to improve system performance |
KR101246982B1 (en) | 2004-10-21 | 2013-03-26 | 마이크로소프트 코포레이션 | Using external memory devices to improve system performance |
US9690496B2 (en) | 2004-10-21 | 2017-06-27 | Microsoft Technology Licensing, Llc | Using external memory devices to improve system performance |
JP2006134321A (en) * | 2004-10-21 | 2006-05-25 | Microsoft Corp | Using external memory device to improve system performance |
US11334484B2 (en) | 2005-12-16 | 2022-05-17 | Microsoft Technology Licensing, Llc | Optimizing write and wear performance for a memory |
US9529716B2 (en) | 2005-12-16 | 2016-12-27 | Microsoft Technology Licensing, Llc | Optimizing write and wear performance for a memory |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US9262095B2 (en) | 2006-03-17 | 2016-02-16 | Hitachi, Ltd. | Storage system comprising microprocessor load distribution function |
JP2007249729A (en) * | 2006-03-17 | 2007-09-27 | Hitachi Ltd | Storage system with load distribution function of microprocessor |
US8271979B2 (en) | 2006-03-17 | 2012-09-18 | Hitachi, Ltd. | Storage system comprising microprocessor load distribution function |
US8631203B2 (en) | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US8489815B2 (en) | 2008-09-15 | 2013-07-16 | Microsoft Corporation | Managing cache data and metadata |
US10387313B2 (en) | 2008-09-15 | 2019-08-20 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US9448890B2 (en) | 2008-09-19 | 2016-09-20 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US9361183B2 (en) | 2008-09-19 | 2016-06-07 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US10509730B2 (en) | 2008-09-19 | 2019-12-17 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
JP2010282628A (en) * | 2009-06-08 | 2010-12-16 | Lsi Corp | Method and device for protecting maintainability of data cached in direct attached storage (das) system |
JP2012128805A (en) * | 2010-12-17 | 2012-07-05 | Fujitsu Semiconductor Ltd | Graphics processor |
JP2013114671A (en) * | 2011-11-30 | 2013-06-10 | Hitachi Ltd | Load distribution system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8762480B2 (en) | Client, brokerage server and method for providing cloud storage | |
US9513825B2 (en) | Storage system having a channel control function using a plurality of processors | |
CN100428185C (en) | Bottom-up cache structure for storage servers | |
EP1569085B1 (en) | Method and apparatus for increasing data storage capacity | |
US7707337B2 (en) | Object-based storage device with low process load and control method thereof | |
CA2284947C (en) | Apparatus and method for managing data storage | |
EP1938560B1 (en) | High performance file fragment cache | |
CN102339283A (en) | Access control method for cluster file system and cluster node | |
JP2004511840A (en) | Replacement management of data in one node's cache based on another node's cache | |
JP2004054845A (en) | Data management device | |
CN107493329A (en) | A kind of remote document access method of distributed memory file system | |
US8386741B2 (en) | Method and apparatus for optimizing data allocation | |
US6782444B1 (en) | Digital data storage subsystem including directory for efficiently providing formatting information for stored records | |
JP2005056200A (en) | Data management method, disk storage device and disk storage system | |
US7159139B2 (en) | Digital data storage subsystem including directory for efficiently providing formatting information for stopped records and utilization of a check value for verifying that a record is from a particular storage location | |
US9667735B2 (en) | Content centric networking | |
US6330655B1 (en) | Digital data storage subsystem including directory for efficiently providing formatting information for stored records | |
US20110282923A1 (en) | File management system, method, and recording medium of program | |
JP3848268B2 (en) | Computer system, computer apparatus, data access method and program in computer system | |
US20200125494A1 (en) | Cache sharing in virtual clusters | |
US6842843B1 (en) | Digital data storage subsystem including arrangement for increasing cache memory addressability | |
JPH06290090A (en) | Remote file accessing system | |
KR101470857B1 (en) | Network distributed file system and method using iSCSI storage system | |
US6594726B1 (en) | Digital data storage subsystem including arrangement for efficiently controlling fast write storage operation | |
JP2004013246A (en) | Multiplex write-in type storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20051004 |