JP4506292B2 - キャッシュ制御方法およびデータ処理システム並びにその処理プログラム - Google Patents

キャッシュ制御方法およびデータ処理システム並びにその処理プログラム Download PDF

Info

Publication number
JP4506292B2
JP4506292B2 JP2004172001A JP2004172001A JP4506292B2 JP 4506292 B2 JP4506292 B2 JP 4506292B2 JP 2004172001 A JP2004172001 A JP 2004172001A JP 2004172001 A JP2004172001 A JP 2004172001A JP 4506292 B2 JP4506292 B2 JP 4506292B2
Authority
JP
Japan
Prior art keywords
data
area
cache
storage
address
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.)
Expired - Fee Related
Application number
JP2004172001A
Other languages
English (en)
Other versions
JP2005352711A (ja
Inventor
功一 大坪
信男 河村
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004172001A priority Critical patent/JP4506292B2/ja
Priority to US10/932,107 priority patent/US7107404B2/en
Publication of JP2005352711A publication Critical patent/JP2005352711A/ja
Application granted granted Critical
Publication of JP4506292B2 publication Critical patent/JP4506292B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はストレージシステムのキャッシュ制御方法に関し、特に計算機、又は、プログラムのアクセスに応じた効果的なキャッシング制御技術に関する。
従来、異なる業務を行う計算機、又は、プログラムで同一なファイル(論理ブロックアドレス)を使用する場合、論理的な不整合が発生することを防止するため、共有なファイルを排他的に使用する排他制御が行われている。この技術によると、特定の計算機、又は、プログラムによるファイルに対するデータ更新要求等の処理の実行が終了するまで、他のプログラムによる当該ファイルへのアクセスは抑止される。そこで、特許文献1に開示されているような、ファイルを二重化し、参照用と更新用に交互に切替えて使用する方式がある。
特開平3−266046号公報
参照と更新の競合はなくなるが、更新用ファイルから参照用ファイルへのコピー処理を行うため、トータルで入出力回数は2倍程度増える。さらに、更新用ファイルから参照用ファイルへのコピー処理中は、参照用ファイルへのアクセスは抑止される可能性が高く参照用ファイルをアクセスするプログラムのレスポンスが悪化する。さらに、更新したファールのデータにより、ストレージのキャッシュの情報に影響を与え、他のプログラムのレスポンスが悪化する。
本発明は、計算機からストレージシステムのキャッシュを制御し、データの参照を行いながら、並行して、データを更新するものである。さらに、計算機からストレージシステムのキャッシュに識別番号を付加してキャッシュの確保、解放を行うものである。さらに、ストレージシステムのキャッシュから、ドライブへの書き込みを計算機から制御するものである。さらに、識別番号を付加したコマンドでストレージシステムを制御するものである。さらに、識別番号毎にキャッシュを制御するストレージシステムである。
本発明によれば、更新用ファイルから参照用ファイルへのコピー処理をストレージシステムで行うため、ストレージシステムへのアクセスを削減することが可能となる。
以下,本発明の実施例を図面に基づいて詳細に説明する。
図1は、発明実施例の構成を示す図である。101,102は計算機であり、ストレージシステム103を制御してデータの参照、及び、更新を行なう。ディスク107は、データが格納される装置であり、低速な装置であるため、キャッシュ104を設ける。キャッシュ104は、計算機101用のキャッシュ105と計算機102用のキャッシュ106には分けられ制御される。計算機101がデータを参照する場合、ディスク107と同じデータがキャッシュ104にある場合、キャッシュ104からデータを計算機101に返信する。キャッシュ104に格納されていない場合は、ディスク107から読込み計算機101にデータを返信しキャッシュ105に格納する。計算機102からデータの更新を行った場合は、キャッシュ106に更新データが格納され、計算機102の制御でキャッシュ106に格納したデータをディスク107に格納するか、更新したキャッシュ106のデータを無効にするか制御するものである。キャッシュ106に更新したデータをディスク107に格納する際、更新データと同じアドレスのデータがキャッシュ105に格納されている場合、キャッシュ105に格納されている同じアドレスのデータを無効にし、キャッシュ106の更新データをキャッシュ105に反映させるものである。キャッシュ106に格納している更新データを無効にする際は、キャッシュ106の更新データのみを無効にするものである。
図2は、本発明によるキャッシュ制御方法を適用するストレージシステムの概略構成を示したものである。201,202は計算機であり、216はディスク制御装置である。214はディスクドライブであり、ディスク制御装置216と接続される。計算機201,202とディスク装置216は、ネットワーク215に接続される。計算機201から入出力要求コマンドがディスク制御装置216に発行されると、ディスク装置216は入出力要求コマンドを解釈し、ドライブ214に対して入出力を行う。ディスク制御装置216は、さらに詳細には、ネットワーク制御部203、制御プロセッサ204、メモリ207、ドライブ制御部205、およびこれを接続するバス206から構成される。ネットワーク制御部203は計算機201,202から発行される入出力コマンドの受付や、処理終了およびデータを計算機201,202へ知らせる制御を行う。ドライブ制御部205は、ドライブ214を接続に対するデータの入出力制御を行う。ネットワーク制御部203とドライブ制御部205は、制御プロセッサ204から起動/終了、データ転送指示が発行され動作する。制御プロセッサ204の動作は、メモリ207内に格納されているプログラムやテーブルに記述されている。
読み込みプログラム208は、計算機201,202から発行された入力要求を制御し、書き込みプログラム209は計算機201,202から発行される出力要求を制御する制御プログラムである。キャッシュ確保プログラム210は、データを格納するためのキャッシュ領域213の割当てを行う。キャッシュ解放プログラム211は、キャッシュ確保プログラム210で確保した、キャッシュ領域213の解放を行う。書き出しプログラム217は、キャッシュ領域213の内容を追い出し、又は、定期的にドライブに書き出すためのプログラムである。フラッシュプラグラム218は、キャッシュ領域にあるデータをドライブに書き出す指示を行うプログラムである。制御テーブル212は、キャッシュ領域213に関する情報が格納されている。キャッシュ領域は、ドライブ214から読み込んだデータを一時的に格納しておく領域であり、再度同一データの読み込みが、計算機201,202から要求された場合に、キャッシュ領域213から計算機201,202へデータを返送することで高速化することが可能となる。また計算機201,202から書き込み要求が発生した場合には、キャッシュ領域213内に書き込みデータを一時的に保持するために使用される。計算機201,202へはキャッシュ領域213へデータを書き込んだ時点で書き込み完了報告を行うので、書き込みを高速に行ったように見せることができる。キャッシュ領域213から追い出された時、または、定期時間(予め定めた時間間隔)毎もしくはLRUなどのキャッシュ追い出しアルゴリズムに基づいて起動する書き込み制御によりドライブ214にデータは書き込まれる。各処理部やプログラムは、ハードウェアで実施可能である。本実施例で説明する計算機は、仮想計算機や、論理サーバ、論理計算機でも実施可能である。各処理部や各プログラムは、プログラムやオブジェクト、プロセス、スレッドで実現することが可能である。
図3はキャッシュ領域305の基本的な動作を示している。計算機301内ではプログラムA(302)、計算機303内ではプログラムB(304)が起動されている状態を示している。キャッシュ領域305内では、プログラムA(302)の要求に対応したプログラムA用キャッシュ領域307、プログラムB(304)の要求に対応したプログラムB用キャッシュ領域306が確保されている状態を示している。プログラムA(302)の要求したデータがキャッシュ領域305に格納されていなかった場合は、ドライブ307からデータを読み出しプログラムA用キャッシュ領域308に格納し、プログラムAへデータを転送する。プログラムB(304)の要求した書き込みデータは、プログラムB用キャッシュ領域306に格納する。プログラムB用キャッシュ領域306に格納したデータはプログラムB(304)に指示によりドライブ308に書き込む、又は、プログラムB用キャッシュ領域306に書き込んだデータを無効にする。
図4〜7、図24はディスク制御装置を制御する入出力コマンドの一例を示している。図4のコマンド401はストレージシステムからデータを読み込むコマンドであり、図5のコマンド406はストレージシステムにデータを書き込むコマンドであり、図6のコマンド411はストレージシステムのキャッシュを確保するコマンドであり、図7のコマンド416はストレージシステムのキャッシュを解放するコマンドであり、図24のコマンド421はキャッシュに蓄えているデータをドライブへ書き込み指示を行うコマンドである。コマンド401は、命令コード402、LBA403(LBA:論理ブロックアドレス)、データ長404、識別番号405から構成される。コマンド406は、命令コード407、LBA408、データ長409、識別番号410から構成される。コマンド411は、命令コード412、キャッシュ識別番号413、キャッシュ長414、コントロール415から構成される。コマンド416は、命令コード417、キャッシュ識別番号418、コントロール419、タイマー420から構成される。コマンド421は、命令コード422、キャッシュ識別番号423、コントロール424、タイマー425から構成される。命令コード402,407,412,417、422には、それぞれ、リード、ライト、キャッシュ確保、キャッシュ解放、フラッシュがある。LBA403,408は、ドライブ中のデータの場所を示す。データ長404,409は、入出力のデータの長さを示す。キャッシュ識別番号405,410,413,418、423は、使用するキャッシュの識別する情報を示す。キャッシュ長414は確保するキャッシュ長を示す。コントロール415は、確保するキャッシュの制御情報を示す。この情報により、コマンド406で書き込みを行うデータを指示があるまでキャッシュに保留することが出来る。コマンド416のコントロール419は、キャッシュ解放時に、コマンド421のコントロール424は、フラッシュ時に、保留していた更新データをドライブへ反映するか否かの有無を示す。タイマー420、425は、キャッシュ解放、フラッシュの遅延時間を指定する。このタイマーを指定することで、キャッシュに保留していた更新データを指定時間に高速にドライブへ反映することができる。また、指定時間で、更新データをドライブへ反省させないで、無効化することも出来る。これは、指定時間で、ドライブの内容を元に戻ることと同様なことが出来る。
図8は、ディスク制御装置で命令コードを受けた場合のフローを示している。命令コード解読501は、受け付けたコマンドの命令の意味を解読する。ステップ502で、命令コードが読込み要求であるかチェックする。リード処理503は、図11に示すフローのデータの読み出し処理を行いデータの読み出しを行う。ステップ504は命令コードが書き込み要求であるかチェックする。ライト処理505は、図15に示すフローの書き込み処理を行いデータの書き込みを行う。ステップ506は、命令コードがキャッシュ確保であるかチェックする。キャッシュ確保処理507は、図10に示すフローの識別番号毎のキャッシュ確保処理を行い、図2に示すキャッシュ領域、制御テーブルが使用される。ステップ508は、命令コードがキャッシュ解放であるかチェックする。キャッシュ解放処理509は、図19、または、図20に示すフローの識別番号毎に割当てた、キャッシュ解放処理を行う。ステップ510は、命令コードがフラッシュであるかチェックする。フラッシュ処理511は図22に示すフローのデータのフラッシュを行う。
図9は図2の制御テーブルの構成を示している。キャッシュ管理部601、602は、図4の識別番号に対応する制御テーブルである。キャッシュ管理部601、602では、キャッシュ部603から識別番号毎に割当てたキャッシュ部604,605を管理する。キャッシュ管理部には、キャッシュ管理識別番号608、キャッシュ部ポインタ609、キャッシュ部サイズ610、保留LBAポインタ611、前方識別番号ポインタ612、後方識別番号ポインタ613、保留フラグ614、タイマー値624、タイマー種別625から構成される。608〜614、624、625が識別番号毎の管理単位である。キャッシュ識別番号608は割当てたキャッシュ部の領域を識別する情報であり、キャッシュ部ポインタ609、キャッシュ部サイズ610は、割当てたキャッシュ領域のポインタ、サイズを格納する領域であり、タイマー値624、タイマー種別625は、キャッシュ解放、及び、フラッシュを行う時間、タイマーの種別を格納する領域であり、保留フラグ614はデータを書き込んだ際、計算機から指示があるまでドライブへの書き込みを保留するか否かを示すフラグであり、保留LBAポインタ611で保留しているLBA管理部へのポインタを格納する領域であり、前方識別番号ポインタ、後方識別番号ポインタは、各キャッシュ管理部を連結するためのポインタであり、キャッシュ管理部の削除や登録が生じた場合に変更が生じる。LBA管理部606、607は、データを格納しているキャッシュ部を管理する。LBA管理部には、更新フラグ615、論理ブロックアドレス616、参照キャッシュ管理ポインタ617、参照キャッシュ部ポインタ618、保留キャッシュ管理ポインタ619、保留キャッシュ部ポインタ620、保留LBAポインタ621、前方LBAポインタ622、後方LBAポインタ623から構成される。論理ブロックアドレス612は、管理しているデータの論理ブロックアドレスを格納する領域であり、参照キャッシュ部ポインタ618、参照キャッシュ管理ポインタは、ドライブから読み込んだデータ、及び、ドライブに書き込むデータが格納されているキャッシュへのポインタが設定される。参照キャッシュ管理ポインタ617は、参照キャッシュ部ポインタ618のキャッシュ部を管理するキャッシュ管理部へのポインタが設定される。以後、参照キャッシュ部ポインタ、参照キャッシュ管理ポインタで管理するキャッシュ部を参照キャッシュとする。更新フラグ615は、参照キャッシュを、ドライブへ書き込む必要があることを示す領域であり、この参照フラグの設定により、キャッシュからフラッシュやキャッシュ解放時、及び、一定時間毎に実行される書き込みプログラムによってドライブに書き込まれる。保留キャッシュ部ポインタ620は、ドライブへ書き込む情報を保留したデータを格納しているキャッシュ部へのポインタを格納する領域であり、保留キャッシュ管理ポインタ619は、保留キャッシュ部ポインタ620で管理しているキャッシュ部を管理するキャッシュ管理部へのポインタを格納する領域である。以後、保留キャッシュ部ポインタ、保留キャッシュ管理ポインタで管理するキャッシュ部を保留キャッシュとする。保留LBAポインタは、同じキャッシュ管理部で管理している保留キャッシュどうしを連結するためのポインタであり、保留キャッシュの管理に変更は生じた場合に変更が生じる。前方LBAポインタ622、後方LBAポインタ623は、各LBA管理部を連結するためのポインタであり、LBA管理部の削除や登録が生じた場合に変更が生じる。一つのLBA管理部は、一つの論理ブロックアドレスを管理し、参照キャッシュと保留キャッシュ(ドライブへの書き込みを保留したキャッシュ)を管理する。本例の参照キャッシュは、ディスクへの更新を行わない。本例の保留キャッシュは、ディスクへの書き込みは保留するが、保留キャッシュに存在しないブロックへの書き込みが行われた場合は、ディスクから当該ブロックを読み出して保留キャッシュに格納し、当該ブロックを書き込みが発生した計算機へ送ることになる。これは、計算機とストレージシステムがブロック単位でアクセスが行われるために発生する処理である。
図10はキャッシュ確保処理のフローを示す。キャッシュ管理検索701は、既に対象キャッシュ管理部があるか検索する。ステップ702で、対象キャッシュ管理部あるか判定する。既にある場合は、処理を完了し存在しない場合はキャッシュ管理部確保703に進む。キャッシュ管理確保703は、キャッシュ管理部を確保し初期化する。この際、コマンドの中のコントロール情報から保留フラグを参照設定しキャッシュ部確保704に進む。キャッシュ部確保704では、図2のキャッシュ領域から、コマンドに指定された大きさのキャッシュを割当て、キャッシュ管理部に設定する。
図11はリード処理のフローを示す。LBA管理部検索801は、対象となるLBA管理部を検索する。LBA管理部の検索には、LBA管理部を作成した際に設定している論理ブロックアドレス(LBA)を検索することで行われ、検索した結果は、ステップ802で判定する。ステップ802で対象となるLBA管理部がある場合は、ステップ809に進む。対象となるLBA管理部がない場合は、キャッシュ管理検索803に進む。これは、図12に示す用にドライブからデータを読み込む場合である。キャッシュ管理検索803では、コマンドに付加されたキャッシュ識別番号に対応したキャッシュ管理部を検索しステップ804に進む、ステップ804で対象となるキャッシュ管理部の存在を判定しLBA管理部設定805に進む、LBA管理部設定805では、ドライブ1206から読み込むデータを管理するための対象LBA管理部を作成し読み込みを行うデータの情報を格納する。既に対象LBA管理部が作成済みのときはそのLBA管理部を使用し、ドライブリード806に進み、ドライブリード806でドライブから論理ブロックアドレスに対応したデータを読込み、リードデータ転送807で読込みを行ったデータを返信し、キャッシュ部ライト808で、ディスクから読み込んだデータをキャッシュ部1204に格納しキャッシュ部を参照キャッシュとして設定し終了する。ステップ802でLBA管理ブロックがある場合、つまり、キャッシュ1203にデータがある場合は、ステップ809で対象LBA管理部に保留キャッシュが存在するか判定する。これは、図15のライト処理フローで示す処理において、保留キャッシュがある場合、保留キャッシュ管理ポインタにポインタが設定されていることで判定する。保留キャッシュがない場合は、図13に示すようなデータの流れとなる、参照キャッシュ転送812で参照キャッシュのデータを返信する。保留キャッシュがある場合は、ステップ810で保留キャッシュのキャッシュ管理部が、対象キャッシュ管理部と同じか判定し、同じであれば、図14に示すように、保留キャッシュのデータである、キャッシュ1204からデータを返信する。つまり、保留キャッシュ転送811で保留しているデータを返信する。保留キャッシュのキャッシュ管理部が一致しないのであれば、図14では、キャッシュ1205に保留キャッシュがあることになる。この場合は、ステップ813に進み、ステップ813でドライブから読み込んだデータ、つまり、参照キャッシュが無い場合は、図12に示したように、キャッシュ管理検索803に進みドライブからデータを読み込む。参照キャッシュがある場合は、参照キャッシュ転送812でデータを転送する。ドライブから読み込んだデータがあるか判定するには、キャッシュ管理ポインタの状態で判定する。
図15はライト処理のフローを示す。キャッシュ管理部検索901は、対象となるキャッシュ管理部を検索する。キャッシュ管理部の検索には、キャッシュ管理部作成時に格納しているキャッシュ識別番号と、コマンドに付加されたキャッシュ識別番号で行われ検索した結果は、ステップ902で判定する。ステップ902で対象キャッシュ管理部がない場合は、処理を終了し、存在する場合は、LBA管理部検索903に進む。LBA管理部検索903では、対象となる論理ブロックアドレスを管理しているLBA管理部の検索を行う。この検索ではLBAブロック作成時に格納している論理ブロックアドレスとコマンドに付加されている論理ブロックアドレスの比較を行い検索し、検索した結果は、ステップ904で判定する。ステップ904で対象LBA管理部が存在しない場合は、LBA管理部割当906で書き込むデータを管理するLBA管理ブロックを確保し、キャッシュ割当908で対象キャッシュ管理ブロックから、書き込みデータを格納するキャッシュを割当て、保留キャッシュとし、キャッシュライト910に進み、キャッシュライト910で、確保したキャッシュにデータを格納する。キャッシュに格納したデータは、ステップ912では、キャッシュ確保処理で設定した保留フラグを判定し、保留で有れば処理を終了する。これは、図16に示すように、計算機1202から書き込みを行ったデータはキャッシュ1205にデータを格納し処理を終了する。保留フラグが保留でなければ、ステップ913に進む、ステップ913では、参照キャッシュが存在するか判定し、存在する場合は、キャッシュ解放914に進む。存在しない場合は、キャッシュ変更915に進む。キャッシュ解放914では、参照キャッシュを解放し、キャッシュ変更915に進む。キャッシュ変更915では、保留キャッシュを参照キャッシュに変更し、更新フラグ設定916に進む。更新フラグ設定916では、キャッシュに格納したデータをドライブに書き込む指示を示すフラグ、更新フラグを設定する。この更新フラグが設定されているデータは、キャッシュから追い出される時、又は、定期的に実行される書き込みプログラムにより、ドライブに書き込まれる。図17に示すように、キャッシュ1205に更新フラグが設定されているデータがある場合、キャッシュ1205に格納されているデータをドライブ1206に書き込む。ステップ904で、対象LBA管理部がある場合、ステップ905で、保留キャッシュがあるか判定する。保留キャッシュがある場合は、ステップ911に進む、保留キャッシュは、対象キャッシュ管理部が管理するキャッシュか判定する。これは、図18に示すように、計算機1201、1202から同じ論理ブロックアドレスに書き込みが行われていないかの判定となる。対象キャッシュの管理ブロックであれば、キャッシュライト910に進み、更新キャッシュに格納しているデータを更新し、データを格納する。ステップ905で保留キャッシュがない場合は、ステップ907に進む、ステップ907では、参照キャッシュは、対象キャッシュ管理部で管理しているキャッシュ部であるか判定する。対象キャッシュ管理部で管理しているキャッシュ部であれば、キャッシュ変更909に進む、対象キャッシュ管理部で管理していないキャッシュであれば、キャッシュ割当908に進む、キャッシュ変更909では、参照キャッシュを保留キャッシュに変更し、キャッシュライト910に進む。
図19,図20は、キャッシュ解放処理のフローを示す。図7のコントロール419の情報により、キャッシュに格納している更新データをドライブに反映する場合は、図19のフローの処理を行い、キャッシュに格納している更新データを無効にする場合は、図20のフローの処理を行うものである。図19,図20のキャッシュ管理検索1001で解放するキャッシュを管理するキャッシュ管理部の検索を行い、ステップ1002に進む、ステップ1002で対象キャッシュ管理部がない場合は処理を終了し、対象キャッシュ管理部がある場合は、ステップ1014に進む、ステップ1014では、図7のタイマー420が設定されているか判定する。
このタイマーが設定されている場合は、タイマー設定1015に進む、タイマー設定1015では、キャッシュ管理部のタイマー値、タイマー種別にコマンドから求めた、タイマー値、タイマー種別を設定し、処理を終了する。ステップ1014でタイマーが設定されていなければ、ステップ1013に進む、ステップ1013では、保留LBAポインタに接続する保留キャッシュがあるか判定し、ある場合図19では、1006〜1009までの処理を、図20では、1011〜1013までの処理を、保留キャッシュがなくなるまで処理を繰り返す。保留キャッシュがない場合、又は、なくなった場合は、キャッシュ部解放1004に進む、図19のステップ1006では、参照キャッシュの存在を判定し、参照キャッシュが存在する場合は、参照キャッシュ解放1007に進む、存在しない場合は、保留キャッシュ変更1008に進む。参照キャッシュ解放1007では、参照キャッシュを解放し、保留キャッシュ変更1008に進む。保留キャッシュ変更1008では、保留キャッシュを参照キャッシュに変更し、更新フラグ変更1009に進む。更新フラグ1009では、参照キャッシュのデータをドライブに書き込むための更新フラグを設定する。これにより、キャッシュから追い出される時、又は、定期的に実行される書き込みプログラムによって参照キャッシュのデータがドライブに書き込まれる。この1003〜1009のステップで書き込みを保留していた複数のデータが高速にドライブに反映したように見せかける事が出来る。
これは、図21に示すように、計算機1201と同じアドレス(ストレージシステムにおける位置情報が同じ)に対して、計算機1202から書き込んだ場合、データがキャッシュ1205に格納される。キャッシュ1205を解放する処理の実施時に、キャッシュ1205の更新データがキャッシュ1204の参照キャッシュに置き換わり(上書きされ)もしくは追加されることになる。そして、キャッシュ1204からドライブに書き込まれることになる。
また、図20の1011〜1013のステップでは、保留キャッシュ解放1011で、書き込みを保留しているデータをドライブに書き込まずに解放し、ステップ1012に進む。ステップ1012では、参照キャッシュが存在するか判定し、存在しない場合は、LBA管理部解放1013に進む。LBA管理部解放1013では、LBA管理部の解放を行う。この1003、1011〜1013のステップでドライブに書き込んだデータを元の状態に戻したこととなり、ドライブに書き込んだデータを高速に全て戻したように見せかけることができる。図19,20でステップ1003が終了したあと、キャッシュ部解放1004に進む、キャッシュ部解放1004では、キャッシュ管理部で管理しているキャッシュ部を解放し、キャッシュ管理部解放1005に進む。キャッシュ管理部解放1005では、キャッシュ管理部を解放し、処理を終了する。これは、例えば、計算機A1201がドライブ1206に格納されているデータベースを参照してオンライン処理を実行することを想定する。計算機B1202はそのデータベースを参照してバッチ処理を実行し、実行結果をキャッシュB1205に格納することを想定する。バッチ処理終了後、計算機B1202からのマージ要求に応答してストレージシステム103は、キャッシュB1205のバッチ処理の処理結果をキャッシュA1204にコピーする。これにより、バッチ処理の処理結果が、データベースに反映されることになる。図2におけるDB−ディスクブロック変換テーブル219は、データベースが格納された領域における各ブロックの論理位置とストレージシステムにおけるブロックの物理位置を対応付けたテーブルである。計算機B1202の入力は、キャッシュBを用いてデータベースを読み込み、その処理結果はキャッシュBに格納されることになる。このバッチ処理中(キャッシュBに格納されたバッチ処理結果をキャッシュAに反映するまで)は、計算機A1201からのデータベースへの出力つまりデータベースが格納されているディスクへの書き込みは禁止する。このようにすることで、バッチ処理中のデータベースに更新が発生しないようにすることができる。図2のDB−ディスクブロック変換テーブル219を利用することにより、計算機B1202からのバッチ処理結果をキャッシュB1205へデータベースの論理ブロックで書き込んでおき、データベースの格納位置を示す論理ブロックアドレスをディスクにおける格納位置を示す物理ブロックアドレスに変換することで、キャッシュA1204へデータベースの更新としてマージすることが可能となる。
図22,図23は、フラッシュ処理のフローを示す。図24のコントロール424の情報により、キャッシュに格納している更新データをドライブに反映する場合は、図22のフローの処理を行い、キャッシュに格納している更新データを無効にする場合は、図23のフローの処理を行うものである。図22,図23のキャッシュ管理検索1001で解放するキャッシュを管理するキャッシュ管理部の検索を行い、ステップ1002に進む、ステップ1002で対象キャッシュ管理部がない場合は処理を終了し、対象キャッシュ管理部がある場合は、ステップ1014に進む、ステップ1014では、図24のタイマー425が設定されているか判定する。このタイマーが設定されている場合は、タイマー設定1015に進む、タイマー設定1015では、キャッシュ管理部のタイマー値、タイマー種別にコマンドから求めた、タイマー値、タイマー種別を設定し、処理を終了する。ステップ1014でタイマーが設定されていなければ、ステップ1013に進む、ステップ1013では、保留LBAポインタに接続する保留キャッシュがあるか判定し、ある場合図22では、1006〜1009までの処理を、図23では、1011〜1013までの処理を、保留キャッシュがなくなるまで処理を繰り返す。保留キャッシュがない場合、又は、なくなった場合は、処理を終了する。
図22のステップ1006では、参照キャッシュの存在を判定し、参照キャッシュが存在する場合は、参照キャッシュ解放1007に進む、存在しない場合は、保留キャッシュ変更1008に進む。参照キャッシュ解放1007では、参照キャッシュを解放し、保留キャッシュ変更1008に進む。保留キャッシュ変更1008では、保留キャッシュを参照キャッシュに変更し、更新フラグ変更1009に進む。更新フラグ1009では、参照キャッシュのデータをドライブに書き込むための更新フラグを設定する。これにより、キャッシュから追い出される時、又は、定期的に実行される書き込みプログラムによって参照キャッシュのデータがドライブに書き込まれる。この1003〜1009のステップで書き込みを保留していた複数のデータが高速にドライブに反映したように見せかける事が出来る。これは、図21に示すように、計算機1201と同じアドレス(ストレージシステムにおける位置情報が同じ)に対して、計算機1202から書き込んだ場合、データがキャッシュ1205に格納され、キャッシュ1205を解放する処理において、キャッシュ1205の更新データがキャッシュ1204に参照キャッシュに置き換わり(上書きされ)もしくは追加されることになる。そして、キャッシュ1204からドライブに書き込まれることになる。また図20の1011〜1013のステップでは、保留キャッシュ解放1011で、書き込みを保留しているデータをドライブに書き込まずに解放し、ステップ1012に進む。ステップ1012では、参照キャッシュが存在するか判定し、存在しない場合は、LBA管理部解放1013に進む。LBA管理部解放1013では、LBA管理部の解放を行う。この1003、1011〜1013のステップでドライブに書き込んだデータを元の状態に戻したこととなり、ドライブに書き込んだデータを高速に全て戻したように見せかける事ができる。図22,23でステップ1003が終了したあと、処理を終了する。
図25は、キャッシュ管理部、LBA管理部で管理しているキャッシュ部をキャッシュから追い出される時、及び、定期的に実行する書き出しプラグラムのフローである。ステップ1104で、タイマー値の設定されているキャッシュ管理部があるか判定し、ある場合、ステップ1105に進む、ない場合は、ステップ1101に進む、ステップ1105では、設定されているタイマーが制定時間になったか判定し、設定時間であれば、ステップ1106に進む、指定時間でなければ、ステップ1101に進む、ステップ1106では、タイマー種別を判定し、キャッシュ解放で有れば、キャッシュ解放1107に進む、キャッシュ解放でなければステップ1108に進む、キャッシュ解放1107は、図19、又は、図20のキャッシュ解放を行う、尚、コマンド中のタイマーの値は指定しない。これにより、指定時間による、ドライブにデータを書き込んだことになる。ステップ1108では、タイマー種別が、フラッシュか判定する。タイマー種別がフラッシュで有れば、フラッシュ処理1109に進む、タイマー種別がフラッシュで無ければ、ステップ1101に進む、フラッシュ処理1109では、図22、又は、図23のフラッシュ処理を行う、尚、コマンド中のタイマーの値は指定しない。ステップ1101で、参照キャッシュが更新されているか判定する。これは、更新フラグの状態で判定する。更新されていなければ処理を終了し、更新されていれば、ドライブへの書き込み1102へ進む。ドライブへの書き込み1102では、参照キャッシュのデータをドライブへ書き込み、更新フラグ変更1103へ進む。更新フラグ変更1103では、更新フラグを初期化し、処理を終了する。図17に示すように、キャッシュ部1203のデータが、ドライブ1206に書き込まれることとなる。キャッシュからの追い出し時は、ステップ1101から行う。
構成を示す図 ストレージシステムの概略構成 キャッシュ領域の動作 readコマンドの構成 writeコマンドの構成 キャッシュ確保コマンドの構成 キャッシュ解放コマンドの構成 命令コードの解析フロー 制御テーブルの構成 キャッシュ確保処理のフロー リード処理のフロー ドライブからデータを読み込む場合のデータの流れ キャッシュからデータを返信する時のデータの流れ その1 キャッシュからデータを返信する時のデータの流れ その2 ライト処理のフロー ドライブへの書き込みを保留する場合のデータの流れ キャッシュからドライブにデータを書き込む時のデータの流れ 同じアドレスに複数の計算機からデータを書き込んだときのデータの流れ ドライブへデータを反映する場合のキャッシュ解放処理フロー 更新データを無効にするキャッシュ解放処理フロー ドライブへデータを反映する場合のデータの流れ ドライブへデータを反映する場合のフラッシュ処理フロー 更新データを無効にするフラッシュ処理フロー flashコマンドの構成 書き出しプログラムのフロー
符号の説明
101…計算機A、102…計算機B、103…ストレージシステム、104…キャッシュ、107…ディスク、216…ディスク制御装置、215…ネットワーク、207…メモリ、214…ディスクドライブ。

Claims (14)

  1. 第1の領域と第2の領域とを有するキャッシュメモリと前記キャッシュメモリのデータを格納するディスク装置とを備えたストレージ装置と、前記ストレージ装置のデータをリードする第1のプログラムと第2のプログラムを実行する計算機とを備えたデータ処理システムにおけるキャッシュ制御方法において、
    前記ストレージ装置は、前記第1のプログラムの実行により生成され、前記ディスク装置内の位置を示す第1のアドレス及び前記第1の領域を特定するための第1の領域識別情報及び第1の格納対象データを含む第1のデータ格納要求を受信し、前記第1の領域識別情報に対応する第1の領域に前記第1の格納対象データを書き込み、
    前記ストレージ装置は、前記第2のプログラムの実行により生成され、前記ディスク装置内の位置を示す第2のアドレス及び前記第2の領域を特定するための第2の領域識別情報及び第2の格納対象データを含む第2のデータ格納要求を受信し、前記第2のアドレスが前記第1のアドレスと異なる場合は前記第2の領域識別情報に対応する第2の領域に前記第2の格納対象データを書き込み、前記第2のアドレスが前記第1のアドレスと同じ場合は前記第2の格納対象データを前記第2の領域に書き込まず、
    前記ストレージ装置は、前記第2の領域に格納された前記第2の格納対象データを前記第1の領域へ反映するためのコピー要求の入力に応じて、前記第2の領域に格納された前記第2の格納対象データを前記第1の領域にコピーすることを特徴とするキャッシュ制御方法。
  2. 前記ストレージ装置は、前記第2の領域に格納された前記第2の格納対象データを前記第1の領域にコピーする場合、前記第1のプログラムによる前記第1の領域へのデータ格納を禁止することを特徴とする請求項1記載のキャッシュ制御方法。
  3. 前記ストレージ装置は、前記第2の領域に格納された前記第2の格納対象データ前記ディスク装置へはフラッシュしないことを特徴とする請求項1記載のキャッシュ制御方法。
  4. 前記ストレージ装置は、前記第2の領域に格納された前記第2の格納対象データを前記第1の領域にコピーが終了した後、第1の格納禁止を解除することを特徴とする請求項2記載のキャッシュ制御方法。
  5. 前記ストレージ装置は、前記ディスク装置の位置を示す第3のアドレス及び前記第1又は第2の領域を特定する第3の領域識別情報を含むデータリード要求を受信し、キャッシュからデータをリードすることを特徴とする請求項1記載のキャッシュ制御方法。
  6. 前記ストレージ装置は、前記第1の領域と前記第2の領域の論理的な対応付けを示す領域対応テーブルを有し、前記第2の領域に格納されたデータを前記第1の領域にコピーするときに前記対応テーブルを参照し、第2の領域のデータを第1のデータと対応付けて前記データをコピーすることを特徴とする請求項1記載のキャッシュ制御方法。
  7. 前記第1の領域と前記第2の領域の論理的な対応付けを示す領域対応テーブルは、データベースの論理的な位置情報と物理的な位置情報を対応付けることを特徴とする請求項6記載のキャッシュ制御方法。
  8. 第1の領域と第2の領域とを有するキャッシュメモリと前記キャッシュメモリのデータを格納するディスク装置とを備えたストレージ装置と、前記ストレージ装置のデータをリードする第1のプログラムと第2のプログラムを実行する計算機とを備えたデータ処理システムにおいて、
    前記ストレージ装置は、
    前記第1のプログラムの実行により生成され、前記ディスク装置内の位置を示す第1のアドレス及び前記第1の領域を特定するための第1の領域識別情報及び第1の格納対象データを含む第1のデータ格納要求を受信し前記第1の領域識別情報に対応する前記第1の領域に前記第1の格納対象データを書き込む手段と、
    前記第2のプログラムの実行により生成され、前記ディスク装置内の位置を示す第2のアドレス及び前記第2の領域を特定するための第2の領域識別情報及び第1の格納対象データを含む第2のデータ格納要求を受信し、前記第2のアドレスが前記第1のアドレスと異なる場合は前記第2の領域識別情報に対応する前記第2の領域に前記第2の格納対象データを書き込み、前記第2のアドレスが前記第1のアドレスと同じ場合は前記第2の格納対象データを前記第2の領域に書き込まない手段と、
    前記第2の領域に格納された前記第2の格納対象データを前記第1の領域へ反映するためのコピー要求の入力に応じて、前記第2の領域に格納された前記第2の格納対象データを前記第1の領域にコピーする手段とを備えたことを特徴とするデータ処理システム。
  9. 前記ストレージ装置は、前記第2の領域に格納された前記第2の格納対象データを前記第1の領域にコピーする場合、前記第1のプログラムによる前記第1の領域へのデータ格納を禁止することを特徴とする請求項8記載のキャッシュ制御方法。
  10. 前記ストレージ装置は、前記第2の領域に格納された前記第2の格納データを、前記ディスク装置へはフラッシュしないことを特徴とする請求項8記載のデータ処理システム。
  11. 前記ストレージ装置は、前記第2の領域に格納された前記第2の格納データを前記第1の領域にコピーが終了した後、第1の格納禁止を解除することを特徴とする請求項9記載のキャッシュ制御方法。
  12. 前記ストレージ装置は、前記ディスク装置内の位置を示す第3のアドレス及び前記第1又は第2の領域を特定する第3の領域識別情報を含むデータリード要求を受信し、キャッシュからデータをリードすることを特徴とする請求項記載のデータ処理システム。
  13. 前記ストレージ装置は、前記第1の領域と前記第2の領域の論理的な対応付けを示す領域対応テーブルを有し、前記第2の領域に格納されたデータを前記第1の領域にコピーするときに前記対応テーブルを参照し、第2の領域のデータを第1のデータと対応付けて前記データをコピーすることを特徴とする請求項記載のデータ処理システム。
  14. 第1の領域と第2の領域とを有するキャッシュメモリと前記キャッシュメモリのデータを格納するディスク装置とを備えたストレージ装置と、前記ストレージ装置のデータをリードする第1のプログラムと第2のプログラムを実行する計算機とを備えたデータ処理システムを機能するためのデータ処理プログラムにおいて、
    前記ストレージ装置では、
    前記第1のプログラムの実行により生成され、前記ディスク装置内の位置を示す第1のアドレス及び前記第1の領域を特定するための第1の領域識別情報及び第1の格納対象データを含む第1のデータ格納要求を受信し、前記第1の領域識別情報に対応する前記第1の領域に前記第1の格納対象データを書き込むステップと、
    前記第2のプログラムの実行により生成され、前記ディスク装置内の位置を示す第1のアドレス及び前記第2の領域を特定するための第2の領域識別情報及び第2の格納対象データを含む第2のデータ格納要求を受信し、前記第2のアドレスが前記第1のアドレスと異なる場合は前記第2の該領域識別情報に対応する前記第2の領域に前記第2の格納対象データを書き込み、前記第2のアドレスが前記第1のアドレスと同じ場合は前記第2の格納対象データを前記第2の領域にはかきこまないステップと、
    前記第2の領域に格納された前記第2の格納対象データを前記第1の領域へ反映するためのコピー要求の入力に応じて、第2の領域に格納された前記第2の格納対象データを前記第1の領域にコピーするステップと
    を有することを特徴とするデータ処理プログラム。
JP2004172001A 2004-06-10 2004-06-10 キャッシュ制御方法およびデータ処理システム並びにその処理プログラム Expired - Fee Related JP4506292B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004172001A JP4506292B2 (ja) 2004-06-10 2004-06-10 キャッシュ制御方法およびデータ処理システム並びにその処理プログラム
US10/932,107 US7107404B2 (en) 2004-06-10 2004-09-02 Method and system for data processing for controlling a cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004172001A JP4506292B2 (ja) 2004-06-10 2004-06-10 キャッシュ制御方法およびデータ処理システム並びにその処理プログラム

Publications (2)

Publication Number Publication Date
JP2005352711A JP2005352711A (ja) 2005-12-22
JP4506292B2 true JP4506292B2 (ja) 2010-07-21

Family

ID=35461842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004172001A Expired - Fee Related JP4506292B2 (ja) 2004-06-10 2004-06-10 キャッシュ制御方法およびデータ処理システム並びにその処理プログラム

Country Status (2)

Country Link
US (1) US7107404B2 (ja)
JP (1) JP4506292B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7599261B2 (en) * 2006-01-18 2009-10-06 International Business Machines Corporation Removable storage media with improved data integrity
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
JP4865075B1 (ja) 2010-09-30 2012-02-01 株式会社東芝 計算機および計算機システム
CN104424030B (zh) * 2013-08-22 2020-01-14 腾讯科技(深圳)有限公司 多进程操作共享内存的方法和装置
CN106484691B (zh) 2015-08-24 2019-12-10 阿里巴巴集团控股有限公司 移动终端的数据存储方法和装置
CN109165136B (zh) * 2018-07-25 2021-09-28 平安科技(深圳)有限公司 终端运行数据的监控方法、终端设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167782A (ja) * 2001-11-30 2003-06-13 Toshiba Corp 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム
JP2004054845A (ja) * 2002-07-24 2004-02-19 Sony Corp データ管理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03266046A (ja) * 1990-03-16 1991-11-27 Nippon Telegr & Teleph Corp <Ntt> データベース高速アクセス方法
US6009498A (en) 1995-02-16 1999-12-28 Fujitsu Limited Disk control unit for holding track data in cache memory
US5678026A (en) 1995-12-28 1997-10-14 Unisys Corporation Multi-processor data processing system with control for granting multiple storage locks in parallel and parallel lock priority and second level cache priority queues
US5983324A (en) 1996-03-28 1999-11-09 Hitachi, Ltd. Data prefetch control method for main storage cache for protecting prefetched data from replacement before utilization thereof
JP2002123479A (ja) * 2000-10-17 2002-04-26 Hitachi Ltd ディスク制御装置およびそのキャッシュ制御方法
US6530003B2 (en) * 2001-07-26 2003-03-04 International Business Machines Corporation Method and system for maintaining data coherency in a dual input/output adapter utilizing clustered adapters
JP4186509B2 (ja) 2002-05-10 2008-11-26 株式会社日立製作所 ディスクシステムとそのキャッシュ制御方法
JP2005122453A (ja) 2003-10-16 2005-05-12 Hitachi Ltd ストレージ装置のディスクコントローラ制御方式およびストレージ装置
JP4036206B2 (ja) * 2004-03-31 2008-01-23 日本電気株式会社 セットアソシアティブキャッシュシステム及びキャッシュメモリの制御方法
JP4561168B2 (ja) * 2004-04-28 2010-10-13 株式会社日立製作所 データ処理システムおよび方法並びにその処理プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167782A (ja) * 2001-11-30 2003-06-13 Toshiba Corp 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム
JP2004054845A (ja) * 2002-07-24 2004-02-19 Sony Corp データ管理装置

Also Published As

Publication number Publication date
US20050278482A1 (en) 2005-12-15
JP2005352711A (ja) 2005-12-22
US7107404B2 (en) 2006-09-12

Similar Documents

Publication Publication Date Title
US9785564B2 (en) Hybrid memory with associative cache
US7769952B2 (en) Storage system for controlling disk cache
US10248322B2 (en) Memory system
US4466059A (en) Method and apparatus for limiting data occupancy in a cache
JP2566701B2 (ja) 共有キャッシュ内のデータ・ユニットに対する所有権の変更制御装置
US6085294A (en) Distributed data dependency stall mechanism
JP5021677B2 (ja) デルタページャを使用した状態の管理
EP3531292B1 (en) Methods and apparatus for supporting persistent memory
US9367247B2 (en) Memory access requests in hybrid memory system
JP4561168B2 (ja) データ処理システムおよび方法並びにその処理プログラム
JPH06236322A (ja) ディスクアレイ用キャッシュシステム
JP5908118B2 (ja) 第1キャッシュと第2キャッシュとストレージ・システムとを含むキャッシュ・システムにおいてデータを管理するプログラム、システム、及び方法
JP2002140231A (ja) 拡張型キャッシュメモリシステム
US6658541B2 (en) Computer system and a database access method thereof
US10223001B2 (en) Memory system
JP7058020B2 (ja) データ・ストレージ・システムにおけるコピー・ソース・ツー・ターゲット管理のための方法、システム及びコンピュータ・プログラム
US6202126B1 (en) Victimization of clean data blocks
KR101858597B1 (ko) 프로세싱 인 메모리 시스템의 연산할 작업, 연산할 데이터 및 연산 결과 데이터 전달 방법 및 프로세싱 인 메모리 시스템
CN108228088B (zh) 用于管理存储系统的方法和设备
JP5977430B2 (ja) ストレージシステム、ストレージシステムの制御方法及びストレージコントローラ
JP4242245B2 (ja) フラッシュrom制御装置
KR102220468B1 (ko) 트랜잭션 지원을 가진 선점형 캐시 후기록
JP4506292B2 (ja) キャッシュ制御方法およびデータ処理システム並びにその処理プログラム
JP4189342B2 (ja) ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
US6101581A (en) Separate victim buffer read and release control

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060424

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070509

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100406

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100419

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees