JP2016184272A - データベース管理システム、そのバッファリング方法およびコンピュータ・プログラム - Google Patents

データベース管理システム、そのバッファリング方法およびコンピュータ・プログラム Download PDF

Info

Publication number
JP2016184272A
JP2016184272A JP2015063946A JP2015063946A JP2016184272A JP 2016184272 A JP2016184272 A JP 2016184272A JP 2015063946 A JP2015063946 A JP 2015063946A JP 2015063946 A JP2015063946 A JP 2015063946A JP 2016184272 A JP2016184272 A JP 2016184272A
Authority
JP
Japan
Prior art keywords
data
memory
database
storage unit
management system
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.)
Pending
Application number
JP2015063946A
Other languages
English (en)
Inventor
輝聖 川畠
Terumasa Kawahata
輝聖 川畠
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2015063946A priority Critical patent/JP2016184272A/ja
Publication of JP2016184272A publication Critical patent/JP2016184272A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 稼働直後におけるディスクI/Oによるボトルネックを解消するデータベース管理システム等を提供する。【解決手段】 データベース管理システム100は、不揮発性記録媒体に格納されたデータベースのデータを格納するメモリデータ格納部130と、データベースの起動時に、データベースの稼働情報に関する統計情報を基に特定されたデータに対する優先順位を決定し、その優先順位が所定の順位よりも高いデータを、不揮発性記録媒体140からメモリデータ格納部130に読み込むように制御し、さらに、データのメモリデータ格納部130への読み込み状態を管理する制御部110とを含む。【選択図】 図1

Description

本発明は、データベース管理システムおよびそのバッファリング方法に関する。
近年の半導体技術の進歩により、コンピュータシステムのメモリに格納可能なデータ量が、飛躍的に増大している。メモリのデータ容量の増大を利用して、ハードディスクなどのストレージ内のデータベースのデータを全てメモリに格納することにより、ストレージのI/O(Input/Output)負荷を削減し性能を向上させるインメモリデータベース管理システムが登場している。
インメモリデータベース管理システムは、格納しているデータをメモリに保有することによりハードディスクなどに代表されるストレージのI/O負荷を削減し、また、データベースの演算処理性能を向上させている。しかしながら、例えば、セキュリティパッチを適用時にOSを再起動した場合、データベース管理システムを再起動する必要がある。また、サーバを冗長化させたクラスタリングシステムにおいて主系のシステムに故障が発生したためにフェイルオーバを行う場合にもデータベース管理システムを再起動する必要がある。データベース管理システムを再起動した場合に、データベース全体のデータをハードディスクなどのストレージからメモリに再度読み込むことが必要となる。メモリにデータを読み込んでいる途中で、メモリに存在しないデータ(まだメモリに読み込んでいないデータ)に対して演算処理が発行されると、そのデータベースは、インメモリデータベースの特性が生かされず、期待される性能を発揮できない。
例えば、2014年現在では1台のサーバに4テラバイトのメモリを搭載可能なコンピュータがある。仮に、4テラバイトのメモリ容量を有するデータベースにおいて、1秒間に400メガバイトのデータを読み込むとすると、ストレージからメモリへ読み込むために約1万秒の時間が必要となる。つまり、メモリへの読み込みを開始してから約3時間は、演算処理で使用するデータがメモリに格納されていない可能性がある。
この間に、メモリに格納されていないデータへのクエリが複数参照された場合、ストレージ内のテーブルデータを読み込む処理は、各々のクエリにより、並列に実行されることになる。そのため、ランダムアクセス性能が高くないハードディスクを利用する場合、起動直後のデータベース管理システムの性能は、さらに劣化することになってしまう。
ここで、関連技術としては、例えば以下の特許文献がある。
特許文献1は、データベース管理システムの起動時に、情報処理装置に対するユーザの用途に応じたデータをキャッシュに読み込むデータベース管理システムを開示している。
特許文献2は、あるデータファイルに対する検索の後に、次に検索されるデータファイルを示す情報を基に、あるデータファイルに対する検索が行われた時点で、次に検索されると予想されるデータファイルをキャッシュに読み出すデータベース検索システムを開示している。
特許文献3および特許文献4は、クエリを実行するためにデータベース管理システムがデータベース(DB)のデータにアクセスする場合、DBへアクセス要求を発行する前に、クエリの実行時にアクセスするDBのデータを予測し、そのデータをキャッシュに読み出すデータベース管理システムを開示している。
特開2005−267232号公報 特開2004−310630号公報 特開2005−258735号公報 特開2003−150419号公報
しかしながら、特許文献1乃至4に提案されている技術は、データベースに格納されているデータのうちで、一部の特定されるデータをキャッシュに読み込むことを目的としており、すべてのデータをメモリに読み込むことについては、考慮していない。
そこで、本発明は、稼働直後におけるディスクI/Oによるボトルネックを解消するデータベース管理システム等の提供を主たる目的とする。
上記の目的を達成すべく、本発明の一態様に係るデータベース管理システムは、以下の構成を備える。
即ち、本発明の一態様に係るデータベース管理システムは、
不揮発性記録媒体に格納されたデータベースのデータを格納するメモリデータ格納部と、
前記データベースの起動時に、前記データベースの稼働情報に関する統計情報を基に特定された前記データに対する優先順位を決定し、その優先順位が所定の順位よりも高い前記データを、前記不揮発性記録媒体から前記メモリデータ格納部に読み込むように制御し、さらに、前記データの前記メモリデータ格納部への読み込み状態を管理する制御部と
を備える。
同目的を達成する本発明の一態様に係るバッファリング方法は、
不揮発性記録媒体に格納されたデータベースのデータを格納するメモリデータ格納部へのバッファリング方法であって、
前記データベースの起動時に、前記データベースの稼働情報に関する統計情報を基に特定された前記データに対する優先順位を決定し、その優先順位が所定の順位よりも高い前記データを、前記不揮発性記録媒体から前記メモリデータ格納部に読み込むように制御し、さらに、前記データの前記メモリデータ格納部への読み込み状態を管理する。
更に、同目的は、上記構成を有するデータベース管理システム、或いは、バッファリング方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
上記の本発明によれば、データベース管理システムの稼働直後におけるディスクI/Oによるボトルネックを解消することができるという効果がある。
本発明の第1の実施形態に係るデータベース管理システムの構成を示すブロック図である。 本発明の第2の実施形態に係るデータベース管理システムの構成を示すブロック図である。 本発明の第2の実施形態に係るデータベース管理システムが管理するテーブルを説明する図である。 本発明の第2の実施形態に係る統計情報の一例を説明する図である。 本発明の第2の実施形態に係るメモリ情報の一例を説明する図である。 本発明の第2の実施形態に係るメモリデータ格納部にデータを読み込む処理を示すフローチャートである。 本発明の第2の実施形態に係る統計情報の一例を説明する図である。 本発明の第3の実施形態に係るメモリデータ格納部にデータを読み込む処理を示すフローチャートである。 本発明の第4の実施形態に係るデータベース管理システムの構成を示すブロック図である。 本発明の第4の実施形態に係るメモリデータ格納部にデータを読み込む処理を示すフローチャートである。 本発明の第4の実施形態に係る優先度情報の一例を説明する図である。 本発明の第1乃至4の実施形態を実現可能なコンピュータ(情報処理装置)のハードウェア構成を例示的に説明する図である。
次に、本発明を実施する形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係るデータベース管理システムの構成を示すブロック図である。
本実施形態に係るデータベース管理システム100は、制御部110と、メモリデータ格納部130とを有する。
メモリデータ格納部130は、不揮発性記録媒体140に格納されたデータベースのデータを格納する。
制御部110は、データベースの起動時に、データベースの稼働情報に関する統計情報を基に特定されたデータに対する優先順位を決定する。そして、制御部110は、その優先順位が所定の順位よりも高いデータを、制御部110が不揮発性記録媒体140からメモリデータ格納部130に読み込む(ロードする)ように制御し、そのデータのメモリデータ格納部130への読み込み(ロード)状態を管理する。
以上、説明したように、第1の実施形態には、データベース管理システムの稼働直後におけるディスクI/Oによるボトルネックを解消することができるという効果がある。
その理由は、データベース管理システム100においてデータベースの稼働情報に関する統計情報を基に決定した優先順位が高いデータから優先してメモリデータ格納部130に読み込むことにより、データベース管理システム100が受け付けた問い合わせを処理するために必要なデータがメモリに存在する可能性が高まるからである。
<第2の実施形態>
次に上述した第1の実施形態に係るデータベース管理システム100を基本とする第2の実施形態について説明する。図2は、本発明の第2の実施形態に係るデータベース管理システムの構成を示すブロック図である。ただし、図2に示す構成は、一例であって、本発明は、図2に示すデータベース管理システム2に限定されない。
図2を参照すると、本実施形態は、データベースクライアント1と、データベース管理システム2とを含む。本実施形態におけるデータベース管理システム2は、1台の情報処理装置としているが、これに限らず、分散データベース管理システムのように複数の情報処理装置から構成されるデータベース管理システムでもよい。また、データベースクライアント1とデータベース管理システム2は、ネットワークによって接続されていても、同一情報処理装置であっても構わない。
データベース管理システム2は、解析部21と、計画部22と、実行部23と、メモリデータ格納部24と、ストレージデータ格納部25とを備えている。解析部21と、計画部22と、実行部23とは、第1の実施形態の制御部110の一例である。ストレージデータ格納部25は、第1の実施形態の不揮発性記録媒体140の一例である。データベース管理システム2は、データベースクライアント1から問い合わせ(クエリ)を受ける。そして、データベース管理システム2は、問い合わせの内容に応じて、データの挿入や検索、更新を行った結果をデータベースクライアント1に返却する。
データベース管理システム2は、データベースクライアント1から、ユーザが必要とするテーブルを使用可能とするために、データベースのスキーマ定義を作成するように指示を受ける。スキーマ定義は、一般的に、SQL言語によって行われる場合が多いが、その手法は、限定されない。このスキーマ定義情報は、解析部21、計画部22および実行部23を経由して表定義情報2411に格納されている。
解析部21は、データベースクライアント1から発行されたSQL(Structured Query Language)などの問い合わせ言語の内容を確認し、その内容について構文解析を実行する。
計画部22は、解析部21により解析した問い合わせの内容を、どのような順番や方法で実行すれば最も効率的であるかを判定し、その実行計画を作成する。
なお、データベースクライアント1からのクエリが、SQL言語ではなく、API(Application Programming Interface)等による実行部23へのデータ操作命令である場合、そのクエリは、解析部21ではなく、実行部23に入力される。
実行部23は、計画部22で作成した実行計画によるデータ操作命令、またはデータベースクライアント1から入力されたデータ操作命令を受けて、メモリデータ格納部24の管理情報241やユーザ情報242に向けてクエリを実行する。実行部23は、一般に、データベースのエグゼキュータと言われる部分に相当する。
実行部23は、管理部231を有する。管理部231は、ストレージデータ格納部25からメモリデータ格納部24へのデータの読み込み状態を管理する。すなわち、管理部231は、メモリデータ格納部24へのデータの読み込みや、メモリデータ格納部24からのデータの読み出し、メモリデータ格納部24に格納されたデータの入替などを制御する。データベース管理システム2の起動時に、管理部231は、ストレージデータ格納部25に格納されたデータのうちで、起動直後に利用される可能性の高いデータから順番に、メモリデータ格納部24に読み込むように制御する。
メモリデータ格納部24は、データベース管理システム2が利用するメモリ領域またはメモリデバイスである。メモリデータ格納部24は、管理情報241と、ユーザ情報242とを含む。
管理情報241は、表定義情報2411と、統計情報2412と、メモリ情報2413とを含む。表定義情報2411は、リレーショナルデータモデルでの表(テーブル)やインデックスなどの定義や、それらのデータがどのデバイスのどの位置に格納されているかという、データベースにおいて一般的に保持される情報である。これは、一般的にシステム表やシステムカタログなどと呼ばれる。統計情報2412は、ある特定の期間のデータベースの稼働情報の統計情報であり、データベースの使用状況を示す情報である。統計情報2412は、例えば、テーブルのデータ量やアクセス回数、レコード件数やレコード長などのデータベースに関する情報が含まれる。これは、一般的なリレーショナルデータベースにおいて収集される情報である。メモリ情報2413は、表定義情報2411で定義されたテーブルのデータが、ストレージデータ格納部25からテーブルデータ2421に読み込まれているか否かを示す情報である。
ユーザ情報242は、テーブルデータ2421と、一時情報2422とを含む。テーブルデータ2421は、表定義情報2411に基づいたデータベースの実データやインデックスデータである。一時情報2422は、クエリを実行する際に一時的に発生するデータである。一時情報2422は、例えば、複数のステップからなるクエリを実行したときに、途中のステップを実行した結果を表すデータである。
ストレージデータ格納部25は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性の特性を持つ外部記憶装置である。ストレージデータ格納部25は、管理情報251と、テーブルデータ252とを含む。管理情報251は、表定義情報2511と、統計情報2512と、メモリ情報2513とを含む。
これにより、データベース管理システム2は、データベース管理システム2の停止などにより、メモリデータ格納部24に格納された情報がなくなった場合にも、データを失うことがない。データベース管理システム2を再起動した場合、前述したように、ストレージデータ格納部25に格納されたデータは、メモリデータ格納部24へ読み込まれる。これにより、データベース管理システム2は、クエリの実行に必要なメモリデータ格納部24内のデータを、停止する前と同様の状態にして稼働することが可能になる。データベース管理システム2は、メモリデータ格納部24内のデータを使用することにより動作し、例えば、チェックポイントで、そのデータをストレージデータ格納部25に格納する。
図3は、本発明の第2の実施形態に係るデータベース管理システムが管理するテーブルを説明する図である。図3に示すように、データベース管理システム2は、顧客マスタテーブル、商品カテゴリテーブル、商品マスタテーブル、店舗マスタテーブルおよび担当者マスタテーブルという各種マスタテーブルと、2014年1月〜2015年1月までの月ごとの売上テーブルとを含む。具体的には、顧客マスタテーブルは、格納平均レコード長が約200byteのレコードを1千万件保有している。商品カテゴリテーブルは、格納平均レコード長が約50Byteのレコードを2000件保有している。商品マスタテーブルは、格納平均レコード長が250byteのレコードを500万件保有している。店舗マスタテーブルは、格納平均レコード長が400byteのレコードを2000件保有している。担当者マスタテーブルは、格納平均レコード長が400byteのレコードを5000件保有している。これらのテーブルは、いわゆるDWH(Data Ware House)でのスタースキーマをイメージしている。
図4は、本発明の第2の実施形態に係る統計情報の一例を説明する図である。図4によれば、統計情報2412は、テーブル名と、アクセス回数と、テーブルサイズとを含む。すなわち、テーブル名と、アクセス回数と、テーブルサイズとは、統計情報2412において、図4に概念的に示すテーブルの如く関連付けされていることとする。テーブル名は、テーブルを一意に識別可能な値である。アクセス回数は、テーブルに対してアクセスした回数である。テーブルサイズは、テーブルのデータサイズを表す値である。
図5は、本発明の第2の実施形態に係るメモリ情報の一例を説明する図である。メモリ情報2413は、テーブル名と、メモリ読み込み状態とを含む。すなわち、テーブル名と、メモリ読み込み状態とは、メモリ情報2413において、図5に概念的に示すテーブルの如く関連付けされていることとする。テーブル名は、テーブルを一意に識別可能な値である。メモリ読み込み状態は、ストレージデータ格納部25のテーブルデータ252の、メモリデータ格納部24のテーブルデータ2421への読み込みがどのような状態になっているかを示す値が設定される。すなわち、メモリ読み込み状態は、読み込み済の場合に「読み込み済」を、まだ読み込んでいない場合に「未読み込み」を、または、クエリの実行に必要なため読み込んでいる場合に「クエリ対応で読み込み中」を示す値が設定される。
図6を用いて、データベース管理システム2が起動直後にメモリデータ格納部24にデータを読み込む処理の流れを説明する。図6は、本発明の第2の実施形態に係るメモリデータ格納部にデータを読み込む処理を示すフローチャートである。
起動後、実行部23は、管理部231を経由して、ストレージデータ格納部25から、管理情報251を読み出す(ステップS110)。そして、実行部23は、読み出した管理情報251を、メモリデータ格納部24に格納する(ステップS120)。すなわち、実行部23は、ストレージデータ格納部25から管理情報251をメモリデータ格納部24に読み込む。これによって、表定義情報2511は、表定義情報2411に、統計情報2512は、統計情報2412に、メモリ情報2513は、メモリ情報2413に反映される。すなわち、データベース管理システム2は、いわゆるデータベースのスキーマ情報を取得する。この時点で、データベース管理システム2は、データベースクライアント1からのクエリを受け付けることが可能になる。
これ以降、クエリが発行されて必要となるテーブルがユーザ情報242に存在しない場合、実行部23は、管理部231を経由して、ステップS130以降で説明するテーブルデータ252をメモリデータ格納部24へ読み込む処理とは別に(読み込む処理と並行して)、ストレージデータ格納部25から、そのテーブルのデータを読み出す。この場合、管理部231は、該当のテーブルデータの読み込みを開始したことをメモリ情報2413に記録する。すなわち、管理部231は、該当のテーブルに対応するメモリ読み込み状態に、「クエリ対応で読み込み中」を示す値を設定する。
実行部23は、管理部231を経由して、メモリ情報2413のメモリ読み込み状態が「未読み込み」で、統計情報2412のアクセス回数が一番多いテーブル名を有するストレージデータ格納部25のテーブルデータ252を読み出す(ステップS130)。例えば、メモリ情報2413が図5、統計情報2412が図4に示す内容である場合、メモリ情報2413のメモリ読み込み状態が「未読み込み」であるテーブルのうち、統計情報2412のアクセス回数が一番多いテーブルは、商品カテゴリテーブルである。よって、実行部23は、商品カテゴリテーブルを読み出す。
そして、実行部23は、読み出したテーブルデータ252を、メモリデータ格納部24のテーブルデータ2421に格納する(ステップS140)。データを格納後、管理部231は、メモリ情報2413の該当するテーブルに対応するメモリ読み込み状態を、「読み込み済」を示す値に更新する。データを読み込む単位は、テーブルが挙げられるが、例えば、カラムストア型データモデルを採用している場合、列であることも可能であり、固定されるものではない。また、データを読み込む対象となるテーブルは、ユーザが作成したテーブルに限らず、インデックスなどのようにユーザがデータの格納を指示することがないテーブルも含まれる。
すべてのデータの読み込みが完了するまで(ステップS150にて「Yes」)、すなわち、メモリ情報2413のメモリ読み込み状態が「未読み込み」であるテーブルがなくなるまで、実行部23は、ステップS130からステップS150までの処理を繰り返す。
また、管理部231は、メモリ読み込み状態を「クエリ対応で読み込み中」と設定したテーブルについても、読み込みが完了したら、「読み込み済」と設定する。
ここまでは、管理部231が、統計情報2412のアクセス回数を基に、データを読み込む順番を決定する方式について説明した。しかし、順番の決定に用いるデータは、アクセス回数に限定されない。
例えば、読み込みにかかる時間を考えると、実行部23は、単にアクセス回数が多いデータを読み込むよりも、サイズあたりのアクセス回数が多いデータを優先して読み込んだほうが効率が良い。そこで、管理部231は、統計情報2412に含まれるアクセス回数をテーブルサイズで割った値を求め、求めた値(ここでは参照密度と呼ぶ)が高いデータを優先して読み込むように制御してもよい。
図7は、本発明の第2の実施形態に係る統計情報の一例を説明する図である。図7は、図4に示した統計情報2412に、参照密度を追加したものである。図7に示すように、参照密度は、テーブルごとに、アクセス回数をテーブルサイズで割ることにより求めた値である。管理部231は、図6のS130において、アクセス回数が多いデータの代わりに、参照密度が高いデータを優先して読み込む。
参照密度を用いた場合、テーブルサイズに対してアクセス回数が多いデータが優先してメモリデータ格納部24に読み込まれるようになり、読み込みが効率的に行われる。ただし、メモリデータ格納部24に読み込みデータ量が大きいものが格納されているほうが性能への効果がより発揮されるため、一概に小さいテーブルを優先させるのが正しいとは限らない。これについては、データベースの利用特性に合わせて選択をすればよい。
本実施形態は、テーブルデータ252のすべてのデータをメモリデータ格納部24に格納しているが、通常のデータベースのキャッシュとして一部のテーブルデータを格納してもよい。
以上、説明したように、第2の実施形態には、データベース管理システムの稼働直後におけるディスクI/Oによるボトルネックを解消することができるという効果がある。
その理由は、データベース管理システム2においてデータベースの稼働情報に関する統計情報を基に決定した優先順位が高いデータから優先してメモリデータ格納部24に読み込むことにより、データベース管理システム2が受け付けた問い合わせを処理するために必要なデータがメモリに存在する可能性が高まるからである。
<第3の実施形態>
次に上述した第2の実施形態に係るデータベース管理システム2を基本とする第2の実施形態について説明する。
本実施形態の構成は、図2に示した第2の実施形態と同じである。
第3の実施形態は、管理部231がテーブルデータ2421にストレージデータ格納部25からデータを読み込む際に、管理部231は、まず、直近の一定時間(例えば10分間など)にアクセスしたテーブルについて、アクセス回数の多いテーブルから読み込みを行うように制御する。そして、直近の一定時間にアクセスしたテーブルのすべての読み込みが完了した後で、管理部231は、読み込みを行っていないテーブルの中で、改めてアクセス回数の多いテーブルから読み込むように制御する。
図8を用いて、データベース管理システム2が起動直後にメモリデータ格納部24にデータを読み込む処理の流れを説明する。図8は、本発明の第3の実施形態に係るメモリデータ格納部にデータを読み込む処理を示すフローチャートである。
起動後、実行部23は、管理部231を経由して、ストレージデータ格納部25から、管理情報251を読み出す(ステップS210)。そして、実行部23は、読み出した管理情報251を、メモリデータ格納部24に格納する(ステップS220)。すなわち、実行部23は、ストレージデータ格納部25から管理情報251をメモリデータ格納部24に読み込む。これによって、表定義情報2511は、表定義情報2411に、統計情報2512は、統計情報2412に、メモリ情報2513は、メモリ情報2413に反映される。すなわち、データベース管理システム2は、いわゆるデータベースのスキーマ情報を取得する。この時点で、データベース管理システム2は、データベースクライアント1からのクエリを受け付けることが可能になる。
これ以降、クエリが発行されて必要となるテーブルがユーザ情報242に存在しない場合、実行部23は、管理部231を経由して、ステップS230以降で説明するテーブルデータ252をメモリデータ格納部24へ読み込む処理とは別に(読み込む処理と並行して)、ストレージデータ格納部25から、そのテーブルのデータを読み出す。この場合、管理部231は、該当のテーブルデータの読み込みを開始したことをメモリ情報2413に記録する。すなわち、管理部231は、該当のテーブルに対応するメモリ読み込み状態に、「クエリ対応で読み込み中」を示す値を設定する。
管理部231は、直近の一定時間(例えば10分間)にアクセスしたテーブルの一覧を取得する(ステップS230)。すなわち、管理部231は、直近の一定時間の稼働状況に関する統計情報2412を基に、アクセスしたテーブルを求め、そのテーブルの一覧を作成する。
実行部23は、管理部231を経由して、その一覧にあるテーブルのうち、メモリ情報2413のメモリ読み込み状態が「未読み込み」で、統計情報2412のアクセス回数が一番多いテーブル名を有するストレージデータ格納部25のテーブルデータ252を読み出す(ステップS240)。
そして、実行部23は、読み出したテーブルデータ252を、メモリデータ格納部24のテーブルデータ2421に格納する(ステップS250)。データを格納したら、管理部231は、メモリ情報2413の該当するテーブルに対応するメモリ読み込み状態を、「読み込み済」を示す値に更新する。
一覧にあるすべてのテーブルのデータの読み込みが完了するまで(ステップS260にて「Yes」)、すなわち、一覧にあるテーブルに、メモリ情報2413のメモリ読み込み状態が「未読み込み」であるテーブルがなくなるまで、実行部23は、ステップS240からステップS260までの処理を繰り返す。
次に、実行部23は、管理部231を経由して、メモリ情報2413のメモリ読み込み状態が「未読み込み」で、統計情報2412のアクセス回数が一番多いテーブル名を有するストレージデータ格納部25のテーブルデータ252を読み出す(ステップS270)。
そして、実行部23は、読み出したテーブルデータ252を、メモリデータ格納部24のテーブルデータ2421に格納する(ステップS280)。データを格納したら、管理部231は、メモリ情報2413の該当するテーブルに対応するメモリ読み込み状態を、「読み込み済」を示す値に更新する。データを読み込む単位は、まずテーブルが挙げられるが、例えば、カラムストア型データモデルを採用している場合、列であることも可能であり、固定されるものではない。また、データを読み込むテーブルは、ユーザが作成したテーブルに限らず、インデックスなどのようにユーザがデータの格納を指示することがないテーブルも含まれる。
すべてのデータの読み込みが完了するまで(ステップS290にて「Yes」)、すなわち、メモリ情報2413のメモリ読み込み状態が「未読み込み」であるテーブルがなくなるまで、実行部23は、ステップS270からステップS290までの処理を繰り返す。
また、管理部231は、メモリ読み込み状態を「クエリ対応で読み込み中」と設定したテーブルについても、読み込みが完了したら、「読み込み済」と設定する。
ステップS270において、実行部23は、アクセス回数が多いデータから読み込むこととして説明したが、アクセス回数が多いデータから読み込むと限定しない。実行部23は、上述の参照密度を用いてもよいし、統計情報2412を基にした他の値により判定してもよい。
以上、説明したように、第3の実施形態には、データベース管理システムの稼働直後におけるディスクI/Oによるボトルネックを解消することができるという効果がある。
その理由は、データベース管理システム2において、直近で参照されたデータを優先してメモリデータ格納部24に読み込むことにより、データベースクライアント1から発行されるクエリに必要なデータがメモリに存在する可能性が高まるからである。
第3の実施形態は、データベース管理システム2を停止する直前のアクセス状況がデータベース管理システム2の起動直後にアクセスされる傾向と同様である場合、例えばクラスタ構成によるフェイルオーバ直後の場合に、メモリに読み込む効率が高まることが可能となる。
<第4の実施形態>
次に上述した第2の実施形態に係るデータベース管理システムを基本とする第4の実施形態について説明する。
本発明の第4の実施形態の構成について図9を参照して説明する。
本発明の第4の実施形態の構成は、図2に示した第2の実施形態の構成に、優先度情報1414と、優先度情報2514を追加した構成である。
優先度情報2414は、データベース管理システム3が起動直後に読み出すデータの順番を指定している。
図11は、本発明の第4の実施形態に係る優先度情報の一例を説明する図である。図11によれば、優先度情報2414は、優先度と、テーブル名とを含む。すなわち、優先度と、テーブル名とは、優先度情報2414において、図11に概念的に示すテーブルの如く関連付けされていることとする。優先度は、メモリデータ格納部24に優先して読み込むことが必要とされる尺度である。テーブル名は、テーブルを一意に識別可能な値である。優先度情報2414を設定する方法は、限定されない。例えば、ユーザは、データベースクライアント1からクエリを発行して定義を行ってもよいし、データベース管理システム3の開発提供者が汎用的なルールをテンプレート化して提供してもよい。
図10を用いて、データベース管理システム3が起動直後にメモリデータ格納部24にデータを読み込む処理の流れを説明する。図10は、本発明の第4の実施形態に係るメモリデータ格納部にデータを読み込む処理を示すフローチャートである。
起動後、実行部23は、管理部231を経由して、ストレージデータ格納部25から、管理情報251を読み出す(ステップS310)。そして、実行部23は、読み出した管理情報251を、メモリデータ格納部24に格納する(ステップS320)。すなわち、実行部23は、ストレージデータ格納部25から管理情報251をメモリデータ格納部24に読み込む。これによって、表定義情報2511は、表定義情報2411に、統計情報2512は、統計情報2412に、メモリ情報2513は、メモリ情報2413に反映される。すなわち、データベース管理システム3は、いわゆるデータベースのスキーマ情報を取得する。この時点で、データベース管理システム3は、データベースクライアント1からのクエリを受け付けることが可能になる。
これ以降、クエリが発行されて必要となるテーブルがユーザ情報242に存在しない場合、実行部23は、管理部231を経由して、ステップS330以降で説明するテーブルデータ252をメモリデータ格納部24へ読み込む処理とは別に(読み込む処理と並行して)、ストレージデータ格納部25から、そのテーブルのデータを読み出す。この場合、管理部231は、該当のテーブルデータの読み込みを開始したことをメモリ情報2413に記録する。すなわち、管理部231は、該当のテーブルに対応するメモリ読み込み状態に、「クエリ対応で読み込み中」を示す値を設定する。
実行部23は、管理部231を経由して、優先度情報2414にあるテーブルのうち、メモリ情報2413のメモリ読み込み状態が「未読み込み」で、優先度情報2414の優先度が一番高いテーブル名を有するストレージデータ格納部25のテーブルデータ252を読み出す(ステップS330)。
そして、実行部23は、読み出したテーブルデータ252を、メモリデータ格納部24のテーブルデータ2421に格納する(ステップS340)。データを格納したら、管理部231は、メモリ情報2413の該当するテーブルに対応するメモリ読み込み状態を、「読み込み済」を示す値に更新する。
優先度情報2414にあるすべてのテーブルのデータの読み込みが完了するまで(ステップS35にて「Yes」)、すなわち、優先度情報2414にあるテーブルに、メモリ情報2413のメモリ読み込み状態が「未読み込み」であるテーブルがなくなるまで、実行部23は、ステップS330からステップS350までの処理を繰り返す。
実行部23は、管理部231を経由して、メモリ情報2413のメモリ読み込み状態が「未読み込み」で、統計情報2412のアクセス回数が一番多いテーブル名を有するストレージデータ格納部25のテーブルデータ252を読み出す(ステップS360)。
そして、実行部23は、読み出したテーブルデータ252を、メモリデータ格納部24のテーブルデータ2421に格納する(ステップS370)。データを格納したら、管理部231は、メモリ情報2413の該当するテーブルに対応するメモリ読み込み状態を、「読み込み済」を示す値に更新する。データを読み込む単位は、まずテーブルが挙げられるが、例えば、カラムストア型データモデルを採用している場合、列であることも可能であり、固定されるものではない。また、データを読み込むテーブルは、ユーザが作成したテーブルに限らず、インデックスなどのようにユーザがデータの格納を指示することがないテーブルも含まれる。
すべてのデータの読み込みが完了するまで(ステップS380にて「Yes」)、すなわち、メモリ情報2413のメモリ読み込み状態が「未読み込み」であるテーブルがなくなるまで、実行部23は、ステップS360からステップS380までの処理を繰り返す。
また、管理部231は、メモリ読み込み状態を「クエリ対応で読み込み中」と設定したテーブルについても、読み込みが完了したら、「読み込み済」と設定する。
ステップS360において、実行部23は、アクセス回数が多いデータから読み込むこととして説明したが、アクセス回数が多いデータから読み込むと限定しない。実行部23は、上述の参照密度を用いてもよいし、統計情報2412を基にした他の値により判定してもよい。
統計情報は、過去の状態を一定間隔にわたって取得したものであり、今後のデータベースの利用状況とマッチするとは限らない。例えば、毎月10日までに過去一か月の売上情報をもとにレポートが作成され、それ以降は過去のデータがあまり参照されないようなる業務ケースだった場合、11日以降は、過去のアクセス回数などは参考にならない。そのような場合に、図11に示す売上テーブルのように、場合分けして定義することにより、利用効率の高いテーブルが、メモリデータ格納部24に読み込まれるようになる。
以上、説明したように、第4の実施形態には、データベース管理システムの稼働直後におけるディスクI/Oによるボトルネックを解消することができるという効果がある。
その理由は、データベース管理システム3において、あらかじめ指定した優先度が高いデータからメモリデータ格納部24に読み込むことにより、クライアントから発行されるクエリに必要なデータがメモリに存在する可能性が高まるからである。
第4の実施形態は、起動直後のメモリの利用効率が高いテーブルがルール化できる場合には、そのルールを反映した優先度をユーザが定義することにより、データベース管理システム3の利用方法に即した起動直後のメモリへの読み込みが可能となる。
(ハードウェア構成)
上述した実施形態において図1、図2および図9に示した各部は、専用の装置によって実践してもよいが、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。但し、これらの図面に示した各部の実装に際しては、様々な構成が想定され得る。このような場合のハードウェア環境の一例を、図12を参照して説明する。
図12は、本発明の第1乃至4の実施形態を実現可能なコンピュータ(情報処理装置)のハードウェア構成を例示的に説明する図である。即ち、図12は、図1に示したデータベース管理システム100、図2に示したデータベース管理システム2および図9に示したデータベース管理システム3の全体または一部を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
図12に示した情報処理装置9000は、CPU(Central Processing Unit)9001、ディスプレイ9002、通信インタフェース(I/F)9003、ROM(Read Only Memory)9004、RAM(Random Access Memory)9005、ハードディスク装置(HD)9006を備え、これらがバス9007を介して接続された構成を有する。ハードディスク装置(HD)9006には、プログラム群9006Aと、各種の記憶情報9006Bとが格納されている。プログラム群9006Aは、例えば、上述した図1に示したデータベース管理システム100、図2に示したデータベース管理システム2および図9に示したデータベース管理システム3の各ブロック(各部)に対応する機能を実現するためのコンピュータ・プログラムである。各種の記憶情報9006Bは、例えば、図1に示した不揮発性記録媒体140、図2および図9に示したストレージデータ格納部25である。通信インタフェース9003は、ネットワーク9100を介して外部装置と通信を実現する一般的な通信手段である。
そして、情報処理装置9000は、前述の実施形態の説明において参照したブロック図、あるいは、フローチャートの機能を実現可能なコンピュータ・プログラムを、当該ハードウェアのCPU9001が実行する。すなわち、CPU9001は、コンピュータ・プログラムを、図8に示す情報処理装置9000のハードウェア資源を用いて実行することによって本発明の実施形態の機能が達成される。具体的には、データベース管理システム2を、情報処理装置9000によって実現する場合、情報処理装置9000は、図6および図8に示すフローチャートの処理ステップを実行するためのコンピュータ・プログラムをCPU9001が実行すればよい。データベース管理システム3を、情報処理装置9000によって実現する場合、情報処理装置9000は、図10に示すフローチャートの処理ステップを実行するためのコンピュータ・プログラムをCPU9001が実行すればよい。また、情報処理装置9000内に供給されたコンピュータ・プログラムは、読み書き可能なRAM9005、またはハードディスク装置9006等の不揮発性の記憶デバイス(記憶媒体)に格納すればよい。
また、上述の場合において、当該装置内へのコンピュータ・プログラムの供給方法は、CD−ROM等の各種記憶媒体を介して当該装置内にインストールする方法や、インターネット等のネットワーク9100を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明の実施形態は、係るコンピュータ・プログラムを構成するコード或いは、そのコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
1 データベースクライアント
2 データベース管理システム
3 データベース管理システム
21 解析部
22 計画部
23 実行部
24 メモリデータ格納部
25 ストレージデータ格納部
100 データベース管理システム
110 制御部
130 メモリデータ格納部
140 不揮発性記録媒体
231 管理部
241 管理情報
242 ユーザ情報
251 管理情報
252 テーブルデータ
2411 表定義情報
2412 統計情報
2413 メモリ情報
2414 優先度情報
2421 テーブルデータ
2422 一時情報
2511 表定義情報
2512 統計情報
2513 メモリ情報
2514 優先度情報
9000 情報処理装置(コンピュータ)
9001 CPU
9002 ディスプレイ
9003 通信インタフェース(I/F)
9004 ROM
9005 RAM
9006 ハードディスク装置(HD)
9006A プログラム群
9006B 各種の記憶情報
9007 バス
9100 ネットワーク

Claims (8)

  1. 不揮発性記録媒体に格納されたデータベースのデータを格納するメモリデータ格納部と、
    前記データベースの起動時に、前記データベースの稼働情報に関する統計情報を基に特定された前記データに対する優先順位を決定し、その優先順位が所定の順位よりも高い前記データを、前記不揮発性記録媒体から前記メモリデータ格納部に読み込むように制御し、さらに、前記データの前記メモリデータ格納部への読み込み状態を管理する制御部と
    を備える
    データベース管理システム。
  2. 前記制御部は、前記統計情報である前記データへのアクセス回数が多い前記データを優先して、前記メモリデータ格納部に読み込むように制御する
    請求項1記載のデータベース管理システム。
  3. 前記制御部は、前記統計情報である前記データへのアクセス回数を前記データのサイズで割ることにより求めた参照密度が高い前記データを優先して、前記メモリデータ格納部に読み込むように制御する
    請求項1記載のデータベース管理システム。
  4. 前記制御部は、前記統計情報の一部に相当する、収集された時期がある時期から現在までの前記統計情報を基に、前記メモリデータ格納部に読み込むように制御する
    請求項1乃至3の何れか一項に記載のデータベース管理システム。
  5. 前記制御部は、あらかじめ定めた前記データに対する優先度が高いデータを優先して、前記メモリデータ格納部に読み込むように制御する
    請求項1乃至4の何れか一項に記載のデータベース管理システム。
  6. 請求項1乃至5の何れか一項に記載の前記データベース管理システムは、インメモリデータベース管理システムである。
  7. 不揮発性記録媒体に格納されたデータベースのデータを格納するメモリデータ格納部へのバッファリング方法であって、
    前記データベースの起動時に、前記データベースの稼働情報に関する統計情報を基に特定された前記データに対する優先順位を決定し、その優先順位が所定の順位よりも高い前記データを、前記不揮発性記録媒体から前記メモリデータ格納部に読み込むように制御し、さらに、前記データの前記メモリデータ格納部への読み込み状態を管理する
    バッファリング方法。
  8. 不揮発性記録媒体に格納されたデータベースのデータを格納するメモリデータ格納部を備えるコンピュータに、
    前記データベースの起動時に、前記データベースの稼働情報に関する統計情報を基に特定された前記データに対する優先順位を決定し、その優先順位が所定の順位よりも高い前記データを、前記不揮発性記録媒体から前記メモリデータ格納部に読み込むように制御し、さらに、前記データの前記メモリデータ格納部への読み込み状態を管理する制御機能と
    を、実現させる
    コンピュータ・プログラム。
JP2015063946A 2015-03-26 2015-03-26 データベース管理システム、そのバッファリング方法およびコンピュータ・プログラム Pending JP2016184272A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015063946A JP2016184272A (ja) 2015-03-26 2015-03-26 データベース管理システム、そのバッファリング方法およびコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015063946A JP2016184272A (ja) 2015-03-26 2015-03-26 データベース管理システム、そのバッファリング方法およびコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
JP2016184272A true JP2016184272A (ja) 2016-10-20

Family

ID=57241907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015063946A Pending JP2016184272A (ja) 2015-03-26 2015-03-26 データベース管理システム、そのバッファリング方法およびコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP2016184272A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021012441A (ja) * 2019-07-04 2021-02-04 東芝テック株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318813A (ja) * 2000-05-09 2001-11-16 Hitachi Zosen Corp データ管理方法
JP2010039819A (ja) * 2008-08-06 2010-02-18 Hitachi Ltd データベース管理方法、データベース管理装置及びデータベース管理プログラム
JP2010186299A (ja) * 2009-02-12 2010-08-26 Hitachi Software Eng Co Ltd データベース管理システム
WO2012017529A1 (ja) * 2010-08-04 2012-02-09 株式会社日立製作所 データベース管理方法、データベース管理装置及びデータベース管理プログラム
JP2013222457A (ja) * 2012-04-18 2013-10-28 Hitachi Ltd データ位置の管理方法および装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318813A (ja) * 2000-05-09 2001-11-16 Hitachi Zosen Corp データ管理方法
JP2010039819A (ja) * 2008-08-06 2010-02-18 Hitachi Ltd データベース管理方法、データベース管理装置及びデータベース管理プログラム
JP2010186299A (ja) * 2009-02-12 2010-08-26 Hitachi Software Eng Co Ltd データベース管理システム
WO2012017529A1 (ja) * 2010-08-04 2012-02-09 株式会社日立製作所 データベース管理方法、データベース管理装置及びデータベース管理プログラム
JP2013222457A (ja) * 2012-04-18 2013-10-28 Hitachi Ltd データ位置の管理方法および装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021012441A (ja) * 2019-07-04 2021-02-04 東芝テック株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Similar Documents

