JP2004054845A - Data management device - Google Patents

Data management device Download PDF

Info

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
Application number
JP2002215210A
Other languages
Japanese (ja)
Inventor
Shinichi Komori
小森 眞一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002215210A priority Critical patent/JP2004054845A/en
Publication of JP2004054845A publication Critical patent/JP2004054845A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data management device capable of realizing high speed processing and improving utilization efficiency of a cache by reducing communication traffic between processors. <P>SOLUTION: The data management device is characterized by that it is provided with a plurality of processors carrying out a writing process and reading process of data in response to a request from the outside, one or more external storages storing data, and at least a shared cache device shared by the plurality of processors to temporarily store data to be read or written in regard to the external storages. By such a configuration, cache data is centralized since the plurality of processors share the cache. Consequently, since the communication traffic between the processors can be reduced, processing speed is improved and the utilization efficiency of the cache device is enhanced. Furthermore, the number of times of data transfer between the external storages and the cache device can be reduced also. <P>COPYRIGHT: (C)2004,JPO

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 information management system 1 using a data management device 10 according to the present embodiment.
[0019]
As shown in FIG. 1, the information management system 1 according to the present embodiment includes, for example, a plurality of client terminals 3-1, 3-2,..., 3-n (hereinafter, may be referred to as client terminals 3). ) And, for example, one data management device 10 are connected via a network 5. As described above, the information management system 1 is configured as a client / server system in which the client terminal 3 is, for example, a client computer and the data management device 10 is, for example, a server computer. Various services can be provided using the data stored in the device 10.
[0020]
The client terminal 3 is a terminal device for requesting provision of a service, and is, for example, a general-purpose computer such as a personal computer, a mobile terminal such as a portable terminal, a mobile phone, a PHS, a fixed phone, a FAX, or an information home appliance. Be composed. The client terminal 3 includes, for example, an input device (not shown) such as a mouse, a keyboard, and various buttons, and an output device (not shown) such as a monitor and a speaker.
[0021]
Using this input device, the user of the client terminal 3 can input the contents of the requested service to the client terminal 3. When the user's request is input, the client terminal 3 transmits a client request signal to the data management device 10 using a communication device (not shown). The client request signal is, for example, a signal indicating the content of a request from the user, and includes, for example, data information and update data information to be newly registered and their identification information, or identification information of data to be read. Such a client request signal is created by, for example, an application in the client terminal 3 based on a user's input. Note that the client terminal 3 may be configured to automatically transmit a client request signal to, for example, the data management device 10 irrespective of the above-described user input.
[0022]
On the other hand, when the client terminal 3 receives various data transmitted by the data management device 10 using the communication device, the client terminal 3 can output such data to the user using the output device (for example, image display, audio output, and the like).
[0023]
The network 5 is, for example, a dedicated line, the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), a WLL (Wireless Local Loop), a satellite communication network, a telephone network (including a mobile phone network), and a cable. It is composed of various types of public network or dedicated network such as a TV network and a cable broadcasting network, both wired and wireless. When the client terminal 3 and the data management device 10 are provided in, for example, one housing, the network 5 includes a cable corresponding to an interface such as ATA (AT Attachment) or SCSI (Small Computer System Interface) for connecting the both. Shall be considered.
[0024]
The data management device 10 is, for example, a server device that accumulates and stores a large amount of data, and sends out necessary data in response to a request from the client terminal 3, for example, such as a file server, a database server, and a mail server. And so on. For example, the data management device 10 can centrally manage accumulated various data, integrally process correction, update, search, calculation processing, and the like, and can manage a database for protecting data. The data management device 10 is configured as a cluster system in which a plurality of processors and the like are clustered, and details will be described later.
[0025]
The information management system 1 configured as described above provides the data management device 10 with various services for storing, transmitting, transferring, processing, or providing various information based on a request from the client terminal 3. Can be. Examples of this service include, for example, a media information management service for providing, managing, and distributing large-capacity media information such as moving images, music, and text information, an electronic mail service, and various types of information such as consumer information and marketing information. Services to search and analyze.
[0026]
Next, the configuration of the data management device 10 according to the present embodiment will be described in detail with reference to FIG. FIG. 2 is a block diagram illustrating a configuration of the data management device 10 according to the present embodiment.
[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 / reception unit 21, a read processing unit 22, a write processing unit 23, a processing request unit 24, a control unit 25, and a storage unit 26.
[0031]
The transmission / reception unit 21 has a function of transmitting / receiving various types of information to / from the outside and other processors P via, for example, the network 5, the communication line 11, and the input / output channels 12 and 13. For example, the transmitting / receiving unit 21 receives a client request signal from the client terminal 3 via, for example, the network 5 and transmits the read data to the client terminal 3. The transmission / reception unit 21 transmits / receives data to be read / written to / from the external storage device ES and the shared cache device SC. Further, the transmission / reception unit 21 transmits / receives a processing request signal described later to / from another processor P.
[0032]
The read processing unit 22 has a function of reading data from the shared cache device SC or the external storage device ES. More specifically, the read processing unit 22 determines whether the data requested to be read is cached in the shared cache device SC based on a data management table described later. The data is read from the device SC and sent to the client terminal 3. On the other hand, if the data is not cached, after specifying the storage destination external storage device ES, the data is read from the external storage device ES onto the shared cache device SC, cached, and then transmitted to the client terminal 3. Send out.
[0033]
The above-described read processing from the external storage device ES may be performed by the read processing unit 22 of the other processor P by requesting the other processor P, but the details will be described later. In addition, the read processing unit 22 determines, for example, based on the data management table whether or not the data requested to be read actually exists, or determines the free state of the shared cache device SC and secures a free area. , Has a function of updating the data management table and the like with respect to the read data, and details thereof will be described later.
[0034]
The write processing unit 23 has a function of writing data to the shared cache device SC or the external storage device ES. This writing processing includes, for example, both writing processing of new data and writing processing for updating existing data. More specifically, when updating the existing data, the write processing unit 23 determines whether or not the data requested to be written is cached in the shared cache device SC based on a data management table described later. If cached, the data on the shared cache device SC is overwritten first. On the other hand, if the existing data is not cached, the data is written after securing an empty area on the shared cache device SC. Further, the write processing unit 23 stores the data written in the shared cache device SC and the new data in, for example, any one external storage device ES (in the case of existing data, the external storage device ES originally stored). Write and store. Therefore, for example, the same data is not written to a plurality of external storage devices ES.
[0035]
The above-described write processing to the external storage device ES may be performed by the write processing unit 23 of the other processor P by requesting the other processor P, but the details will be described later. The write processing unit 23 also has, for example, a function of determining whether or not the data requested to be written actually exists based on the data management table, and a function of updating the data management table and the like for the written data. Details of these will be described later.
[0036]
The processing request unit 24 requests the other processor P to perform a process of reading data from the external storage device ES connected to the other processor P or a process of writing data to the external storage device ES. Having. In this request processing, the processing request unit 24 of a certain processor P creates a signal (hereinafter, referred to as a processing request signal) for requesting the writing processing or the reading processing, and transmits the processing request signal via the communication line 11. This is executed by transmitting to another processor P. As an example of a case where such a request process occurs, for example, when the processor P1 processes a write request received from the client terminal 3, the write processing unit 23 of the processor P1 sends the data to the shared cache device SC. Can be written to the external storage device ES2, but cannot be written to the external storage device ES2. Therefore, the processing request unit 24 of the processor P1 sends the data cached in the shared cache device SC to the write processing unit 23 of the processor P2. For example, there is a case where an instruction to write and store the data in the corresponding area is given.
[0037]
The functions of the read processing unit 22, the write processing unit 23, and the processing request unit 24 as described above may be realized by, for example, application software installed in the processor P.
[0038]
The control unit 25 includes, for example, a CPU (Central Processing Unit) and has a function of controlling each unit of the processor P. The control unit 25 controls, based on, for example, a computer program stored in the storage unit 26 so that the above-described units of the processor P can perform the above-described functions. In addition, by suitably constructing such a computer program according to a process to be executed, the processor P can have not only the above but also various processing functions.
[0039]
The storage unit 26 stores, for example, a main storage device such as various types of ROM (Read Only Memory) and RAM (Random Access Memory), a relatively small-capacity cache memory required for executing a program, and the above-described program. For example, the storage device is constituted by an auxiliary storage device such as a hard disk. Therefore, for example, it does not have a large-capacity disk cache as provided in a processor of a conventional data management device.
[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 data management device 10 according to the present embodiment, as shown in FIG. 2, for example, two processors P1 and P2 are, for example, via a communication line 11 (including both a wired line and a wireless line) which is an external bus. They are connected in parallel. That is, the independently operable processors P1 and P2 are clustered, and from the viewpoint of the client side, the image is as if there is one large processor (server) as a whole.
[0042]
By thus clustering the plurality of processors P and configuring the data management device 10 as a cluster system, it is possible to improve the reliability of the entire system and improve the performance. That is, for example, even if a failure occurs in one processor P, another processor P takes over the processing, so that the entire system can continue to operate without being down. Also, by responding to requests from many client terminals 3 by a plurality of processors P that operate independently, the load on one processor P can be distributed. Becomes possible.
[0043]
Further, the communication line 11 connecting a plurality of processors P, for example, is not used for transferring data itself, but functions as a control line for mutually requesting processing. That is, the two processors P only transmit and receive the processing request signal, for example, to and from each other via the communication line 11, and need to transmit and receive a large amount of data between the processors as in a conventional data management device. There is no. This is because a plurality of processors P share the shared cache device SC, and therefore it is not necessary to maintain consistency between cache devices as in the related art. For this reason, the processing speed of the data management device 10 becomes higher, and this is very useful especially when the data handled by the data management device 10 is large-volume data with a high update frequency.
[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 communication line 11 can be, for example, an internal bus.
[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 data management device 10 to execute the service is stored in the external storage device ES having such a configuration. At this time, the data is stored in one of the external storage devices ES1 and ES2. The point is characteristic. Therefore, the same data is not stored in both the external storage devices ES1 and ES2, so that the utilization efficiency of the external storage device ES can be improved. The external storage device ES is managed by, for example, a general computer file system, and the data is managed by, for example, a file format.
[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 data management device 10 to execute a service, and reduces data transmission loss between the processor P and the external storage device ES. For example, it functions as a disk cache. The disk cache composed of such a semiconductor memory has a response characteristic that is, for example, ten times or more faster than the external storage device ES composed of a hard disk or the like.
[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 / output channel 13 which is an external bus. The input / output channel 13 connects, for example, a plurality of input / output terminals (not shown) provided in the shared cache device SC to input / output terminals (not shown) of each processor P, and performs high-speed transmission. (For example, a transmission speed of 2.5 Gbps). Therefore, the processor P can access the shared cache device SC via the input / output channel 13 at high speed. Therefore, the transmission loss due to the external attachment of the shared cache device SC can be sufficiently reduced, so that the shared cache device SC can suitably function as, for example, a disk cache. As a data transmission standard of the input / output channel 13, for example, an InfiniBand standard that can realize high-speed serial data transfer between a server and a storage using an optical fiber and a switching technology may be used.
[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 data management device 10 can be performed quickly and easily. Become. Note that the shared cache device SC is not necessarily limited to the external example as described above. For example, the configuration is such that the shared cache device SC is built in any one of the processors P, and the other processors P are connected to this processor P via an external bus and can access the built-in shared cache device SC. May be.
[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 communication line 11 when data is updated, for example. I'm done. Accordingly, since the communication amount between the processors P is drastically reduced, the processing speed of each processor P is improved, and the throughput of the entire system is increased. Further, it is possible to provide the data management device 10 having a high effect of increasing the processing capacity when the number of processors P is increased and having excellent expandability.
[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 data management device 10 according to the present embodiment, for example, only one shared cache device SC needs to be provided as a cache device, so that the cost can be significantly reduced as compared with the related art.
[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 data cache area 40 in which data to be actually processed is cached and metadata required for operation of the data management apparatus 10. And the metadata cache area 50.
[0060]
The processing data cache area 40 is an area in which data (actual processing data) provided as a service by the data management apparatus 10 is cached, and occupies, for example, most of the capacity of the cache area. By caching data in the processing data cache area 40, the shared cache device SC can function as a disk cache for reducing data transmission loss between the processor P and the external storage device ES.
[0061]
The processing data cache area 40 is divided into, for example, N cache areas CA1 to CAn-1 (hereinafter, also referred to as a cache area CA). The capacity of each cache area CA is, for example, 64 KB (kilobytes) and is, for example, a fixed size. Each cache area CA is assigned an area number (0 to n-1) in order from the top, and the cache area CA is referred to using the area number. One piece of data to be cached is cached in one cache area CA if the size fits in one cache area CA, and is cached across a plurality of cache areas CA if the size is larger than one cache area CA. .
[0062]
The metadata cache area 50 is an area in which metadata necessary for managing the data is cached. The metadata includes, for example, a data management table MD1, a cache area use status bitmap MD2, and a cache area list MD3. Hereinafter, for example, the three metadata will be described in detail.
[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 data management device 10. The data management table MD1 is, for example, a group of fixed-length records, and, for example, one record entry corresponds to, for example, one data. Therefore, in the example of FIG. 5, for example, m records are registered, so that, for example, m data exists in the data management device 10.
[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 client terminal 3, and is, for example, an arbitrary character string. Note that it is not allowed that the same name exists in one data management device 10.
[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 client terminals 3 last accessed some data. When the processing data cache area 40 runs short, data to be deleted from the processing data cache area 40 is determined based on the last access time.
[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 data management device 10 can be unifiedly managed without leakage or duplication.
[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 data cache area 40 into, for example, n pieces is used. . In FIG. 6, whether or not each cache area CA is used is represented by white circles and black circles for convenience of description, but is actually represented by, for example, a 1-bit flag (for example, unused bits). "0" if present, "1" if in use, etc.). Therefore, the cache area use state bitmap MD2 is, for example, an n-bit bitmap in order to indicate the use state of the entire processing data cache area 40. Further, since the relative position from the head of each bit of the cache area use status bit map MD2 corresponds to the area number (0 to n-1) of each divided cache area CA, the use state of any cache area CA Can be identified. For example, in the example of FIG. 6, the bit at the first position (the leftmost black circle in FIG. 6) indicates the use status of the cache area CA1.
[0074]
By providing such a cache area use state bitmap MD2, the use state of the processing data cache area 40 can be centrally managed, so that the time required to search for a free area when caching data can be reduced.
[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 data cache area 40. Further, the cache area CA corresponding to the entry can be represented by the relative position from the head of the entry on the cache area list MD3. That is, the k-th entry from the beginning of the cache area list MD3 has information on data held in the cache area CAk (the cache area CA with the area number k).
[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 data management device 10 having the above configuration will be described. Hereinafter, as typical examples of the processing of the data management apparatus 10, three processings of creating new data, writing existing data, and reading existing data will be described in detail. In the following description of the processing method, an example in which a request from the client terminal 3 connected to the processor P1 is processed will be described. However, processing of a request from the client terminal 3 connected to the processor P2 is substantially the same. It is processed according to the following procedure.
[0087]
<Create new data>
First, a process of creating new data in the data management device 10 according to the present embodiment will be described with reference to FIG. FIG. 8 is a flowchart illustrating an operation flow of a new data creation process of the data management apparatus 10 according to the present embodiment.
[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 client terminal 3 connected to the processor P1, the processor P1 determines whether data having the same name already exists in the system. This determination is executed by the write processing unit 23 of the processor P1, for example, sequentially taking out record entries of the data management table MD1 and comparing the data name designated by the client terminal 3 with all existing data names. Is done. If data having the same data name exists, the process proceeds to step S101, for example, an error indicating that the data name is duplicated is returned to the client terminal 3, and the operation flow ends. On the other hand, if there is no data having the same data name, the process proceeds to step S102.
[0089]
Next, in step S102, a new entry is created on the data management table MD1 (step S102). The write processing unit 23 of the processor P1 accesses the shared cache device SC and secures a new entry in the data management table MD1. At this point, the cache area CA is not newly assigned to the data.
[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 write processing unit 23 of the processor P1 inquires of the processor P2 about the free space of the external storage device ES2 connected to the processor P2. This inquiry is performed, for example, in a format in which the write processing unit 23 transmits a free space inquiry signal to the processor P2 via the communication line 11 and receives a response signal from the processor P2.
[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 write processing unit 23 of the processor P1 can compare which of the free space of the external storage device ES1 and the free space of the external storage device ES2 is larger. As a result, when it is determined that the free space of the external storage device ES1 is large, the process proceeds to step S108, and when it is determined that the free space of the external storage device ES2 is large, the process proceeds to step S110.
[0092]
Next, in step S108, the data is stored in the external storage device ES1 (step S108). The write processing unit 23 of the processor P1 creates a new file in the external storage device ES1, and assigns the file to the data. As a result, the newly created data is stored in the external storage device ES1.
[0093]
On the other hand, in step S110, the data is stored in the external storage device ES2 (step S110). The processing request unit 24 of the processor P1 requests the processor P2 to write the data to the external storage device ES. Upon receiving this request, the write processing unit 23 of the processor P2 creates a new file in the external storage device ES2 and allocates this file to the data.
[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 data management device 10 according to the present embodiment will be described with reference to FIG. FIG. 9 is a flowchart illustrating an operation flow of the existing data write processing of the data management apparatus 10 according to the present embodiment.
[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 client terminal 3 connected to the processor P1, the processor P1 determines whether or not data with the specified data name actually exists in the system. This determination is performed by the write processing unit 23 of the processor P1, for example, sequentially taking out the record entries of the data management table MD1 and comparing the data name designated by the client terminal 3 with the existing data name. You. If the data with the same data name does not exist, the process proceeds to step S201, where an error indicating that the data with the specified data name does not exist is returned to the client terminal 3, and the operation flow ends. On the other hand, if data having the same data name exists, the process proceeds to step S202.
[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 write processing unit 23 of the processor P1 extracts the position of the first entry of the cache area list MD3 from the record entry of the data in the data management table MD1. Next, based on the position of the first entry, while following the link list of the cache area list MD3, the data portion designated to be written (that is, the portion to be updated of the data, and a part or the whole of the data) ) Is cached in the processing data cache area 40 of the shared cache device SC. As a result, if it is determined that the data portion is cached in the processing data cache area 40, the process proceeds to step S212. On the other hand, if it is determined that the data is not cached, the process proceeds to step S204.
[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 write processing unit 23 of the processor P1 refers to the cache area use status bitmap MD2 to determine whether, for example, there is free space in the processing data cache area 40 to cache the data. As a result, when it is determined that there is a free space, the process proceeds to step S208, and when it is determined that there is no free space, the process proceeds to step S206.
[0099]
Thereafter, in step S206, the old cache area CA on the processing data cache area 40 is released (step S206). The write processing unit 23 of the processor P1 detects, for example, data that has not been accessed for the longest time based on the last access time in the entry of the data management table MD1, and discards the data from the cache area CA. As a result, one or more cache areas CA in which the old data is cached are released, and a space is generated in the processing data cache area 40.
[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 write processing unit 23 newly allocates the cache area CA to the data.
[0101]
Further, in step S210, an entry on the cache area list MD3 is newly added or updated. (Step S210). The write processing unit 23 of the processor P1 adds, for example, an entry to the cache area list MD3 or updates information inside the existing entry in accordance with the allocation of the new cache area CA to the data in step S208. By doing so, the cache area list MD3 is reset to the one corresponding to the data.
[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 write processing unit 23 of the processor P1 overwrites the data portion updated on the cache area CA. In addition, when a cache area CA for writing the data is newly secured in step S208, the data is newly written on the cache area CA. By such processing, the data is cached on the shared cache device SC with the updated contents.
[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 write processing unit 23 of the processor P1 specifies in which file of which external recording device ES the updated data has to be written. This specification is performed based on the host name and the file name in the record entry corresponding to the data in the data management table MD1. When the host name indicates the processor P1, the process proceeds to step S216, and when the host name indicates the processor P2, the process proceeds to step S218.
[0104]
Further, in step S216, the processor P1 updates the data in the external storage device ES1 (step S216). The write processing unit 23 of the processor P1 overwrites the file specified in step S214 with the updated content of the data from the files in the external storage device ES1.
[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 processing request unit 24 of the processor P1 requests the processor P2 to update the data in the external storage device ES2. Upon receiving this request, the write processing unit 23 of the processor P2 overwrites the file specified in step S214 with the updated content of the data from the files in the external storage device ES2.
[0106]
Thereafter, in step S220, the last access time is updated (step S220). For example, the write processing unit 23 of the processor P1 updates the last access time in the record entry of the data management table MD1 when the process of updating data to the external storage device ES in step S216 or step S218 ends.
[0107]
<Read processing of existing data>
Next, a process of reading existing data in the data management device 10 according to the present embodiment will be described with reference to FIG. FIG. 10 is a flowchart illustrating an operation flow of a process of reading existing data in the data management device 10 according to the present embodiment.
[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 client terminal 3 connected to the processor P1, the processor P1 determines whether or not data with the specified data name exists in the system. This determination is performed by the reading processing unit 22 of the processor P1 sequentially taking out, for example, record entries of the data management table MD1, and comparing the data name designated by the client terminal 3 with the existing data name. You. If the data with the same data name does not exist, the process proceeds to step S301, where an error indicating that the data with the specified data name does not exist is returned to the client terminal 3, and the operation flow ends. On the other hand, if data having the same data name exists, the process proceeds to step S302.
[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 read processing unit 22 of the processor P1 extracts the position of the first entry of the cache area list MD3 from the record entry of the data in the data management table MD1. Next, based on the position of the first entry, while following the link list of the cache area list MD3, the data portion designated to be read (that is, the portion to be read out of the data, and part or all of the data) Is cached in the processing data cache area 40 of the shared cache device SC. As a result, if it is determined that the corresponding data portion is not cached in the processing data cache area 40, the process proceeds to step S304. On the other hand, if it is determined that the data is cached, there is no need to read the data from the external storage device ES, so the process proceeds to step S318.
[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 read processing unit 22 of the processor P1 refers to the cache area use status bitmap MD2 and determines whether or not there is free space in the cache area for processing data 40 to read the data from the external storage device ES and cache it, for example. Is determined. As a result, when it is determined that there is a free space, the process proceeds to step S308, and when it is determined that there is no free space, the process proceeds to step S306.
[0111]
Thereafter, in step S306, the old cache area CA on the processing data cache area 40 is released (step S306). The read processing unit 22 of the processor P1 detects, for example, data that has not been accessed for the longest time based on the last access time in the entry of the data management table MD1, and discards the data from the cache area CA. As a result, one or more cache areas CA in which the old data is cached are released, and a space is generated in the processing data cache area 40.
[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 read processing unit 22 newly allocates the cache area CA to the data to be read.
[0113]
Further, in step S310, an entry on the cache area list MD3 is newly added or updated. (Step S310). The read processing unit 22 of the processor P1 adds, for example, an entry to the cache area list MD3 or updates information inside an existing entry in accordance with the allocation of the new cache area CA to the data in step S308. By doing so, the cache area list MD3 is reset to the one corresponding to the data.
[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 data cache area 40 is secured, next, it is necessary to read the designated data from the external recording device ES into the secured cache area CA. Therefore, the read processing unit 22 of the processor P1 specifies from which file of which external recording device ES the data should be read. This specification is performed based on the host name and the file name in the record entry corresponding to the data in the data management table MD1. If the host name indicates the processor P1, the process proceeds to step S314. If the host name indicates the processor P2, the process proceeds to step S316.
[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 read processing unit 22 of the processor P1 reads the data from the file specified in step S312 in the external storage device ES1, and caches the data in the cache area CA allocated in step S308.
[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 processing request unit 24 of the processor P1 requests the processor P2 to read the data from the external storage device ES2. Upon receiving this request, the read processing unit 22 of the processor P2 reads the data from the file specified in step S312 in the external storage device ES2, and caches the data in the cache area CA allocated in step S308. I do.
[0117]
Further, in step S318, the data in the shared cache device SC is sent to the client terminal 3 (step S318). The read processing unit 22 of the processor P1 sends the data cached in the processing data cache area 40 to the client terminal 3 that has requested the read using the transmission / reception unit 21. The client terminal 3 receiving the data can browse the data using, for example, a predetermined application.
[0118]
Thereafter, in step S320, the last access time is updated (step S320). For example, the read processing unit 22 of the processor P1 updates the last access time in the record entry of the data management table MD1 when the transmission processing in step S318 ends.
[0119]
In the processing operation of the data management device 10 described above, for example, the two processors P1 and P2 cache data in the same shared cache device SC. No need to take. For this reason, there is no need to transfer updated data between processors when updating data, so that the processing speed of the data management device 10 can be improved. Further, since a plurality of copies of the same data are not cached or stored in a plurality of external storage devices ES, the utilization efficiency of the shared cache device SC and the external storage device ES is improved, and the storage capacity of the entire system is improved. Can be reduced. Further, since the number of data transfers between the external storage device ES and the shared cache device SC for copying is small, the load on the external storage device ES is reduced, and the response of the data management device 10 configured as a cluster system is reduced. Can be improved. The above-described effects become more remarkable when the data managed by the data management device 10 is frequently updated and has a large capacity.
[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 data management device 10 according to the embodiment has a configuration including, for example, two sets of processors P and an external storage device ES. However, the present invention is not limited to this example. As shown in FIG. 11, for example, three or more arbitrary n sets of processors P and an external storage device ES may be provided. At this time, the n processors P may be connected to each other via the communication line 11 and may share, for example, one shared cache device SC connected via the input / output channel 12. With this configuration, a large-scale, for example, server environment can be constructed by clustering more processors P, so that the processing capacity of the data management device 10 is improved, and it is possible to respond to more requests from the client terminals 3. .
[0122]
Further, in the data management device 10 according to the above-described embodiment, the external storage device ES is provided corresponding to each of the plurality of processors P. However, the present invention is not limited to such an example, and the external storage device ES is not necessarily provided. It may not be provided in one-to-one correspondence with the processor P. For example, for example, one large-capacity external storage device ES connected to, for example, only the processor P1 may be provided in the data management device 10. As shown in FIG. 11, a plurality of processors P share, for example, one or more external storage devices ES (that is, the external storage device ES is connected to all the processors P, and any of the processors P (A shared external storage device that can also be accessed from the outside).
[0123]
Further, in the data management device 10 according to the above embodiment, for example, only one shared cache device SC is provided. However, the present invention is not limited to such an example. An SC may be provided to connect each shared cache device SC to each processor P, for example, in parallel. Thereby, the shared cache device SC can be multiplexed to cope with an unexpected failure of the shared cache device SC, so that the reliability of the data management device 10 is improved.
[0124]
In the data management device 10 according to the above embodiment, the plurality of processors P, the shared cache device SC of one, and the plurality of external storage devices ES are separately configured as hardware, but the present invention is not limited to such an example. Not limited. For example, the external storage device ES may be incorporated in the housing of the processor P instead of being externally attached. Further, for example, all of the plurality of processors P, the shared cache device, and the plurality of external storage devices ES are integrated in hardware, for example, provided in one housing or on the same substrate. May be used.
[0125]
In the above-described embodiment, the client terminal 3 which is separately configured as hardware is used as means for requesting the data management device 10 to provide a service (for example, data transmission / reception). It is not limited to. For example, the requesting means may be hardware integrated with the data management device 10, or may be configured by software installed in the data management device 10 or other devices, for example. .
[0126]
In addition, the data management device 10 may include a data processing unit that processes data to be read and written. For example, by providing such a data processing unit, the processor P can perform processing operations such as various calculations, aggregations, and synthesis on data read and written between the external storage device ES and the shared cache device SC. You may. Thus, the data management device 10 provides the client terminal 3 with data processed in a desired mode, or stores the processed data in the external storage device ES, for example, to improve the efficiency of the external storage device ES. Can be planned.
[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 information management system 1 in which a data management device according to a first embodiment is used.
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:
前記共有キャッシュ装置は,前記複数のプロセッサによって同時にアクセス可能であることを特徴とする,請求項1に記載のデータ管理装置。2. The data management device according to claim 1, wherein the shared cache device is simultaneously accessible by the plurality of processors. 前記共有キャッシュ装置は,半導体ディスクキャッシュであることを特徴とする,請求項1に記載のデータ管理装置。The data management device according to claim 1, wherein the shared cache device is a semiconductor disk cache. 前記共有キャッシュ装置は,前記複数のプロセッサに外付けされて設けられることを特徴とする,請求項1に記載のデータ管理装置。2. The data management device according to claim 1, wherein the shared cache device is provided externally to the plurality of processors. 前記外部記憶装置は,前記複数のプロセッサに対応して設けられていることを特徴とする,請求項1に記載のデータ管理装置。2. The data management device according to claim 1, wherein the external storage device is provided corresponding to the plurality of processors. 前記共有キャッシュ装置は,さらに,前記データを管理するためのメタデータを一時記憶できることを特徴とする,請求項1に記載のデータ管理装置。2. The data management device according to claim 1, wherein the shared cache device can further temporarily store metadata for managing the data.
JP2002215210A 2002-07-24 2002-07-24 Data management device Withdrawn JP2004054845A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (27)

* Cited by examiner, † Cited by third party
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&#39;s cache based on another node&#39;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