JP2008181243A - ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム - Google Patents
ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム Download PDFInfo
- Publication number
- JP2008181243A JP2008181243A JP2007012995A JP2007012995A JP2008181243A JP 2008181243 A JP2008181243 A JP 2008181243A JP 2007012995 A JP2007012995 A JP 2007012995A JP 2007012995 A JP2007012995 A JP 2007012995A JP 2008181243 A JP2008181243 A JP 2008181243A
- Authority
- JP
- Japan
- Prior art keywords
- partition
- buffer
- size
- cache
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】ストレージキャッシュ分割技術とDBバッファ技術の両方が採用されたコンピュータシステムにおいてストレージキャッシュの利用効率の低下を抑える。
【解決手段】データベース管理システムに、設定処理部と、指示送信部とを備える。設定処理部は、各データベースバッファに関するサイズを基に、該各データベースバッファに対応付ける各キャッシュパーティション領域に関するサイズを決定する。そして、設定処理部は、パーティション設定指示、具体的には、上記決定したサイズで該各キャッシュパーティション領域に関する設定を行うことの指示を作成する。指示送信部は、作成されたパーティション設定指示を送信する。
【選択図】図2
【解決手段】データベース管理システムに、設定処理部と、指示送信部とを備える。設定処理部は、各データベースバッファに関するサイズを基に、該各データベースバッファに対応付ける各キャッシュパーティション領域に関するサイズを決定する。そして、設定処理部は、パーティション設定指示、具体的には、上記決定したサイズで該各キャッシュパーティション領域に関する設定を行うことの指示を作成する。指示送信部は、作成されたパーティション設定指示を送信する。
【選択図】図2
Description
本発明は、ストレージシステムのキャッシュメモリの論理分割に関する。
ストレージシステムは、一般に、複数の記憶装置を備え、ホストコンピュータから送信されたアクセスコマンド(ライトコマンド或いはリードコマンド)に従って、それら複数の記憶装置のうちの少なくとも一つに対してデータのアクセスを行う。この種のストレージシステムは、通常、そのデータを一時的に記憶するためのキャッシュメモリを備える。キャッシュメモリの管理に関する技術として、例えば、以下の特許文献1〜5に開示の技術がある。
ところで、ストレージシステム及びホストコンピュータを備えたコンピュータシステムとして、例えば、ストレージシステムがデータベース(以下、DB)を記憶し、該DBを管理するシステム(以下、DBMS)がホストコンピュータ上で稼動するシステムがある。このコンピュータシステムでは、DBに対するDBMSによるアクセスの性能(例えば速度)が高いことが望ましい。
DBに対するアクセスの性能を向上するための方法として、例えば、ストレージシステムのキャッシュメモリ(以下、ストレージキャッシュ)を論理的に分割する技術を採用することが考えられる。この技術によれば、ストレージキャッシュへのアクセス干渉(競合)を抑えることができる。この種の技術は、例えば、上述した特許文献1乃至5のうちの例えば特許文献5に開示されている。以下、この種の技術を、「ストレージキャッシュ分割技術」と呼ぶ。また、論理的な分割により得られた各領域を「キャッシュパーティション領域」と呼ぶ。キャッシュパーティション領域は、同サイズのサブ領域の集合で構成される。以下、そのサブ領域を「セグメント」と呼ぶ。セグメントは、ストレージキャッシュに対する一アクセスのデータサイズ単位(アクセス単位)である。ストレージキャッシュ分割技術では、各キャッシュパーティション領域毎に、セグメントのサイズを違えることができる。
また、別の方法として、例えば、DBMSが、主に、ホストコンピュータ内のDBバッファにアクセスし、必要がある場合に、ストレージシステム内のDBにアクセスするためのアクセスコマンドをストレージシステムに発行する技術を採用する方法も考えられる。ここで、DBバッファとは、DBMSによるアクセスの対象となるデータ(DBに書込まれるデータ、或いは、DBから読み出されるデータ)を記憶するための記憶領域であって、ホストコンピュータ内のメモリに設定された領域である。この技術によれば、ストレージシステムにアクセスコマンドを発行する回数を抑えることができる。以下、この技術を、「DBバッファ技術」と呼ぶ。DBMSは、表やインデクスなどの複数のオブジェクト(DBオブジェクト)にそれぞれ対応した複数の論理的な記憶領域(以下、DB領域)を管理することができる。DBバッファ技術では、それら複数のDB領域のそれぞれに対応する複数のDBバッファを設定することができる。DBバッファは、同サイズのサブ領域の集合で構成される。以下、そのサブ領域を「ページ」と呼ぶ。ページは、DBバッファに対する一アクセスのデータサイズ単位(アクセス単位)である。DBバッファ技術では、各DBバッファ毎に、ページのサイズを違えることができる。
DBに対するアクセスの性能をなるべく向上させるためには、ストレージキャッシュ分割技術及びDBバッファ技術のいずれか一方ではなく両方を採用することが望ましいと考えられる。なぜなら、DBバッファ技術により、ストレージシステムにアクセスコマンドを発行する回数を抑えることができるし、ストレージシステムにアクセスコマンドが発行されても、ストレージキャッシュへのアクセス干渉を抑えることができるからである。
しかし、それらの技術の両方を単純に採用したのでは、ストレージキャッシュの利用効率の問題が生じると考えられる。なぜなら、ストレージキャッシュ分割技術では、各ストレージキャッシュパーティション領域毎に、セグメントのサイズを違えることができ、一方、DBバッファ技術でも、各DBバッファ毎に、ページのサイズを違えることができ、セグメントとページの各々が独立しているからである。
従って、本発明の目的は、ストレージキャッシュ分割技術とDBバッファ技術の両方が採用されたコンピュータシステムにおいてストレージキャッシュの利用効率の低下を抑えることにある。
データベース管理システムに、設定処理部と、指示送信部とを備える。設定処理部は、各データベースバッファに関するサイズを基に、該各データベースバッファに対応付ける各キャッシュパーティション領域に関するサイズを決定する。そして、設定処理部は、パーティション設定指示、具体的には、上記決定したサイズで該各キャッシュパーティション領域に関する設定を行うことの指示を作成する。指示送信部は、作成されたパーティション設定指示を送信する。パーティション設定指示が最終的にストレージシステムで受信できれば、パーティション設定指示は、ストレージシステムに直接送信されても良いし、管理コンピュータなどの他のコンピュータを経由してストレージシステムに送信されても良い。
上述した各部は、ハードウェア(例えば回路)、コンピュータプログラム、或いはそれらの組み合わせ(例えば、コンピュータプログラムを読み込んで実行する一又は複数のCPU)によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源(例えばメモリ)から読み込むことができる。その記憶資源には、CD−ROMやDVD(Digital Versatile Disk)等の記録媒体を介してインストールすることもできるし、インターネットやLAN等の通信ネットワークを介してダウンロードすることもできる。
本発明によれば、ストレージキャッシュ分割技術とDBバッファ技術の両方が採用されたコンピュータシステムにおいてストレージキャッシュの利用効率の低下を抑えることができる。
本発明の一つの実施の形態の概念を説明する。
データベース管理システム(DBMS)に、DB設定処理部と、ストレージキャッシュ調整処理部とを備える。DB設定処理部は、各データベースバッファ(DBバッファ)に関するサイズを基に、該各DBに対応付ける各キャッシュパーティション領域に関するサイズを決定することができる。そして、DB設定処理部は、パーティション設定指示、具体的には、上記決定したサイズで該各キャッシュパーティション領域に関する設定を行うことの指示を作成する。DB設定処理部は、ストレージキャッシュ調整処理部を呼び出すことにより、作成されたパーティション設定指示を送信することができる。
各DBバッファに関するサイズとは、該各DBバッファについて、ページのサイズとすることができるし、更に、DBバッファそれ自体のサイズであるバッファサイズとすることもできる。一方、各キャッシュパーティション領域に関するサイズとは、該各キャッシュパーティション領域について、セグメントのサイズとすることもできるし、キャッシュパーティション領域それ自体のサイズであるパーティションサイズとすることもできる。
DB設定処理部は、各キャッシュパーティション領域のセグメントサイズを、該各キャッシュパーティション領域に対応付けられる各データベースバッファのページサイズと同じサイズとすることができる。また、後述するDB初期設定フェーズにおいては、各キャッシュパーティション領域のパーティションサイズを、該各キャッシュパーティション領域に対応付けられる各データベースバッファのバッファサイズと同じサイズにすることもできる。
DBMSで管理される複数のデータベース領域(DB領域)に、複数のDBバッファがそれぞれ対応付けられる。また、複数のDB領域には、ストレージシステム内の複数の記憶装置をそれぞれ対応付けられる。ここで言う記憶装置は、論理的な記憶装置(例えば後述の論理ユニット)であっても良いし、物理的な記憶装置(例えば後述のディスク装置)であっても良い。
DBMSが、各DB領域へのアクセスを実行するアクセス制御部を更に備える。該アクセス制御部は、或るDB領域へのアクセスを実行する場合、該或るDB領域に対応したDBバッファである当該DBバッファでバッファヒットした場合には、バッファヒットで確保された領域にアクセスすることができる。バッファヒットしなった場合に、当該DBバッファに対応付けられたキャッシュパーティション領域に割当てられている記憶装置を指定したアクセスコマンドがホストコンピュータからストレージシステムに送信される。この場合、ストレージシステムが、該アクセスコマンドに従うデータを、該アクセスコマンドで指定されている記憶装置が割当てられたキャッシュパーティション領域の、キャッシュヒットにより確保された領域に一時格納することができる。
上述したアクセス制御部は、各DBバッファについて、DBバッファへのアクセス回数のうちのバッファヒットした回数を表すバッファヒット率を算出することができる。DB設定処理部は、各DBバッファのバッファヒット率に基づいて、パーティション設定指示として、複数のキャッシュパーティション領域のうちの少なくとも一つに関するサイズの設定変更を意味する指示を作成することができる。具体的には、例えば、バッファヒット率が所定閾値以上のデータベースバッファに対応付けられたキャッシュパーティション領域の全部又は一部を前記キャッシュメモリから削除することの意味である削除意味を含んだ指示を作成することができる。また、削除される領域サイズ分の領域を複数のキャッシュパーティション領域のうちの他のキャッシュパーティション領域に追加することの意味である追加意味を含んだ指示を作成することができる。削除意味と追加意味は、一つのパーティション設定指示に含まれても良いし、複数のパーティション設定指示に分けられても良い。
前述した設定変更の意味、その意味の具体例である削除意味及び追加意味のうちの少なくとも一つとは、その意味することが実行されるようになっていれば、どのような態様であっても良い。例えば、どのキャッシュパーティション領域を削除するかや、どのキャッシュパーティション領域に関するサイズを変更後はどんなサイズにするかが、パーティション設定指示に含まれて良い。
以下、具体的に幾つかの実施形態を説明する。
<第一の実施形態>。
図1は、本発明の第一の実施形態に係るシステム全体の構成を示す。
ホストコンピュータ11が、第一通信ネットワーク(例えばLAN(Local Area
Network))10を介してクライアントコンピュータ1に接続され、第二通信ネットワーク(例えばSAN(Storage Area Network)20を介してストレージシステム31に接続され、第三通信ネットワーク(例えばLAN)40を介して管理コンピュータ41に接続される。管理コンピュータ41は、ホストコンピュータ11及びストレージシステム31の両方を管理するコンピュータである。
Network))10を介してクライアントコンピュータ1に接続され、第二通信ネットワーク(例えばSAN(Storage Area Network)20を介してストレージシステム31に接続され、第三通信ネットワーク(例えばLAN)40を介して管理コンピュータ41に接続される。管理コンピュータ41は、ホストコンピュータ11及びストレージシステム31の両方を管理するコンピュータである。
ストレージサブシステム31は、複数のディスク装置(例えばハードディスクドライブ(HDD)、フラッシュメモリ等の他種の物理的な記憶装置であっても良い)37と、ディスク装置37へのアクセスを制御する制御装置34とを備える。制御装置34は、例えば、第二通信ネットワーク20を介してホストコンピュータ11と通信するインタフェース装置(例えば通信ポート、以下、ホストI/F)32と、第三通信ネットワーク40を介して管理コンピュータ41と通信するインタフェース装置(例えば通信ポート、以下、管理I/F)38と、ディスク装置37と通信するインタフェース装置(例えば通信ポート、以下、ディスクI/F)36と、CPU33と、メモリ35とを備える。メモリ35に、後述するストレージキャッシュであるキャッシュメモリが含まれている。そのキャッシュメモリは、一又は複数のメモリ、或いは、それらに設けられた論理的な記憶領域とすることができる。
ホストコンピュータ11は、CPU13や、記憶資源15や、第一通信ネットワーク10に接続されるインタフェース装置(例えば通信ポート)18や、第二通信ネットワーク20に接続されるインタフェース装置(例えば通信ポート)19や、第三通信ネットワーク40に接続されるインタフェース装置(例えば通信ポート)14を備えることができる。記憶資源15、例えば、メモリ及び補助記憶装置(例えばHDD)の一方或いはその組み合わせである。記憶資源15は、例えば、コンピュータプログラムとして、データベース管理システム(以下、DBMS)17を記憶することができる。CPU13は、DBMS17を読み込んで実行することができる。DBMS17は、クライアントコンピュータ1からの要求(例えばSQL(Structured Query Language)文)を解析し、該解析の結果に基づく処理を実行する。以下、CPUがコンピュータプログラムを読み込んで実行することにより行われる処理の主体を、説明を分かりやすくするために、CPUではなくコンピュータプログラムとする場合がある。
上記の構成において、第一通信ネットワーク10、第二通信ネットワーク20及び第三通信ネットワーク40は、それのうちの少なくとも二つが一体となっていても良いし、それらのうちの少なくとも一つがメインフレーム系のネットワークであっても良い。また、クライアントコンピュータ1、ホストコンピュータ11、ストレージシステム31の少なくとも一つが、一つの装置に仮想的に生成されたもの(例えばいわゆる仮想コンピュータ)であっても良い。また、制御装置34の上述した構成は一例であり、他の構成を採用することもできる。
図2は、ホストコンピュータ11、ストレージシステム31及び管理コンピュータ41の機能説明図である。
管理コンピュータ41のCPUで実行されるコンピュータプログラムとして、ストレージ管理部141がある。ストレージ管理部141は、DBMS17から指示を受信し、該指示が所定種類の指示であれば、該所定種類の指示を、制御装置34に送信することができる。
DBMS17には、DBバッファ技術が採用されており、ストレージシステム31には、ストレージキャッシュ分割技術が採用されている。
DBMS17は、DBアクセス制御部111と、DB設定処理部115と、ストレージキャッシュ調整処理部117とを有する。ホストコンピュータ11Aの記憶資源15(例えばメモリ)には、一以上のDBバッファ114で構成されるDBバッファ群113が用意される。また、その記憶資源15(例えばメモリ)には、ログバッファ119が用意され、且つ、テーブル群121が記憶される。なお、このテーブル群121に含まれる各テーブルは、DBオブジェクトとしてのテーブル(つまりDBを管理するためのテーブル)ではなく、例えば、DBバッファ114でのバッファヒット率を管理するための後述のバッファヒット管理テーブル501(図13A及び図13B参照)や、DBバッファと論理ディスクとのマッピングを管理するための後述のDBバッファ−ディスクマッピングテーブル401(図8A参照)である。
DBアクセス制御部111は、DBへのアクセス処理(例えばデータの更新或いは参照)を実行したり、そのアクセス処理のログを作成してログバッファ(ログを格納するためのバッファ)119に格納したりする。このDBMS17ではDBバッファ技術が採用されているので、DBへのアクセス処理では、DBアクセス制御部111は、主に、DBバッファ群113におけるDBバッファ114にアクセスし、必要がある場合に、ストレージシステム31へのアクセスが行われる。
DB設定処理部115は、DB初期設定フェーズにおいてDBアクセス環境の構築を行う。本実施形態で言うDBアクセス環境とは、DBMS17がストレージシステム31内のDBにアクセスするのに必要な複数の物理的或いは論理的な環境要素で構成された環境を意味する。DBアクセス環境の構築とは、複数の環境要素のうちの二以上の環境要素を関連付けることを意味する(構築されたDBアクセス環境の具体例については図6を参照して後に説明する)。また、DB初期設定フェーズとは、この実施形態に係るシステムを稼動させるために必要な種々の初期設定(言い換えれば、DBMS17がDBにアクセスできるようにするために必要な種々の初期設定)をホストコンピュータ11やストレージシステム31に行うフェーズである。すなわち、本実施形態では、DB初期設定フェーズとシステム稼動フェーズといった少なくとも2つのフェーズがあり、DB初期設定フェーズにおいて必要な初期設定が終了した場合に、システム稼動フェーズとなる。システム稼動フェーズには、種々の稼動フェーズ、例えば、試験的にシステムを稼動し初期設定が適切かどうかを判断し必要に応じて初期設定をチューニングするためのフェーズであるテスト稼動フェーズと、所定の業務を稼動する等の理由により正式にシステムを稼動するフェーズである正式稼動フェーズとが含まれても良い。
ストレージキャッシュ調整処理部117は、ストレージキャッシュ311の調整に関する処理を行う。具体的には、例えば、ストレージキャッシュ調整処理部117は、ストレージキャッシュ311の論理的な構成に関する設定を実行させるための指示(以下、ストレージキャッシュ設定指示、例えば、後述するキャッシュグループ初期割当指示や後述するパーティション変更指示)をストレージシステム31に送信する。そのストレージキャッシュ設定指示は、ストレージシステム31において、後述するホストI/F制御部323が受信し、キャッシュパーティション管理部325が解析して処理する。すなわち、本実施形態では、DBMS17が、ストレージキャッシュ311の論理的な構成に関する設定をストレージシステム31に実行させるためのインタフェースとしてストレージキャッシュ調整処理部117を備え、一方、ストレージシステム31が、そのインタフェースからストレージキャッシュ設定指示を受け付けるインタフェースとしてホストI/F制御部323を備える。
ストレージシステム31の制御装置34には、前述したように、ストレージキャッシュ311が備えられている。この制御装置34のCPU33で実行されるコンピュータプログラム(例えばメモリ35に記憶されるコンピュータプログラム)として、例えば、各ディスク装置37へのアクセスを制御するディスクアクセス制御部327と、DBMS17からのアクセスコマンドの処理やストレージキャッシュ311の論理的な構成に関する設定などを行うディスク制御部315とがある。ディスク制御部315は、ホストI/F制御部323と、データ転送制御部321と、キャッシュパーティション管理部325とを有する。
ホストI/F制御部323は、ホストコンピュータ11に対するインタフェースとして機能するコンピュータプログラムである。ホストI/F制御部323は、ホストコンピュータ11からコマンドを受け付け、コマンドを受けた場合には、受けたコマンドの種類を判別し、判別されたコマンドの種類に応じて、該受けたコマンドを、そのコマンドを処理できる他の部321或いは325に転送することができる。具体的には、例えば、ホストI/F制御部323は、受けたコマンドがアクセスコマンドであれば、該アクセスコマンドをデータ転送制御部321に転送し、受けたコマンドがストレージキャッシュ設定指示であれば、該ストレージキャッシュ設定指示をキャッシュパーティション管理部325に転送する。
データ転送制御部321は、アクセスコマンドの処理を実行するコンピュータプログラムである。データ転送制御部321は、ホストI/F制御部323からアクセスコマンドを受信し、該アクセスコマンドを解析し、該アクセスコマンドに従うアクセスをディスクアクセス制御部327に実行させることができる。
キャッシュパーティション管理部325は、キャッシュパーティション領域を管理するコンピュータプログラムである。キャッシュパーティション管理部325は、ホストI/F制御部323からストレージキャッシュ設定指示を受信し、該指示を解析し、該指示に従って、キャッシュパーティション領域に関する設定を実行することができる。
図3は、キャッシュパーティション領域の物理構成と論理構成の対応関係を示している。
ストレージキャッシュ311における各一以上のブロックを各キャッシュパーティション領域に割り当てることで、ストレージキャッシュ311に複数のキャッシュパーティション領域に論理的に分割することができる。ここで、ブロックとは、連続した複数のセグメントで構成される領域である。一つのキャッシュパーティション領域に割り当てられる複数のブロックは、ストレージキャッシュ311上で連続した領域となっている必要は無く、それぞれが離れた位置にあっても良い。その一例として、図3では、離れた位置にある複数のブロック“BLK♯0”、“BLK♯9”、“BLK♯25”及び“BLK♯27”が、一つのキャッシュパーティション領域“DBBuff1”にマッピングされていることを表している。
このように、ストレージキャッシュ311の論理分割を、ブロックのマッピングによって実現することにより、キャッシュパーティション領域のサイズの変更は、ブロックのマッピング変更によって対応することができる。
図4は、セグメントと親サブセグメント管理ブロック及び子サブセグメント管理ブロックとの対応関係を示している。
本実施形態では、セグメントは、単一又は複数のサブセグメントから構成されており、セグメントを構成するサブセグメントの個数を調整することで、セグメントのサイズが調整される。サブセグメントのサイズは、例えば、予め固定サイズに設定されている。複数のサブセグメントからセグメントを構成する場合、当該セグメントにおいて、最初にアクセスされたサブセグメントを「親サブセグメント」と称し、2番目以降にアクセスされたサブセグメントを「子サブセグメント」と称する。親サブセグメントと子サブセグメントを区別しない場合には、単に、「サブセグメント」と称する。すなわち、本実施形態では、サブセグメントが、ストレージキャッシュ311での物理的な管理単位であって、セグメントが、ストレージキャッシュ311に対する一アクセスでのデータサイズ単位(つまり入出力単位)である。
同図において、SSEG1〜SSEG8は、アクセスされたサブセグメントを、そのアクセス順番とともに示している。サブセグメントのサイズが16KBにデフォルト設定されている場合、セグメントサイズを64KBにするには、サブセグメントを4つ集めてセグメントを構成する必要がある。例えば、SSEG1を親サブセグメントとし、その後に続く3つのサブセグメントSSEG2〜SSEG4を子サブセグメントとして、互いに論理的に関連付けることにより、一つのセグメントを構成することができる。同様に、SSEG5を親サブセグメントとし、その後に続く3つのサブセグメントSSEG6〜SSEG8を子サブセグメントとして、互いに論理的に関連付けることにより、一つのセグメントを構成することができる。
尚、親サブセグメントと子サブセグメントは、必ずしも連続した記憶領域上に配置されている必要はなく、キャッシュメモリ上の各所に離散的に点在していてもよい。
親サブセグメント管理ブロック80は、親サブセグメントアドレス81、順方向ポインタ82、逆方向ポインタ83、子サブセグメントポインタ84、及び親サブセグメント管理情報85を含む。親サブサブセグメントアドレス81は、親サブセグメント管理ブロック80が管理する親サブセグメントの位置を示す。順方向ポインタ82は、最も古くアクセスされた順番に親サブセグメント管理ブロック80を指し示す。逆方向ポインタ83は、最も新しくアクセスされた順番に親サブセグメント管理ブロック80を指し示す。子サブセグメントポインタ84は、子サブセグメント管理ブロック90を指し示す。親サブセグメント管理情報85には、親サブセグメントのステータス(ダーティ/クリーン/フリー)等が格納される。親サブセグメント内にダーティデータとクリーンデータが混在する場合には、ビットマップ情報によって、そのステータスが管理される。ちなみに、ダーティデータとは、ディスク装置37に未だ格納されていないデータを意味し、クリーンデータとは、ディスク装置37に格納済みのデータを意味する(ディスク装置37に同じデータがあることを意味する)。
子サブセグメント管理ブロック90は、子サブセグメントアドレス91、順方向ポインタ92、及び子サブセグメント管理情報93を含む。子サブサブセグメントアドレス91は、子サブセグメント管理ブロック90が管理する子サブセグメントの位置を示す。順方向ポインタ92は、最も古くアクセスされた順番に子サブセグメント管理ブロック90を指し示す。子サブセグメント管理情報93には、子サブセグメントのステータス等が格納される。子サブセグメント内にダーティデータとクリーンデータが混在する場合には、ビットマップ情報によって、そのステータスが管理される。
先頭ポインタ101は、順方向ポインタ81の最後尾を指し示し、後方ポインタ102は、先頭の逆方向ポインタ82によって指し示される。
このようにして、キュー管理される親サブセグメント管理ブロック80と、子サブセグメント管理ブロック90は、ステータスがダーティデータの場合には、ダーティーキューとして管理され、ステータスがクリーンデータの場合には、クリーンキューとして管理される。親サブセグメントと複数の子サブセグメントを論理的に関連付けてセグメントを構成することにより、親サブセグメントが状態遷移すると、子サブセグメントも状態遷移するので、デステージング処理を高速化できる。
ちなみに、キャッシュパーティション領域のサイズ、或いはキャッシュパーティション領域のセグメントのサイズの設定変更は、例えば、管理コンピュータ41のストレージ管理部141を管理者が操作することにより、図5Aに例示するGUI(Graphical User Interface)を表示させ、更に、管理者が、そのGUI上で“パーティーション”という文字列を指定することで図5Bに例示するGUIを表示させ、該GUIを操作することで、行うことができる。
図6は、DBアクセス環境の構成例を示す。
この図には、4つのDBアクセス環境、すなわち、表T1というDBオブジェクトのデータにアクセスするための第一のDBアクセス環境と、表T2というDBオブジェクトのデータにアクセスするための第二のDBアクセス環境と、インデクスI1というDBオブジェクトのデータにアクセスするための第三のDBアクセス環境と、インデクスI2というDBオブジェクトのデータにアクセスするための第四のDBアクセス環境とが例示されている。いずれのDBアクセス環境も、一つのDBオブジェクトに、一つのDB領域が関連付けられ、その一つのDB領域に、一つのDBバッファ114が関連付けられ、その一つのDBバッファ114に、一つのファイルが関連付けられ、一つのファイルに、一つの論理ボリュームが関連付けられ、一つの論理ボリュームに、一つの論理ディスクが関連付けられ、一つの論理ディスクに、一つのキャッシュパーティション領域が関連付けられ、一つのキャッシュパーティション領域に、一つの論理ユニット(LU)が関連付けられた構成となっている。
ちなみに、図示のDBアクセス環境において、DBオブジェクトから論理ディスクまでが、ホストコンピュータ11内で管理されており、キャッシュパーティション領域及びLUが、ストレージシステム31内で管理されている。ホストコンピュータ11のオペレーティングシステム(OS)には、複数のコンピュータプログラム(図示せず)として、例えば、デバイスマネージャ、ボリュームマネージャ及びファイルシステムが含まれる。論理ディスクは、ストレージシステム31から提供されるLUを基にデバイスマネージャにより作成された論理的なディスク装置である。論理ボリュームは、論理ディスクを基にボリュームマネージャにより作成された論理的な記憶資源である。ファイルは、ファイルシステムで管理される資源である。DB領域とは、DBMS17で管理されている論理的な記憶領域である。また、図示の各DBアクセス環境において、DB領域を表す図形上の文字列(例えばDBArea1)は、DB領域名を表し、DBバッファを表す図形近傍に書いてある文字列(例えばDBBuff1)は、DBバッファ名を表し、ファイルを表す図形上の文字列(例えば/DB/DB1)は、ファイル名を表し、論理ボリュームを表す図形上の文字列(例えばLVOL1)は、論理ボリューム名を表し、論理ディスクを表す図形上の文字列(例えば/dev/dsik1)は、論理ディスク名を表す。また、キャッシュパーティション領域を表す図形近傍の文字列(例えばDBBuff1)は、キャッシュパーティション領域の名称(パーティション名)を表し、論理ユニットを表す図形上の文字列(例えばLUN1)のうちの数字は、LUN(Logical Unit Number)を表す。
以上の各DBアクセス環境が、DB初期設定フェーズにおいて構築される。DB初期設定フェーズでは、例えば、DBMS17が、クライアントコンピュータ1から、図7Aに例示するDB領域定義文と図7Bに例示するDBバッファ定義文とを受信する。DB領域定義文及びDBバッファ定義文のうちの少なくとも一方は、例えば、クライアントコンピュータ1のユーザによって作成された文である。DB領域定義文には、作成する各DB領域毎に、そのDB領域に関する情報として、例えば、DB領域名、そのDB領域に対応付けるファイルのファイル名、そのDB領域のサイズ、及びそのDB領域に対応付けるDBバッファのページのサイズが記録されている。一方、DBバッファ定義文には、各DBバッファ毎に、そのDBバッファに関する情報として、例えば、DBバッファ名、DBバッファのサイズ(図示の例ではページ数で指定されている)、及び対応先となるDB領域のDB領域名が記録される。DB設定処理部115は、DB領域定義文及びDBバッファ定義文を解析し、各DBアクセス環境の構成を表す情報として、例えば、図8Aに例示するDBバッファ−ディスクマッピングテーブル401を作成する。このテーブル401によれば、DB領域、DBバッファ、ファイル、論理ボリューム及び論理ディスクの対応関係がわかる。また、このテーブル401には、ページサイズ及びDBバッファサイズも記録されるので、どのDBバッファはどんなサイズであってそのDBバッファにおけるページはどんなサイズであるかもわかる。DBバッファに対するファイル、論理ボリューム及び論理ディスクの対応付けは、例えばDB設定処理部115がOSの所定のコンピュータプログラムを呼び出すことでOSに実行させ、OSとのやり取りにより、上記テーブル401を作成することができる。
以上のようにして構築されたDBアクセス環境では、例えば以下の流れによって、DBに対するアクセスが行われる。以下、表T1の更新が行われる場合を例に採って説明する。なお、以下の説明でも使用するが、本実施形態において、“バッファヒット”とは、書込みの場合には、データの書込み先となるページを確保できたことを意味し、読み出しの場合には、読み出し対象のデータを記憶したページを見つけたことを意味する。同様に、“キャッシュヒット”とは、書込みの場合には、データの書込み先となるセグメントを確保できたことを意味し、読み出しの場合には、読み出し対象のデータを記憶したセグメントを見つけたことを意味する。バッファヒット率が高いほど、ストレージシステム31に対してアクセスコマンドを発行させる回数が少ない。また、キャッシュヒット率が高いほど、ストレージシステム31内でのアクセス性能の向上が期待できる。
DBアクセス制御部111が、表T1に対応するDB領域“DBArea1”に対する書込みを実行する。具体的には、DBアクセス制御部111は、DB領域“DBArea1”に対応したDBバッファ“BBuff1”でバッファヒットとなった場合、バッファヒットの対象である一以上のページ(DBバッファ“BBuff1”上のページ)にデータを書き込み、ストレージシステム31のLU“LU#1”にライトコマンドが発行されることなく、表T1の更新が終了となる。一方、バッファヒットしなかった場合、DBアクセス制御部111は、ファイル“/DB/DB1”に対する書込みを実行する。それにより、ファイル“/DB/DB1”、論理ボリューム“LVOL1”、論理ディスク“/dev/dsik1”及びLUN“1”の対応付け(この対応付けは、例えばOSで管理されている)を基に、LUN“1”を指定したライトコマンドがホストコンピュータ11からストレージシステム31に送信される。ストレージシステム31では、データ転送制御部321が、そのライトコマンドでLUN“1”が指定されているので、LUN“1”に対応したキャッシュパーティション領域“DBBuff1”における、キャッシュヒットしたセグメントに、該ライトコマンドに従うデータを書く。そして、データ転送制御部321は、そのデータをそのキャッシュパーティション領域“DBBuff1”から読み出し、読み出したデータを、ディスクアクセス制御部327を呼び出して、LUN“1”のLUに書く。それにより、そのデータが、ディスクアクセス制御部327により、そのLUに対応したディスク装置37に書き込まれる。
本実施形態では、説明を分かり易くするために、DBアクセス環境の構成として上記のような構成としているが、その構成は、上記の構成に限らず、運用形態に応じて様々な構成が採られ得る。例えば、複数のファイルに一つの論理ボリュームが関連付けられても良いし、一つの論理ボリュームに複数の論理ディスクが関連付けられても良い。また、例えば、ストレージシステム31がNAS(Network Attached Storage)としての機能を有しても良く、その場合、図示のファイルシステムは、ホストコンピュータ11とストレージシステム31の両方にあるイメージとなる。
この図6では、DBバッファを表す図形内の各マスが、各ページを意味しており、キャッシュパーティションを表す図形内の各マスが、各セグメントを意味している。DBアクセス環境がどのような構成であれ、この図で大事な点の一つは、DB初期設定フェーズにおいて、DBバッファのDBバッファサイズ及びページサイズに、そのDBバッファに対応するキャッシュパーティション領域のパーティションサイズ及びセグメントサイズが一致させられる点にある。パーティションサイズ及びセグメントサイズは、DBMS17からのストレージキャッシュ設定指示で指定される。具体的には、例えば、DB初期設定フェーズでは、DB設定処理部115により、図8Bに例示するストレージキャッシュ制御指示テーブル403が作成される。ストレージキャッシュ制御指示テーブル403には、各DBバッファに対応付けられる各キャッシュパーティション領域毎に、そのキャッシュパーティション領域に対応付けるLUのLUNと、そのキャッシュパーティション領域のセグメントサイズ、パーティション名及びパーティションサイズ(キャッシュパーティション領域それ自体のサイズ)が記録される。セグメントサイズ及びパーティションサイズは、対応するDBバッファのページサイズ及びDBバッファサイズと同じ値にされる。このストレージキャッシュ制御指示テーブル403がストレージシステム31に送信されることで、キャッシュパーティション管理部325により、図9に例示するストレージキャッシュ−ディスクマッピングテーブル405が作成され、メモリ35に格納される。ストレージキャッシュ−ディスクマッピングテーブル405には、例えば、どのLUにどのキャッシュパーティション領域が対応付けられ、そのキャッシュパーティション領域のパーティションサイズ及びセグメントサイズがどのぐらいであるかが記録される。ストレージシステム31内では、例えば図3及び図4を参照して説明した方法により、各キャッシュパーティション領域が管理される。
以下、本実施形態で行われる処理流れを説明する。その説明は、DB初期設定フェーズとシステム稼動フェーズとに分けることにする。また、以下の説明では、ストレージキャッシュ設定指示は、DBMS17から管理コンピュータ41のストレージ管理部141を経由することなくストレージシステム31に送信されるが、ストレージキャッシュ設定指示は、DBMS17からストレージ管理部141に送信され、ストレージ管理部141からストレージシステム31に送信されても良い。
<<DB初期設定フェーズ>>。
図10は、DB初期設定フェーズにおいてDBMS17で実行されるDBバッファ構築処理の流れの一例を示す。なお、図では、ステップを「S」と略記している。
ステップ101で、DB設定処理部115が、クライアントコンピュータ1からのDB領域定義文(図7A参照)及びDBバッファ定義文(図7B参照)を解析する。これにより、例えば、用意すべきDBバッファのページサイズやページ数が特定される。
ステップ102で、DB設定処理部115が、DBバッファ総サイズを初期値として0(ゼロ)を設定する。
ステップ103で、DB設定処理部115が、DB領域定義文及びDBバッファ定義文の解析により特定された或るDBバッファについてページサイズにページ数を掛けることにより、DBバッファサイズを算出し、算出されたDBバッファサイズを上記DBバッファ総サイズに加算する。これにより、DBバッファ総サイズが更新される。
ステップ104で、DB設定処理部115が、その或るDBバッファに対応したキャッシュパーティション領域に関する情報を、ストレージキャッシュ制御指示テーブル403に登録する。具体的には、その或るDBバッファのDBバッファ名と同じ名前のパーティション名、その或るDBバッファのページサイズと同じ値のセグメントサイズ、その或るDBバッファのDBバッファサイズと同じ値のパーティションサイズ、及び、その或るDBバッファに対応した論理ディスクに対応するLUN(例えばOSから取得されるLUN)が登録される。なお、このステップ104の段階で、DBバッファ−ディスクマッピングテーブル401の或る行に、その或るDBバッファに関する情報を登録して良い。
ステップ105で、DB設定処理部115が、DB領域定義文及びDBバッファ定義文の解析により特定された全てのDBバッファにそれぞれ対応する全てのキャッシュパーティション領域についてステップ103及び104を実行したかどうかを判断する。実行していれば、ステップ106にすすみ、実行していなければ、未処理のDBバッファについてステップ103を実行する。なお、そのステップ103においてDBバッファサイズが加算されるDBバッファ総サイズは、前回のステップ103での更新後のDBバッファ総サイズである。
ステップ106で、DB設定処理部115が、キャッシュグループ初期割当指示を準備し、ストレージキャッシュ調整処理部117を呼び出すことで、ストレージキャッシュ調整処理部117により、キャッシュグループ初期割当指示をストレージシステム31に送信させる。その際、上記作成されたストレージキャッシュ制御指示テーブル403も送信させる。なお、本実施形態において、キャッシュグループとは、一つのDBMS17に対応する一以上のキャッシュパーティション領域の集合を言う。すなわち、本実施形態では、図16Aに例示するように、一つのDBMS17につき、一つのパーティション領域(キャッシュグループ)が用意され、その一つのパーティション領域が、その一つのDBMS17が管理する複数のDBバッファにそれぞれ対応した複数のサブパーティション領域(キャッシュパーティション領域)が形成される。しかし、キャッシュグループという概念の無い形態、例えば、図16Bに示すように、単に、各DBバッファ毎にキャッシュパーティション領域が形成されても良い。
ステップ107で、ストレージキャッシュ調整処理部117が、エラー報告を受信した場合、ステップ107でYESとなり、エラー報告を受信したことをDB設定処理部115に通知してステップ108に進み、完了報告を受信した場合、終了となる。
ステップ108で、DB設定処理部115が、ストレージキャッシュ制御指示テーブル更新処理を実行する。すなわち、ステップ106で送信されたストレージキャッシュ制御指示テーブルを更新する。エラー報告を受信する理由としては、後の図11の説明からわかるように、ストレージキャッシュ制御指示テーブル403に記録した一以上のパーティションサイズの合計以上のサイズの空き領域がストレージキャッシュ311に無いということなので、そのテーブル403の更新方法としては、例えば、以下の(方法1)〜(方法3)が考えられる。以下の方法において、キャッシュパーティション領域の数或いはサイズの変更が行われる場合には、対応するDBバッファの数或いはサイズの変更が行われても良い。バッファサイズとパーティションサイズは互いに対応しており、また、ページサイズとセグメントサイズも互いに対応しているためである。以下の(方法1)〜(方法3)に限らず他の方法が採用されても良い。
(方法1)DB設定処理部115が、或る削減率を各DBバッファサイズ及び各パーティションサイズに乗ずる。その削減率は、予め決められていても良いし、どのぐらい空き領域サイズが足りなかった(つまり不足空き領域サイズ)がエラー報告に含められている場合には、不足空き領域サイズを基にDB設定処理部115により削減率が決定されても良い。
(方法2)DB設定処理部115が、同じセグメントサイズのキャッシュパーティション領域を一つにまとめ、且つ、或る削減率を、一つにまとめられたキャッシュパーティション領域のパーティションサイズに乗ずる。それにより、パーティション数およびパーティションサイズを削減することができる。
(方法3)DB設定処理部115が、ストレージキャッシュ311の論理分割の実行を中止する。
(方法1)DB設定処理部115が、或る削減率を各DBバッファサイズ及び各パーティションサイズに乗ずる。その削減率は、予め決められていても良いし、どのぐらい空き領域サイズが足りなかった(つまり不足空き領域サイズ)がエラー報告に含められている場合には、不足空き領域サイズを基にDB設定処理部115により削減率が決定されても良い。
(方法2)DB設定処理部115が、同じセグメントサイズのキャッシュパーティション領域を一つにまとめ、且つ、或る削減率を、一つにまとめられたキャッシュパーティション領域のパーティションサイズに乗ずる。それにより、パーティション数およびパーティションサイズを削減することができる。
(方法3)DB設定処理部115が、ストレージキャッシュ311の論理分割の実行を中止する。
図11は、キャッシュグループ初期割当指示を受信したストレージシステム31において実行される処理の流れの一例を示す。
ステップ111で、キャッシュパーティション管理部325は、キャッシュグループ初期割当指示と共にストレージキャッシュ制御指示テーブル403を受信し、そのテーブル403を解析する。
ステップ112で、キャッシュパーティション管理部325は、現在の空き領域サイズ(ストレージキャッシュ311における空き領域のサイズ)がストレージキャッシュ制御指示テーブル403のうちの或るパーティションサイズ以上か否かを判断する。現在の空き領域サイズがそのパーティションサイズ未満であれば、ステップ112でNOとなり、ステップ113に進む。現在の空き領域サイズがそのパーティションサイズ以上であれば、ステップ112でYESとなり、ステップ114に進む。
ステップ113で、キャッシュパーティション管理部325は、ホストI/F制御部323を通じて、エラー報告を送信する。そのエラー報告には、例えば、現在の空き領域サイズとストレージキャッシュ制御指示テーブル403における一以上のパーティションサイズの合計との差分、つまり不足空き領域サイズが含められても良い。
ステップ114で、キャッシュパーティション管理部325は、空き領域サイズ変更処理を行う。具体的には、空き領域サイズから、上記或るパーティションサイズを減じる。
ステップ115で、キャッシュパーティション管理部325は、パーティション設定処理(図12参照)というサブルーチンを実行する。例えば、キャッシュパーティション管理部325は、パーティション/LU初期割当指示を受け付け(ステップ121)、内部的に(自分に対して)、パーティション/LU初期割当指示を発行する。その指示では、例えば、ストレージキャッシュ制御指示テーブル403に記録されているLUN、セグメントサイズ、パーティション名及びパーティションサイズが指定されている。ここでは、そのLUNに対応したLUを「対象LU」と呼ぶ。キャッシュパーティション管理部325は、その指示に応答して、対象LUへのアクセス(I/O)を抑制することをホストI/F制御部323に実行させ(ステップ122)、対象LUに割り当てるキャッシュパーティション領域を初期化(例えば図4の管理を初期化)する(ステップ123)。このステップ123において、例えば、ストレージキャッシュ−ディスクマッピングテーブル405(図9参照)に、対象LUにつき、LUN、セグメントサイズ、パーティション名及びパーティションサイズを登録することができる。ステップ123の後、キャッシュパーティション管理部325は、アクセスの抑止をホストI/F制御部323に解除させ(ステップ124)、完了報告を内部的に発行する(ステップ125)。これにより、このサブルーチンから抜ける。
ステップ116で、キャッシュパーティション管理部325は、ストレージキャッシュ制御指示テーブル403で表されている全てのキャッシュパーティション領域を設定したか否かを判断する。設定していないと判断した場合、ステップ116でNOとなり、別のキャッシュパーティション領域についてステップ112を行う。設定したと判断した場合、ステップ116でYESとなり、ステップ117に進む。
ステップ117では、キャッシュパーティション管理部325は、ホストI/F制御部323を通じて、完了報告を送信する。
<<システム稼動フェーズ>>。
DBMS17が、クライアントコンピュータ1からデータベース操作要求(例えばSQL文)を受け付け、該データベース操作要求に従って、DBオブジェクトに対するアクセス(I/O)を実行することができる。その際、DBMS17は、そのDBオブジェクトに対応するDBバッファでバッファヒットした場合には、バッファヒットしたページに対するアクセスにより、DBオブジェクトに対するアクセスを終了し、バッファヒットしなかった場合に、該DBバッファに対応するLUNを指定したアクセスコマンドがストレージシステム31に発行される。DBアクセス制御部111は、DBバッファに対するアクセスの都度にバッファヒットしたか否かをホストコンピュータ11内の記憶資源15に蓄積することで、DBバッファ毎にバッファヒット率を算出することができる。バッファヒット率とは、例えば、DBバッファへのアクセス回数を100とした場合のバッファヒット回数を表す。DBアクセス制御部111は、DBバッファ毎に、算出したバッファヒット率や、DBバッファへのアクセスの種類(ライトであるかリードであるか)に応じたアクセス回数(リード回数及びライト回数)を、バッファヒット管理テーブル501に登録する。これにより、図13Aに示すように、DB初期設定フェーズ終了直後は、どのDBバッファにもアクセスが発生していないので、バッファヒット率、リード回数及びライト回数は0(ゼロ)であるが、システム稼動フェーズとなりDBバッファへのアクセスが発生すると、バッファヒット率、リード回数及びライト回数は更新される。図13Bは、或る時刻Tにおけるバッファヒット管理テーブル501を示す。
図14は、システム稼動フェーズでDBMS17により実行される処理の流れの一例を示す。
ステップ131で、DB設定処理部115は、パーティション変更指示を受け付ける。パーティション変更指示は、クライアントユーザの操作によりクライアントコンピュータ11から送信されるか、或いは、管理者の操作により管理コンピュータ41内のストレージ管理部141から送信される。パーティション変更指示を受信した場合、ステップ132に進む。
ステップ132では、DB設定処理部115は、バッファヒット管理テーブル501を解析する。そして、バッファヒット管理テーブル501の或る行に対応したDBバッファ(以下、当該DBバッファ)について、ステップ133〜135が実行される。
ステップ133では、DB設定処理部115は、当該DBバッファにキャッシュパーティション領域が割り当けられているかどうか(以下、パーティション割当有無)を判断する。これは、種々の方法で実行可能である。例えば、当該DBバッファのDBバッファ名と同じ名前のパーティション名の有無をストレージシステム31に問い合わせ、その問合せに対する回答を解析することにより、パーティション割当有無が判断されても良い。別の方法として、例えば、ストレージシステム31に送信したストレージキャッシュ制御指示テーブル403(図8B参照)を、ホストコンピュータ11の記憶資源15に蓄積しておき、そのテーブル403を参照することで、パーティション割当有無が判断されても良い。また別の方法として、DBバッファ−ディスクマッピングテーブル401に、パーティション割当有無を意味するフラグのカラムを用意し、DB設定処理部115が、例えば図10のステップ107で完了報告を受信した場合にそのフラグを設定する構成となっている場合に、そのマッピングテーブル401を参照することで、パーティション割当有無が判断されても良い。パーティション割当が有りと判断された場合、ステップ133でYESとなり、ステップ134にすすむ。パーティション割当が無しと判断された場合、ステップ133でNOとなり、ステップ136に進む。
ステップ134では、DB設定処理部115が、当該DBバッファのバッファヒット率(バッファヒット管理テーブル501に記録されているバッファヒット率)が所定の閾値(例えば100)以上であるか否かを判断する。所定の閾値以上と判断された場合、ステップ134でYESとなり、ステップ135に進む。所定の閾値未満と判断された場合、ステップ134でNOとなり、ステップ136に進む。
ステップ135では、DB設定処理部115が、当該DBバッファに対するキャッシュパーティション領域の割り当ての解除を意味する要求(以下、パーティション割当解除要求)を作成し、作成したパーティション割当解除要求を記憶資源15に蓄積する。
ステップ136では、バッファヒット管理テーブル501に記録されている全てのDBバッファについてステップ133以降の処理が完了したか否かを判断する。完了していないと判断した場合、ステップ136でNOとなり、そのテーブル501上の別の行に対応するDBバッファを当該DBバッファとしてステップ133以降が行われる。一方、完了したと判断された場合、ステップ136でYESとなり、ステップ137に進む。
ステップ137では、DB設定処理部115が、記憶資源15に蓄積されている一以上のパーティション割当解除要求を含んだパーティション変更指示を準備し、ストレージキャッシュ調整処理部117を呼び出すことで、ストレージキャッシュ調整処理部117に、該パーティション変更指示をストレージシステム31に送信させる。
ステップ138では、DB設定処理部115が、ストレージシステム31からストレージキャッシュ調整処理部117を通じて完了報告を受信する。完了報告では無く例えばエラー報告を受信した場合、パーティション変更失敗を、ステップ131で受信したパーティション変更指示の送信元に通知しても良い。
以上が、DBMS17で行われる処理の流れの一例である。なお、この流れは、クライアントコンピュータ11或いは管理コンピュータ41からの指示を契機に開始されているが、それに代えて、DBMS17が、定期的に又は不定期的に、バッファヒット管理テーブル501を参照して、バッファヒット率が所定閾値を超えているDBバッファがあるかどうかを調べ、ある場合には、所定閾値を超えている全てのDBバッファについて、ステップ135及びステップ137を実行しても良い。
図15は、パーティション変更指示を受信したストレージシステム31において行われる処理の流れの一例を示す。
ステップ141で、キャッシュパーティション管理部325が、ホストI/F制御部323を介して、パーティション変更指示を受け付ける。パーティション変更指示を受けた場合、そのパーティション変更指示中の一以上のパーティション割当解除要求(以下、当該解除要求)について、ステップ142以降の処理を行う。
ステップ142で、キャッシュパーティション管理部325が、当該解除要求に対応したキャッシュパーティション領域にダーティデータがあれば、そのダーティデータをデステージする(すなわち、キャッシュパーティション領域に対応したLUを構成するディスク装置37にそのダーティデータを書く)。
ステップ143で、キャッシュパーティション管理部325が、変更先キャッシュパーティション領域のセグメントサイズが最小サイズ(サブセグメントサイズ)であるか否かをチェックする。ここで、変更先キャッシュパーティション領域とは、例えば、どのDBバッファにも対応付けられていない領域(以下、共有キャッシュ領域)である。つまり、この図15に示す流れは、キャッシュパーティション領域を単に解放するだけでなく、該キャッシュパーティション領域を共有キャッシュ領域に含めることを例に採った流れとなっている。変更先パーティションのセグメントサイズが最小サイズでない場合には、ステップ143でNOとなり、ステップ144にすすみ、最小サイズである場合には、ステップ143でYESとなり、ステップ146に進む。
ステップ144で、キャッシュパーティション管理部325が、ステップ144で、CPU21は、親サブセグメントに子サブセグメントが接続されるように、親サブセグメント管理ブロック80と子サブセグメント管理ブロック90のキュー管理を再編成する。この再編成処理を子サブセグメント数分繰り返すことで(ステップ145)、変更元パーティションから変更先キャッシュパーティション領域に移動するブロックのセグメントサイズを変更先キャッシュパーティション領域のセグメントサイズに一致させることができる。
ステップ146で、キャッシュパーティション管理部325が、親サブセグメント同士が接続されるように、親サブセグメント管理ブロック80のキュー管理を再編成する。
ステップ147で、キャッシュパーティション管理部325が、ステップ141で受けたパーティション変更指示中の全てのパーティション割当解除要求について、ステップ142以降の処理を行ったか否かを判断する。行っていなければ、ステップ147でNOとなり、他のパーティション割当解除要求を当該解除要求としてステップ142を実行し、行っていれば、ステップ147でYESとなり、ステップ148にすすむ。
ステップ148で、キャッシュパーティション管理部325が、ホストI/F制御部323を通じて、完了報告をDBMS17に送信する。
以上、上述した第一の実施形態によれば、DB初期設定フェーズにおいて、DBMS17が、作成したDBバッファのページサイズと同じセグメントサイズのキャッシュパーティション領域を、そのDBバッファに対応したキャッシュパーティション領域としてストレージシステム31に作成させる。その際、バッファサイズとパーティションサイズも一致させる。システム稼動フェーズになれば、DBバッファやそれに対応付けられたキャッシュパーティション領域に対してアクセスが発生するが、ページサイズ及びセグメントサイズが一致しており、バッファサイズ及びパーティションサイズも一致しているので、キャッシュパーティション領域の利用効率の低下を抑えることができる。
また、上述した第一の実施形態によれば、バッファヒット率が所定閾値(例えば100)以上のDBバッファに対応したキャッシュパーティション領域が削除される。削除されたキャッシュパーティション領域は、例えば、前述した共有キャッシュ領域に割当てられる。これにより、共有キャッシュ領域でのキャッシュヒット率の向上が期待できる。なお、キャッシュパーティション領域の削除とは、キャッシュパーティション領域の全てを削除(解放)するのであっても良いし、その一部を削除するのであっても良い(つまり縮小であっても良い)。つまり、縮小率は、所定の方法でDB設定処理部115によって決定されても良い。例えば、縮小率は、バッファヒット率を100で割った値とされても良い。
<第二の実施形態>。
以下、本発明の第二の実施形態を説明する。その際、第一の実施形態との相違点を主に説明し、第一の実施形態との共通点については、説明を省略或いは簡略する。
図17は、第二の実施形態において、キャッシュグループ初期割当指示を受信したストレージシステム31において実行される処理の流れの一例を示す。なお、第一の実施形態のそれと同じ部分については、同一の参照番号が付してある。
第二の実施形態では、ステップ112でNOとなった場合に、エラー報告が送信されるのではなく、以下のステップ201〜203が実行される。
ステップ201で、キャッシュパーティション管理部325が、割り当て要求サイズとして、空き領域サイズを、メモリ35に記憶させる。つまり、ここでは、DBバッファ総サイズを現在の空き領域サイズにまで減らせば良いとする。
ステップ202で、キャッシュパーティション管理部325が、割り当て要求削減率として、空き領域サイズをDBバッファ総サイズで割った値を、メモリ35に記憶させる。
ステップ203で、キャッシュパーティション管理部325が、ストレージキャッシュ制御指示テーブル403に書かれている各パーティションサイズに、ステップ202で算出され記憶された割り当て要求削減率を乗ずる。
その後、ステップ114以降が行われる。これにより、ストレージキャッシュ311に設定される各キャッシュパーティション領域のパーティションサイズは、DBバッファサイズを上記割り当て要求削減率分縮小されたサイズとなる。
以上が、第二の実施形態についての説明である。なお、上記説明では、全てのキャッシュパーティション領域が一律に縮小されるが、それに代えて、DBオブジェクトの属性など所定の情報を基に、各キャッシュパーティション領域の縮小率(割り当て要求削減率)が違っても良い。
この第二の実施形態によれば、ストレージキャッシュ311での空き領域サイズが要求パーティションサイズ(DBバッファ総サイズ)に満たない場合には、要求パーティションサイズを空き領域サイズ以下に縮小して各キャッシュパーティション領域が設定され、エラー報告がDBMS17に変えらないようにする。これにより、DBMS17でエラー報告に対処する必要をなくすことができる。
なお、ユーザ或いは管理者によっては、各DBバッファサイズに対応した各パーティションサイズのキャッシュパーティション領域が用意されないのであればキャッシュパーティション領域を必要としない等、ユーザ或いは管理者のニーズは様々であるかもしれないので、この第二の実施形態では、DBMS17が、エラー報告を必要とするか不要とするかをユーザ或或いは管理者から受け付けても良い。DBMS17は、エラー報告の要否を表す情報(以下、エラー報告要否情報)を、キャッシュグループ初期割当指示に含めて送信しても良い。この場合、キャッシュパーティション管理部325は、キャッシュグループ初期割当指示を解析し、エラー報告要否情報がエラー報告を必要とすることを表していれば、ステップ112でNOの場合に図11のステップ113を実行し(つまりエラー報告を送信し)、エラー報告要否情報がエラー報告を不要とすることを表していれば、ステップ112でNOの場合に図17のステップ201以降を実行してもよい。
<第三の実施形態>。
この第三の実施形態では、バッファヒット率が所定閾値以上のDBバッファに割り当てられているキャッシュパーティション領域を解放するだけでなく、解放されたキャッシュパーティション領域の全部又は一部を、バッファヒット率が所定閾値未満のDBバッファに割り当てられているキャッシュパーティション領域(以下、拡張対象パーティション領域)に追加され、より大サイズのキャッシュパーティション領域とされる。これにより、バッファヒット率が所定閾値未満のDBバッファに割り当てられているキャッシュパーティション領域についてキャッシュヒット率の向上が期待できる。以下、具体的に説明する。その際、バッファヒット率が所定閾値以上のDBバッファに割り当てられているキャッシュパーティション領域を、「削除対象パーティション領域」と称し、バッファヒット率が所定閾値未満のDBバッファに割り当てられているキャッシュパーティション領域を、「拡張対象パーティション領域」と称する。
図18は、第三の実施形態のシステム稼動フェーズでDBMS17により実行される処理の流れの一例を示す。
全ての削除対象パーティション領域についてパーティション割当て解除要求が作成された後に、全ての拡張対象パーティション領域についてパーティションサイズ拡張要求が作成され、作成されたパーティション割当て解除要求及びパーティションサイズ拡張要求を含んだパーティション変更指示が、DBMS17からストレージシステム31に送信される。
すなわち、ステップ135の後に、ステップ301が行われる。
ステップ301で、DB設定処理部115が、削除サイズとして、現在の削除サイズ(初めての場合は0(ゼロ))に、当該パーティション領域サイズ(ステップ135で作成されたパーティション割り当て解除要求で指定されている削除対象パーティション領域)のパーティションサイズを加算した値を、記憶資源15に記憶させる。このステップ301は、バッファヒット率が所定閾値以上である全てのDBバッファについて実行される。
バッファヒット率が所定閾値以上である全てのDBバッファについてステップ301まで実行された場合、ステップ136でYESとなり、ステップ302にすすむ。
ステップ302で、DB設定処理部115が、DBバッファ−ディスクマッピングテーブル401及びバッファヒット管理テーブル501を解析し、後述のステップ303での判断に必要な情報を得る。
ステップ303で、DB設定処理部115が、当該DBバッファ(バッファヒット率が所定閾値未満である或るDBバッファ)にキャッシュパーティション領域が割当てられていて且つそのキャッシュパーティション領域が削除対象であるか否かを判断する。肯定的な判断結果になれば、ステップ303でYESとなり、ステップ306にすすみ、否定的な判断結果になれば、ステップ303でNOとなり、ステップ304にすすむ。
ステップ304で、DB設定処理部115が、パーティションサイズ拡張要求を作成し、記憶資源15に記憶させる。そのパーティションサイズ拡張要求には、例えば、拡張対象パーティション領域のパーティション名と、拡張サイズとが含まれる。ここでの拡張対象パーティション領域は、例えば、バッファヒット率が所定閾値未満である一以上のDBバッファの中から選択したDBバッファに割当てられているキャッシュパーティション領域である。拡張サイズは、そのキャッシュパーティション領域に追加するパーティションサイズである。拡張サイズは予め設定された法則に基づいてDB設定処理部115により決定される。
ステップ305で、DB設定処理部115が、削除サイズとして、現時点の削除サイズ(初めてのステップ305では、全ての削除対象パーティション領域のパーティションサイズの合計)から上記拡張サイズを減じた値を、記憶資源15に記憶させる。
ステップ306で、DB設定処理部115が、全てのDBバッファについてステップ303以降の処理を行ったか否かを判断する。行っていれば、ステップ306でYESとなり、ステップ137に進み、行っていなければ、ステップ30でNOとなり、未処理のDBバッファについてステップ303が実行される。
ステップ137で、DB設定処理部115が、パーティション変更指示を準備し、ストレージキャッシュ調整処理部117を呼び出すことで、ストレージキャッシュ調整処理部117に、パーティション変更指示をストレージシステム31に送信させる。そのパーティション変更指示には、記憶資源15に蓄積された全てのパーティション割り当て解除要求と全てのパーティションサイズ拡張要求とが含まれる。
以上が、第三の実施形態のシステム稼動フェーズでDBMS17が実行する処理の説明である。なお、パーティション割り当て解除要求とパーティションサイズ拡張要求とを別々に作成することに代えて、どの削除対象パーティション領域をどの拡張対象パーティション領域に追加するかを指定した要求が作成されても良い。具体的には、例えば、図19に例示するように、DB初期設定フェーズでは、上側のストレージキャッシュ制御指示テーブル403が送信されたが、システム稼動フェーズでは、下側のストレージキャッシュ制御指示テーブル403が、パーティション変更指示と共に送信されても良い。この例によれば、削除対象パーティション領域“DBBuff3”(図13によれば、バッファヒット率100のDBバッファ“DBBuff3”に対応付けられているキャッシュパーティション領域)のパーティションサイズ32MB(メガバイト)のうちの31MBと、削除対象パーティション領域“DBBuff4”(図13によれば、バッファヒット率100のDBバッファ“DBBuff4”に対応付けられているキャッシュパーティション領域)のパーティションサイズ48MBのうちの47MBとを(つまり合計78MBを)、拡張対象パーティション領域“DBBuff1”のパーティションサイズ100MBに加えることにより、その拡張対象パーティション領域“DBBuff1”のパーティションサイズを178MBに拡張することが、DBMS17からストレージシステム31に指示される。
ストレージシステム31では、キャッシュパーティション管理部325が、そのパーティション変更指示を受けて、図15を参照して説明したステップ142以降の処理を行う。その処理では、例えば、ステップ142において、拡張対象パーティション領域については、拡張サイズ分のブロックを確保する処理を実行することができる。また、例えば、全てのパーティション割り当て解除要求に従う処理の後で、各パーティションサイズ拡張要求に従う処理を実行しても良いし、削除対象パーティション領域の削除と並行してパーティションサイズ拡張要求を処理しても良い。別の言い方をすれば、削除対象パーティション領域を、どのDBバッファにも割り当てられていない領域(共有キャッシュ領域)に加えた後に、共有キャッシュ領域から拡張サイズ分を拡張対象パーティション領域に加えても良いし、共有キャッシュ領域に加えることなく直接、削除対象パーティション領域の拡張サイズ分(足りなければ、他の削除対象パーティション領域の全部又は一部を含めて)、拡張対象パーティション領域に加えても良い。これによれは、変更対象パーティション領域として、削除対象パーティション領域或いは共有キャッシュ領域となり、変更先パーティション領域として、共有キャッシュ領域或いは拡張対象パーティション領域となる。
変更対象パーティション領域を変更先パーティション領域に追加する場合、変更対象パーティション領域のセグメントサイズと変更先パーティション領域のセグメントサイズとが異なる場合がある。この場合には、所定のタイミング(例えば、ステップ142とステップ143の間)で、変更対象パーティション領域のセグメントサイズを変更先パーティション領域のセグメントサイズに変更するセグメント変更処理を実行することができる。そのセグメント変更処理では、例えば、変更対象パーティション領域の各セグメントを構成するサブセグメントの数を、変更後のセグメントサイズを基に減らし或いは増やすことで、変更対象パーティション領域のセグメントサイズを変更先パーティション領域のセグメントサイズに一致させることができる。より具体的には、例えば、文献5に開示の技術を応用しても良い。
以上の一連の処理により、システム稼動フェーズでは、削除対象パーティション領域を拡張対象パーティション領域に追加することができる。これにより、拡張対象パーティション領域でのキャッシュヒット率を向上させることができる。
なお、DBMS17が削除サイズ分(一以上の削除対象パーティション領域の各削除分の合計)の領域を一以上の拡張対象パーティション領域にどう割り振らせるかは様々な態様を採り得る。例えば、削除サイズ分の領域を一つの拡張対象パーティション領域(例えば、バッファヒット率が最も低いDBバッファに対応したパーティション領域)に割り振っても良いし、削除サイズ分の領域を均等に複数の拡張対象パーティションに割り振っても良いし、削除サイズ分の領域を各バッファヒット率に基づく比率で複数の拡張対象パーティションに割り振っても良い。「各バッファヒット率に基づく比率」としては、例えば、バッファヒット率の逆数の比を基にした比率として良い。具体的には、例えば、第一の拡張対象パーティション領域に対応したバッファヒット率が80であり、第二の拡張対象パーティション領域に対応したバッファヒット率が40の場合、バッファヒット率の比は2:1のため、逆数の比は、1:2となる。削除サイズを90とした場合、90×1/3=30が、第一の拡張対象パーティション領域に割り振られ、90×2/3=60が、第二の拡張対象パーティション領域に割り振られる。こうすることで、バッファヒット率が低いDBバッファに対応した拡張対象パーティション領域には、バッファヒット率が高いDBバッファに対応した拡張対象パーティション領域に比してより多くの領域が割当てられるので、キャッシュヒット率の低下を抑えることが期待できる。
<第四の実施形態>。
第四実施形態では、複数のDB領域及びそれにそれぞれ対応する複数のLUに一つのDBバッファが対応付けられる。この場合、DBバッファ−ディスクマッピングテーブル401は、例えば図20Aに例示するテーブルになり、ストレージキャッシュ制御指示テーブル403は、例えば図20Bに例示するテーブルになる。図20A及び図20Bでは、上記一つのDBバッファは、DBバッファ“DBBuff5”である。
これは、例えば、図20Cに例示するDBバッファ定義文により定義することができる。すなわち、DBバッファ“DBBuff5”に対して、DB領域のDB領域名を記載するのではなく、明示的に指定されないDB領域を指定することを意味する文字列(例えば“Others”)を記載することで、定義することができる。DB設定処理部115は、その文字列を検出した場合には、その文字列に対応したDBバッファに、DB領域定義文には記述されているがDBバッファ定義文には記述されていない全てのDB領域名のDB領域を対応付けることができる。
なお、一つのキャッシュパーティション領域には、一つのLUが割当てられるが(言い換えれば、例えば、複数のLUのそれぞれ対して複数のキャッシュパーティション領域が排他的に割当てられるが)、この第四の実施形態では、複数のDB領域が対応付けられるキャッシュパーティション領域には、複数のLUが割当てられる。
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、DBMS17からストレージ管理部141を経由して或いは経由しないでストレージシステム31が受信した各指示は、一旦、ストレージシステム31における記憶資源に設けられた専用の記憶域(例えば、LU或いはメモリ領域)に蓄積し、該専用の記憶域から取得して解析しても良い。また、例えば、ホストコンピュータ11は、いわゆるブレードサーバとしてストレージシステム31に搭載されてもよい。
11…ホストコンピュータ 17…DBMS 41…管理コンピュータ 111…DBアクセス制御部 113…DBバッファ群 114…DBバッファ 115…DB設定処理部 117…ストレージキャッシュ調整処理部 141…ストレージ管理部 311…ストレージキャッシュ 315…ディスク制御部 321…データ転送制御部 323…ホストI/F制御部 325…キャッシュパーティション管理部
Claims (19)
- キャッシュメモリを論理的に分割することにより得られた複数のキャッシュパーティション領域の各々を複数の記憶装置の各々に対して割り当てることを外部からのパーティション設定指示に応答して実行するストレージシステムに接続されたホストコンピュータで動作するデータベース管理システムであって、
各データベースバッファに関するサイズを基に、該各データベースバッファに対応付ける各キャッシュパーティション領域に関するサイズを決定し、決定したサイズで該各キャッシュパーティション領域に関する設定を行うことのパーティション設定指示を作成する設定処理部と、
前記作成されたパーティション設定指示を送信する指示送信部と
を備えるデータベース管理システム。 - 前記各データベースバッファに関するサイズとは、該各データベースバッファについて、データベースバッファを構成する記憶領域でありアクセス単位であるページのサイズであり、
前記各キャッシュパーティション領域に関するサイズとは、該各キャッシュパーティション領域について、キャッシュパーティション領域を構成する記憶領域でありアクセス単位であるセグメントのサイズであり、
前記設定処理部は、前記各キャッシュパーティション領域のセグメントサイズを、該各キャッシュパーティション領域に対応付けられる各データベースバッファのページサイズと同じサイズに決定する、
請求項1記載のデータベース管理システム。 - 前記各データベースバッファに関するサイズとは、更に、該各データベースバッファについて、データベースバッファそれ自体のサイズであるバッファサイズであり、
前記各キャッシュパーティション領域に関するサイズとは、更に、該各キャッシュパーティション領域について、キャッシュパーティション領域それ自体のサイズであるパーティションサイズであり、
前記設定処理部は、初期設定の際、前記各キャッシュパーティション領域のパーティションサイズを、該各キャッシュパーティション領域に対応付けられる各データベースバッファのバッファサイズと同じサイズに決定する、
請求項2記載のデータベース管理システム。 - 前記ストレージシステムは、前記パーティション設定指示を受信した場合、該パーティション設定指示で指定されている複数のパーティションサイズの合計よりも前記キャッシュメモリにおける空き領域サイズが少ない場合には、エラー報告を、該パーティション設定指示の送信元に返信するよう構成されており、
前記設定処理部は、前記エラー報告を受信した場合には、前記複数のパーティションサイズの合計が前記空き領域サイズ以下になるようキャッシュパーティション領域の数及びサイズのうちの少なくとも一方を調整したパーティション設定指示を新たに作成し、
前記指示送信部が、前記新たに作成されたパーティション設定指示を送信する、
請求項3記載のデータベース管理システム。 - 前記設定処理部は、前記複数のパーティションサイズをそれぞれ同じ縮小率で縮小することにより該複数のパーティションサイズの合計を前記空き領域サイズ以下になるよう調整する、
請求項4記載のデータベース管理システム。 - 前記ストレージシステムは、前記パーティション設定指示を受信した場合、該パーティション設定指示で指定されている複数のパーティションサイズの合計よりも前記キャッシュメモリにおける空き領域サイズが少ない場合には、エラー報告を、該パーティション設定指示の送信元に返信するよう構成されており、
前記設定処理部は、エラー報告の要否をユーザから受け付け、エラー報告を必要とするか否かを表すエラー要否情報を前記パーティション設定指示に含める、
請求項3記載のデータベース管理システム。 - 前記データベース管理システムで管理される複数のデータベース領域に前記複数のデータベースバッファがそれぞれ対応付けられており、前記データベース管理システムが、各データベース領域へのアクセスを実行するアクセス制御部を更に備え、該アクセス制御部は、或るデータベース領域へのアクセスを実行する場合、該或るデータベース領域に対応したデータベースバッファである当該データベースバッファでバッファヒットした場合には、バッファヒットで確保された領域にアクセスし、バッファヒットしなった場合に、前記当該データベースバッファに対応付けられたキャッシュパーティション領域に割当てられている記憶装置を指定したアクセスコマンドが前記ホストコンピュータから前記ストレージシステムに送信され、前記ストレージシステムが、該アクセスコマンドに従うデータを、該アクセスコマンドで指定されている記憶装置が割当てられたキャッシュパーティション領域に一時格納するようになっており、
前記アクセス制御部が、各データベースバッファについて、データベースバッファへのアクセス回数のうちのバッファヒットした回数を表すバッファヒット率を算出し、
前記設定処理部が、各データベースバッファの前記算出されたバッファヒット率に基づいて、前記パーティション設定指示として、前記複数のキャッシュパーティション領域のうちの少なくとも一つに関するサイズの設定変更を意味する指示を作成する、
請求項1記載のデータベース管理システム。 - 前記設定処理部は、前記パーティション設定指示として、バッファヒット率が所定閾値以上のデータベースバッファに対応付けられたキャッシュパーティション領域の全部又は一部を前記キャッシュメモリから削除することの意味である削除意味を含んだ指示を作成する、
請求項7記載のデータベース管理システム。 - 前記設定処理部は、前記パーティション設定指示として、前記削除される領域サイズ分の領域を前記複数のキャッシュパーティション領域のうちの他のキャッシュパーティション領域に追加することの意味である追加意味を含んだ指示を作成する、
請求項8記載のデータベース管理システム。 - 前記設定処理部は、前記他のキャッシュパーティション領域として、最もバッファヒット率の低いデータベースバッファに対応付けられているキャッシュパーティション領域を、前記パーティション設定指示において指定する、
請求項9記載のデータベース管理システム。 - バッファヒット率が所定閾値未満である二以上のデータベースバッファにそれぞれ対応付けられた二以上のキャッシュパーティション領域の各々が、前記他のキャッシュパーティション領域であり、
前記設定処理部は、前記二以上のデータベースバッファの各々のバッファヒット率を基に、前記二以上のキャッシュパーティション領域の各々に対応した割当て比率を決定し、前記追加意味として、各他のキャッシュパーティション領域について、前記削除される領域サイズ分の領域のうちの前記決定した割当て比率分の領域を追加することの意味を含める、
請求項9記載のデータベース管理システム。 - 前記設定処理部は、バッファヒット率が低いデータベースバッファに対応付けられているキャッシュパーティション領域の前記割当て比率を、バッファヒット率が高いデータベースバッファに対応付けられているキャッシュパーティション領域の前記割当て比率よりも高い比率にする、
請求項11記載のデータベース管理システム。 - ストレージシステムとホストコンピュータとを備えたコンピュータシステムにおいて、
前記ストレージシステムが、複数の記憶装置と、キャッシュメモリと、制御部とを有し、前記制御部が、前記キャッシュメモリを論理的に分割することで得られた複数のキャッシュパーティション領域が用意されている場合、前記ホストコンピュータから、前記複数の記憶装置のうちの或る記憶装置を指定したアクセスコマンドを受信したならば、前記複数のキャッシュパーティション領域のうちの該或る記憶装置が割当てられたキャッシュパーティション領域に、該アクセスコマンドでのアクセス対象となるデータを一時的に記憶させるよう構成されており、
前記ホストコンピュータが、データベース管理システムを有し、
前記データベース管理システムが、
各データベースバッファに関するサイズを基に、該各データベースバッファに対応付ける各キャッシュパーティション領域に関するサイズを決定し、決定したサイズで該各キャッシュパーティション領域に関する設定を行うことのパーティション設定指示を作成する設定処理部と、
前記作成されたパーティション設定指示を送信する指示送信部と
を備え、
前記ストレージシステムの前記制御部が、前記指示送信部から送信されたパーティション設定指示を受信し、該パーティション設定指示に従って、前記キャッシュメモリを論理的に分割することで複数のキャッシュパーティション領域を用意し、該複数のキャッシュパーティション領域の各々に前記複数の記憶装置のいずれかを割当てる、
コンピュータシステム。 - 前記各データベースバッファに関するサイズとは、該各データベースバッファについて、データベースバッファを構成する記憶領域でありアクセス単位であるページのサイズと、該各データベースバッファについて、データベースバッファそれ自体のサイズであるバッファサイズとの両方であり、
前記各キャッシュパーティション領域に関するサイズとは、該各キャッシュパーティション領域について、キャッシュパーティション領域を構成する記憶領域でありアクセス単位であるセグメントのサイズと、キャッシュパーティション領域それ自体のサイズであるパーティションサイズとの両方であり、
前記設定処理部は、前記各キャッシュパーティション領域のセグメントサイズを、該各キャッシュパーティション領域に対応付けられる各データベースバッファのページサイズと同じサイズに決定し、且つ、初期設定の際であれば、前記各キャッシュパーティション領域のパーティションサイズを、該各キャッシュパーティション領域に対応付けられる各データベースバッファのバッファサイズと同じサイズに決定する、
請求項13記載のコンピュータシステム。 - 前記ストレージシステムの前記制御部は、前記パーティション設定指示を受信した場合、該パーティション設定指示で指定されている複数のパーティションサイズの合計よりも前記キャッシュメモリにおける空き領域サイズが少ない場合には、前記複数のパーティションサイズの合計が前記空き領域サイズ以下になるようキャッシュパーティション領域の数及びサイズのうちの少なくとも一方を調整し、調整後の数及び/又はサイズで二以上のキャッシュパーティション領域を用意する、
請求項14記載のコンピュータシステム。 - 前記データベース管理システムで管理される複数のデータベース領域に前記複数のデータベースバッファがそれぞれ対応付けられており、前記データベース管理システムが、各データベース領域へのアクセスを実行するアクセス制御部を更に備え、該アクセス制御部は、或るデータベース領域へのアクセスを実行する場合、該或るデータベース領域に対応したデータベースバッファである当該データベースバッファでバッファヒットした場合には、バッファヒットで確保された領域にアクセスし、バッファヒットしなった場合に、前記当該データベースバッファに対応付けられたキャッシュパーティション領域に割当てられている記憶装置を指定したアクセスコマンドが前記ホストコンピュータから前記ストレージシステムに送信され、前記ストレージシステムが、該アクセスコマンドに従うデータを、該アクセスコマンドで指定されている記憶装置が割当てられたキャッシュパーティション領域の、キャッシュヒットにより確保された領域に一時格納するようになっており、
前記アクセス制御部が、各データベースバッファについて、データベースバッファへのアクセス回数のうちのバッファヒットした回数を表すバッファヒット率を算出し、
前記設定処理部が、各データベースバッファの前記算出されたバッファヒット率に基づいて、前記パーティション設定指示として、前記複数のキャッシュパーティション領域のうちの少なくとも一つに関するサイズの設定変更を意味する指示を作成し、
前記ストレージシステムの前記制御部が、前記パーティション設定指示に従って、前記複数のキャッシュパーティション領域のうちの少なくとも一つに関するサイズの設定変更を行う、
請求項14記載のコンピュータシステム。 - 前記ストレージシステムの前記制御部は、前記設定変更として、バッファヒット率が所定閾値以上のデータベースバッファに対応付けられたキャッシュパーティション領域の全部又は一部を前記キャッシュメモリから削除する、
請求項16記載のコンピュータシステム。 - 前記ストレージシステムの前記制御部は、前記設定変更として、前記削除された領域サイズ分の領域を前記複数のキャッシュパーティション領域のうちの他のキャッシュパーティション領域に追加する、
請求項17記載のコンピュータシステム。 - データベース管理システムが、各データベースバッファに関するサイズを基に、該各データベースバッファに対応付ける各キャッシュパーティション領域に関するサイズを決定し、
データベース管理システムが、決定したサイズで該各キャッシュパーティション領域に関する設定を行うことのパーティション設定指示を作成し、
データベース管理システムが、前記作成されたパーティション設定指示を送信し、
ストレージシステムが、前記パーティション設定指示を受信し、該パーティション設定指示に従って、前記キャッシュメモリを論理的に分割することで複数のキャッシュパーティション領域を用意し、該複数のキャッシュパーティション領域の各々に前記複数の記憶装置のいずれかを割当てる、
キャッシュ論理分割方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007012995A JP2008181243A (ja) | 2007-01-23 | 2007-01-23 | ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム |
US11/970,602 US20080177975A1 (en) | 2007-01-23 | 2008-01-08 | Database management system for controlling setting of cache partition area in storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007012995A JP2008181243A (ja) | 2007-01-23 | 2007-01-23 | ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008181243A true JP2008181243A (ja) | 2008-08-07 |
Family
ID=39642399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007012995A Withdrawn JP2008181243A (ja) | 2007-01-23 | 2007-01-23 | ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080177975A1 (ja) |
JP (1) | JP2008181243A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015170160A (ja) * | 2014-03-07 | 2015-09-28 | 富士通株式会社 | 情報処理システム,情報処理装置,情報処理プログラム及び情報処理方法 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4839706B2 (ja) * | 2005-07-12 | 2011-12-21 | 株式会社日立製作所 | データベース管理システムのインデックス運用方法 |
US8468510B1 (en) | 2008-01-16 | 2013-06-18 | Xilinx, Inc. | Optimization of cache architecture generated from a high-level language description |
US8473904B1 (en) | 2008-01-16 | 2013-06-25 | Xilinx, Inc. | Generation of cache architecture from a high-level language description |
JP5187017B2 (ja) * | 2008-06-18 | 2013-04-24 | 富士通株式会社 | 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法 |
WO2010002407A1 (en) * | 2008-07-02 | 2010-01-07 | Hewlett-Packard Development Company, L.P. | Performing administrative tasks associated with a network-attached storage system at a client |
US9378003B1 (en) * | 2009-07-23 | 2016-06-28 | Xilinx, Inc. | Compiler directed cache coherence for many caches generated from high-level language source code |
US8386431B2 (en) * | 2010-06-14 | 2013-02-26 | Sap Ag | Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor |
JP2012133416A (ja) * | 2010-12-17 | 2012-07-12 | Toshiba Corp | メモリシステム |
US10102242B2 (en) * | 2010-12-21 | 2018-10-16 | Sybase, Inc. | Bulk initial download of mobile databases |
US10311105B2 (en) * | 2010-12-28 | 2019-06-04 | Microsoft Technology Licensing, Llc | Filtering queried data on data stores |
KR20120082218A (ko) * | 2011-01-13 | 2012-07-23 | (주)인디링스 | 파티션 정보를 기초로 호스트의 요청에 대한 처리 기법을 적응적으로 결정하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US8990166B2 (en) * | 2011-03-25 | 2015-03-24 | Sap Se | Variable page sizing for improved physical clustering |
CN102508619B (zh) * | 2011-11-21 | 2014-09-17 | 华为数字技术(成都)有限公司 | 存储系统服务质量控制方法、系统和存储系统 |
US20140058717A1 (en) * | 2012-08-24 | 2014-02-27 | Hitachi, Ltd. | Simulation system for simulating i/o performance of volume and simulation method |
US9098417B2 (en) * | 2012-12-13 | 2015-08-04 | Advanced Micro Devices, Inc. | Partitioning caches for sub-entities in computing devices |
CN103473321A (zh) * | 2013-09-12 | 2013-12-25 | 华为技术有限公司 | 数据库管理方法与系统 |
US9323669B1 (en) * | 2013-12-31 | 2016-04-26 | Emc Corporation | System, apparatus, and method of initializing cache |
US11138537B2 (en) * | 2014-09-17 | 2021-10-05 | International Business Machines Corporation | Data volume-based server hardware sizing using edge case analysis |
US20170031601A1 (en) * | 2015-07-30 | 2017-02-02 | Kabushiki Kaisha Toshiba | Memory system and storage system |
US9984004B1 (en) * | 2016-07-19 | 2018-05-29 | Nutanix, Inc. | Dynamic cache balancing |
US10324955B2 (en) * | 2016-09-30 | 2019-06-18 | International Business Machines Corporation | Inter-table parallel refresh maximizer |
IL256651B (en) * | 2017-12-28 | 2018-07-31 | Cyberbit Ltd | Database throttling system and method |
US20190303476A1 (en) * | 2018-03-30 | 2019-10-03 | Ca, Inc. | Dynamic buffer pools for process non-conforming tasks |
US11527265B2 (en) | 2018-11-02 | 2022-12-13 | BriefCam Ltd. | Method and system for automatic object-aware video or audio redaction |
CN112764664B (zh) * | 2019-10-21 | 2024-08-16 | 深圳市茁壮网络股份有限公司 | 一种磁盘缓存方法及装置 |
JP2022034217A (ja) * | 2020-08-18 | 2022-03-03 | 富士通株式会社 | 情報処理装置およびキャッシュ制御プログラム |
US20220075771A1 (en) * | 2020-09-08 | 2022-03-10 | International Business Machines Corporation | Dynamically deploying execution nodes using system throughput |
CN112417350B (zh) * | 2020-09-17 | 2023-03-24 | 上海哔哩哔哩科技有限公司 | 数据存储调整方法、装置及计算机设备 |
US11971815B2 (en) * | 2021-08-31 | 2024-04-30 | Micron Technology, Inc. | Write budget control of time-shift buffer for streaming devices |
US20230143926A1 (en) * | 2021-11-08 | 2023-05-11 | Western Digital Technologies, Inc. | Dynamic Controller Buffer Management and Configuration |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434992A (en) * | 1992-09-04 | 1995-07-18 | International Business Machines Corporation | Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace |
JP4313068B2 (ja) * | 2003-03-28 | 2009-08-12 | 株式会社日立製作所 | 記憶装置のキャッシュ管理方法 |
JP4631301B2 (ja) * | 2004-03-31 | 2011-02-16 | 株式会社日立製作所 | 記憶装置のキャッシュ管理方法 |
US20060136525A1 (en) * | 2004-12-21 | 2006-06-22 | Jens-Peter Akelbein | Method, computer program product and mass storage device for dynamically managing a mass storage device |
KR100684942B1 (ko) * | 2005-02-07 | 2007-02-20 | 삼성전자주식회사 | 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템 |
JP4819369B2 (ja) * | 2005-02-15 | 2011-11-24 | 株式会社日立製作所 | ストレージシステム |
-
2007
- 2007-01-23 JP JP2007012995A patent/JP2008181243A/ja not_active Withdrawn
-
2008
- 2008-01-08 US US11/970,602 patent/US20080177975A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015170160A (ja) * | 2014-03-07 | 2015-09-28 | 富士通株式会社 | 情報処理システム,情報処理装置,情報処理プログラム及び情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080177975A1 (en) | 2008-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008181243A (ja) | ストレージシステムのキャッシュパーティション領域の設定を制御するデータベース管理システム | |
JP4313068B2 (ja) | 記憶装置のキャッシュ管理方法 | |
US7769952B2 (en) | Storage system for controlling disk cache | |
JP4631301B2 (ja) | 記憶装置のキャッシュ管理方法 | |
JP5944587B2 (ja) | 計算機システム及び制御方法 | |
US9176881B2 (en) | Computer system and storage control method | |
JP4990828B2 (ja) | ストレージ装置及びこれの制御方法 | |
US20130332693A1 (en) | Allocating storage memory based on future file size or use estimates | |
JP6106028B2 (ja) | サーバ及びキャッシュ制御方法 | |
JP2003345514A (ja) | 計算機システム | |
US9104317B2 (en) | Computer system and method of controlling I/O with respect to storage apparatus | |
JP5999536B2 (ja) | 計算機及びデータ読み出し方法 | |
WO2017126003A1 (ja) | 複数種類のメモリデバイスを含む計算機システム及び方法 | |
JP6171084B2 (ja) | ストレージシステム | |
US9864688B1 (en) | Discarding cached data before cache flush | |
US10534556B2 (en) | Techniques for scavenging of free provisioned blocks | |
US12008241B2 (en) | Techniques for collecting and utilizing activity metrics | |
US11709839B2 (en) | Database system and query execution method | |
JP6928247B2 (ja) | ストレージ制御装置およびストレージ制御プログラム | |
US11782842B1 (en) | Techniques for reclaiming dirty cache pages | |
US12093187B1 (en) | Read I/O processing techniques using remote mapping resolution with logical address space slicing | |
US20050216615A1 (en) | Input/output device, computer, computer system, input/output control program, OS, page management program, and page management method | |
US20240176741A1 (en) | Caching techniques using a two-level read cache | |
US20240319876A1 (en) | Caching techniques using a unified cache of metadata leaf objects with mixed pointer types and lazy content resolution | |
US20230214115A1 (en) | Techniques for data storage management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091210 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110711 |