Publication Publication Date Title
US10754874B2 (en) Query dispatching system and method
US11809408B2 (en) Incremental refresh of a materialized view
JP5798248B2 (ja) 規模変更可能なデータ記憶サービスを実装するためのシステムおよび方法
CN107133234B (zh) 缓存数据更新的方法、装置及系统
CN107004016B (zh) 有效的数据操纵支持
US20240061888A1 (en) Method And System For Identifying, Managing, And Monitoring Data Dependencies
JP6293709B2 (ja) ストレージシステムおよびストレージシステム用プログラム
JP5719083B2 (ja) データベース装置、プログラムおよびデータ処理方法
US11429311B1 (en) Method and system for managing requests in a distributed system
US20220342888A1 (en) Object tagging
US20170270149A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
CN116089414B (zh) 基于海量数据场景的时序数据库写入性能优化方法及装置
CN116775646A (zh) 数据库的数据管理方法、装置、计算机设备及存储介质
JP2016184272A (ja) データベース管理システム、そのバッファリング方法およびコンピュータ・プログラム
CN114490509A (zh) 跟踪改变数据捕获日志历史
US9442948B2 (en) Resource-specific control blocks for database cache
US20240193186A1 (en) Database layered filtering
US11816088B2 (en) Method and system for managing cross data source data access requests
US11494382B2 (en) Optimization of first set of ordered items
JP2019101595A (ja) データベース管理システム及び方法
US20230010652A1 (en) Systems and methods for automatic index creation in database deployment
US11934370B1 (en) Data store indexing engine with automated refresh
JP2008269408A (ja) データ検索システム
Dory Study and Comparison of Elastic Cloud Databases: Myth or Reality?
WO2021090356A1 (ja) 情報処理装置、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190702