JPWO2015105043A1 - 演算システム、データベース管理装置および演算方法 - Google Patents

演算システム、データベース管理装置および演算方法 Download PDF

Info

Publication number
JPWO2015105043A1
JPWO2015105043A1 JP2015556782A JP2015556782A JPWO2015105043A1 JP WO2015105043 A1 JPWO2015105043 A1 JP WO2015105043A1 JP 2015556782 A JP2015556782 A JP 2015556782A JP 2015556782 A JP2015556782 A JP 2015556782A JP WO2015105043 A1 JPWO2015105043 A1 JP WO2015105043A1
Authority
JP
Japan
Prior art keywords
data
column
database
oriented
parallel
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
JP2015556782A
Other languages
English (en)
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.)
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
Publication of JPWO2015105043A1 publication Critical patent/JPWO2015105043A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

より少ない容量で、より簡単なデータベース管理を行う、演算システムを実現する。演算システムは、並列演算を実行する並列演算装置と、前記並列演算に用いるデータを格納するデータベースを管理するデータベース管理装置と、を備え、前記データベース管理装置は、前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、前記列指向型キャッシュから、前記並列演算に用いるデータを抽出する抽出手段と、を備え、前記並列演算装置は、前記データベース管理装置の前記抽出手段によって抽出された列指向型のデータを格納するベクトルレジスタと、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する並列演算手段と、を備える。

Description

本発明は、演算システム、データベース管理装置および演算方法に関する。
関係データベース(RDB:Relational DataBase)を管理するシステムで用いられるデータベースは、一般的に、ひとつの行を構成する列データをひとまとまりのデータとして扱う行指向型データベースである。これに対し、列方向のデータをひとまとまりのデータとして扱う列指向型データベースも用いられている。また、データベースのデータをキャッシュして用いる方法が知られている。
例えば、特許文献1には、行フォーマットでデータベース情報を記憶するリレーショナルデータベース管理システムコンポーネントと、列フォーマットでデータベース情報を記憶する列指向性データ処理コンポーネントとを有するシステムが記載されている。
また、特許文献2には、複数のデータベースの列情報をキャッシュファイルにキャッシュする複合データベース検索システムが記載されている。
また、特許文献3には、データベースのデータがキャッシュされていれば、キャッシュからデータを読み出し、キャッシュされていなければ、データをデータベースから取り出すシステムが記載されている。また、特許文献3の技術では、上記キャッシュはマップを用いて管理されており、データベースに変更があったとき、キャッシュの解放またはマップの更新が行われることが記載されている。
また、バックエンドデータストアとクライアントとの間にデータ形式を抽象化するコンテンツアダプタを備え、アクセス特有のバックエンドデータベースを読出し側アプリケーションから独立させるシステムが特許文献4に記載されている。
特表2010−539616号公報 特開2006−92409号公報 特開2009−265840号公報 特表2005−535947号公報
一般的に、関係データベースの列のうち、検索や結合の条件としてよく使用されるものには、検索の性能を向上させるために、インデックスが定義されていることが多い。また、例えば、行指向型データベース(関係データベース)と列指向型データベースまたは列指向型データのキャッシュとを用いたシステムでは、双方のデータベースの検索性能を向上させるために、インデックスが定義されている場合が多い。
しかしながら、インデックスを定義することにより、データの挿入、削除、更新が遅くなるため、インデックスの定義には考慮が必要であり、その管理には手間がかかってしまう。また、関係データベースにインデックスを定義すると、そのインデックスの分、RAM(Random Access Memory)の容量を消費してしまう。
特許文献1のシステムでは、データベースがインデックスを用いて管理されているため、データベースの管理に手間がかかり、インデックスの分、RAMの容量を消費してしまう。
また、特許文献2のシステムでは、外部記憶装置内にインデックスファイルが作成されているため、インデックスファイルの分、外部記憶装置の容量を消費してしまう。
また、特許文献3および4の技術では、インデックスの管理について特に言及されていない。
そのため、上述した特許文献1〜4に記載の技術を用いて、並列演算処理に関係データベースと列指向型キャッシュとを使用した演算システムの場合、キャッシュされた列指向型データのマスタであるデータベースのデータには、インデックスが作成される。したがって、特許文献1〜4の技術では、データベースの管理に手間がかかり、更にRAMの容量を消費してしまうという問題があった。
本発明は上記問題に鑑みてなされたものであり、その目的は、より少ない容量で、より簡単なデータベース管理を行う、演算システムを実現することにある。
本発明の一態様に係る演算システムは、並列演算を実行する並列演算装置と、前記並列演算に用いるデータを格納するデータベースを管理するデータベース管理装置と、を備え、前記データベース管理装置は、前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、前記列指向型キャッシュから、前記並列演算に用いるデータを抽出する抽出手段と、を備え、前記並列演算装置は、前記データベース管理装置の前記抽出手段によって抽出された列指向型のデータを格納するベクトルレジスタと、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する並列演算手段と、を備える。
本発明の一態様に係るデータベース管理装置は、並列演算に用いるデータを格納するデータベースを記憶する記憶手段と、前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、前記列指向型キャッシュから、前記並列演算に用いるデータを抽出する抽出手段と、前記抽出手段によって抽出された列指向型のデータを格納するベクトルレジスタと、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する並列演算手段と、を備える。
本発明の一態様に係る演算システムにおける演算方法は、並列演算を実行する並列演算装置と、前記並列演算に用いるデータを格納するデータベースを管理するデータベース管理装置と、を備えた演算システムの演算方法であって、前記データベース管理装置は、前記データベースの所定の列のデータを列指向型でキャッシュし、前記キャッシュされた列指向型のデータから、前記並列演算に用いるデータを抽出し、前記並列演算装置は、前記抽出された列指向型のデータをベクトルレジスタに格納し、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する。
本発明の一態様に係るデータベース管理装置における演算方法は、並列演算に用いるデータを格納するデータベースを記憶する記憶手段と、前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、を備えたデータベース管理装置の演算方法であって、前記列指向型キャッシュから、前記並列演算に用いるデータを抽出し、前記抽出された列指向型のデータをベクトルレジスタに格納し、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する。
なお、上記各装置または方法を、コンピュータによって実現するコンピュータプログラム、およびそのコンピュータプログラムが格納されている、コンピュータ読み取り可能な記憶媒体も、本発明の範疇に含まれる。
本発明によれば、より少ない容量で、より簡単なデータベース管理を行うことができる。
本発明の第1の実施の形態に係る演算システムの機能構成の一例を示す機能ブロック図である。 本発明の第1の実施の形態に係る演算システムのハードウエア構成の一例を示す図である。 本発明の第1の実施の形態に係るデータベース記憶部に記憶されているデータおよび主記憶部にキャッシュされているデータを説明するための図である。 本発明の第1の実施の形態に係るベクトルレジスタと主記憶部との関係を説明するための図である。 本発明の第1の実施の形態に係る演算システムの並列演算処理の流れの一例を示すフローチャートである。 本発明の第2の実施の形態に係る演算システムの機能構成の一例を示す機能ブロック図である。 本発明の第3の実施の形態に係る演算システムの機能構成の一例を示す機能ブロック図である。
<第1の実施の形態>
本発明の第1の実施の形態について、図面を参照して詳細に説明する。
図1は、本発明の第1の実施の形態に係る演算システムの一例を示すブロック図である。図1に示すように、本実施の形態に係る演算システム1は、データベース管理装置10と、並列演算装置20とを備えている。なお、本実施の形態において、データベース管理装置10と並列演算装置20とは、別個の構成であることを例に説明を行うが、本発明はこれに限定されるものではない。データベース管理装置10と並列演算装置20とは、同じ装置で実現されてもよい。例えば、並列演算装置20が、データベース管理装置10を含む構成であってもよいし、データベース管理装置10が並列演算装置20を含む構成であってもよい。
(データベース管理装置10について)
図1に示す通り、データベース管理装置10は、通信部101、解析部102、クエリ最適化部103、クエリ実行部104、拡張クエリ実行部105、キャッシュ制御部106、主記憶部107およびデータベース記憶部108を備えている。
データベース管理装置10の通信部101は、ネットワークを介して、例えば、上位装置からの命令(クエリ)を受信する。また、通信部101は、上記命令の応答をネットワークに送信する。通信部101は、ネットワークを介して受信した命令を解析部102に供給する。
解析部102は、通信部101から、通信部101が受信した命令を受信する。そして、解析部102は、上記命令に含まれる、文字列で受信したクエリを解析し、内部処理に適した形式に変換する。解析部102は、変換したクエリをクエリ最適化部103に供給する。
クエリ最適化部103は、通信部101が受信した命令に含まれるクエリに基づいて、上記クエリをデータベース管理装置10内で最適に実行するための1以上のクエリ実行計画の候補を作成する。具体的には、まず、クエリ最適化部103は、クエリ毎に、同じ実行結果を異なる複数の方法で導出する。ここで、異なる複数の方法とは、例えば、全件スキャン、インデックススキャン、並列演算装置20を使用した全件スキャンなどが挙げられる。このとき、例えば、(a)データベース記憶部108からの読み出すデータ量、(b)クエリに含まれる条件句をチェックするための演算回数、(c)データベースに含まれる行のうち処理すべき行の数、などを抽象化した値(「コスト値」と呼ぶ)を上記異なる方法毎に算出する。この異なる方法がクエリ実行計画の候補となる。
そして、クエリ最適化部103は、上記クエリ実行計画の候補から算出したコスト値が最も低い方法(クエリ実行計画の候補)をクエリ実行計画として選択する。クエリ実行計画には、クエリを処理する方法と、実行するクエリそのものが含まれる。このクエリ実行計画に含まれるクエリの形態によっては、処理の一部または全部で並列演算装置20を用いる。なお、説明したクエリ実行計画の作成は、一例であり、これに限定されるものではない。
クエリ最適化部103は、クエリ実行計画を、拡張クエリ実行部105に供給する。
データベース記憶部108には、データベースが記憶されている。データベース記憶部108に記憶されているデータベースは、一般的な関係データベース(行指向型データベース)である。
主記憶部107は、データベース管理装置10内で使用されるデータを記憶する記憶手段である。主記憶部107には、データベース記憶部108内のデータベースの列のデータをキャッシュするためのキャッシュ領域が含まれている。以降、キャッシュ領域にキャッシュされた列指向型のデータを列指向型データとも呼ぶ。なお、以降において、列指向型キャッシュとは、列指向型データが保存されたキャッシュ領域を指すが、当該キャッシュ領域にキャッシュされた列指向型データを列指向型キャッシュと呼ぶ場合もある。
また、主記憶部107は、後述する並列演算装置20の主記憶部204と、互いのデータを非同期DMA(Direct Memory Access)によって転送するように、主記憶部204に接続されている。なお、本実施の形態では、データベース管理装置10の主記憶部107と並列演算装置20の主記憶部204とが別個の構成であることを例に説明を行うが、本発明はこれに限定されるものではない。主記憶部107と主記憶部204とは一体形成されていてもよい。つまり、データベース管理装置10と並列演算装置20との間で主記憶部が共有された構成であってもよい。
キャッシュ制御部106は、データベース記憶部108に記憶された行指向型データベースの所定の列のデータを、列指向型に変換して、主記憶部107にキャッシュする。ここで、主記憶部107にキャッシュされる所定の列とは、利用者によって指定された列であってもよいし、設定ファイルにあらかじめ記載された列であってもよい。なお、主記憶部107にキャッシュする列はこれに限定されるものではなく、例えば、参照度合いが高い列であってもよい。ここで、参照度合いが高い列とは、最後に参照された日時が現時点に最も近い(最新の)列のことを示す。なお、主記憶部107にキャッシュされている列は、並列演算装置20の並列演算で使用されるデータが含まれる列であることが好ましい。
ここで、図面を変えて、データベース記憶部108と主記憶部107との関係について、さらに説明する。図3は、データベース記憶部108に記憶されているデータおよび主記憶部107にキャッシュされているデータを説明するための図である。
図3に示す通り、データベース記憶部108には、並列演算に用いるデータを格納しているデータベースのテーブルが記憶されている。図3に示すテーブルには、列名が、位置ID(IDentifier)、列A、列B、列C、列Dおよび列Eである列が含まれている。一方、主記憶部107には、データベース記憶部108内のテーブルの列Bと列Dとのデータが、列指向型でキャッシュされている。
データベース記憶部108のテーブルに含まれる位置IDは、行指向型データベースの磁気ディスク装置上での格納位置を示すものである。データベース記憶部108は、磁気ディスク等の記憶装置(後述する)で実現されている。そのため、テーブルに含まれるレコードは、磁気ディスクの物理位置(例えば、ブロックi番目の先頭からj番目の位置)に保存されている。本実施の形態における位置ID(位置識別子)は、この「ブロックi番目の先頭からj番目の位置」を示すものであり、(i,j)と表記する。図3においては、1行目のレコードの位置IDを(0,0)とし、2行目のレコードの位置IDを(0,1)として表している。
なお、物理位置の表現は、上記表現に限定されるものではなく、セクタ位置を示す情報を用いてもよいし、データファイルの先頭からのオフセット位置などを示す情報を用いてもよい。
この位置IDは、上述したとおり、各レコードの格納位置を示す情報である。つまり、テーブルのインデックスとして定義されるものではない。したがって、当該テーブルに対してインデックスが定義された場合と比べ、記憶装置内の容量を消費しない。また、インデックスとして定義されていないため、インデックスが定義されている場合と比べ、データベース記憶部108内のデータベースは、管理が容易である。
行指向型データベースでは、この位置IDによって、あるレコードに対して、全ての列のデータの存在する場所を一意に特定することができる。なぜならば、あるレコードのデータは、隣り合った位置に格納されているからである。したがって、磁気ディスク上のデータが更新されたとき、この更新されたデータを含むレコードに対して、位置IDが存在する。
一方、主記憶部107のキャッシュ領域には、列指向型のデータが長大な配列としてキャッシュされている。そのため、ある列のあるデータを特定する場合、先頭から何番目であるかを特定する必要がある。したがって、主記憶部107にキャッシュされたデータ(列指向型データ)には、この何番目であるかを特定するために位置IDを用いたインデックスが作成されている。このインデックスは、キャッシュ上のデータを管理するために作成されたデータである。そのため、位置IDは、ハッシュや木構造を用いてインデックス化されている。よって、インデックスを用いることにより、目的の位置IDが配置されているキャッシュ上(主記憶部107上)の位置を容易に特定することができる。これにより、例えば、列Aのi番目、列Bのi番目、・・・と順にデータを取得することで、特定の行の内容を取得することができる。
主記憶部107にキャッシュされたデータのマスタは、データベース記憶部108のデータベースである。そのため、データベース記憶部108に含まれるテーブルのレコードが更新された場合、後述するトリガ関数に従い、キャッシュ制御部106は、キャッシュ上の対応するデータを更新する。行指向型データベース上のレコードの位置は、上述したとおり位置IDで特定できる。したがって、データベース管理装置10は、キャッシュ上に作られた位置IDをキーとしてキャッシュを探索し、データベース記憶部108上のレコードに対応する、主記憶部107上のデータを更新することができる。
図1に戻り、演算システム1の各部材の説明を続ける。
データベース管理装置10の拡張クエリ実行部(抽出手段)105は、クエリ最適化部103から、クエリ実行計画を受信する。拡張クエリ実行部105は、受信したクエリ実行計画に基づいて実行されるクエリが、参照系のクエリか更新系のクエリかを確認する。更新系のクエリとは、挿入、更新、削除などの処理を行うクエリである。なお、更新系のクエリには、未使用のデータベースの回収処理を含むものであってもよい。拡張クエリ実行部105は、上記実行されるクエリが更新系のクエリの場合、上記クエリが含まれるクエリ実行計画をクエリ実行部104に供給する。
一方、拡張クエリ実行部105は、上記実行されるクエリが参照系のクエリである場合、参照対象の列が主記憶部107にキャッシュされているか否かを確認する。参照系のクエリとは、データベースのデータを参照するために抽出する処理を行うクエリである。参照対象の列が主記憶部107にキャッシュされている場合、拡張クエリ実行部105は、主記憶部107にキャッシュされている列指向型データから、クエリ実行結果を作成する。例えば、拡張クエリ実行部105で実行されるクエリが、列指向型キャッシュのデータを抽出するクエリである場合、拡張クエリ実行部105は、上記列指向型キャッシュから、データを抽出した結果をクエリ実行結果として作成する。これにより、拡張クエリ実行部105は、データベース記憶部108へアクセスすることなく、クエリ実行結果を返すことができる。
このように、参照系のクエリに対して、主記憶部107上の列指向型データを参照してクエリ実行結果を生成することにより、参照系の処理の性能を向上させることができる。
クエリが参照している列(参照対象の列)が主記憶部107にキャッシュされていない場合、拡張クエリ実行部105は、キャッシュされていない列を参照するためのクエリが含まれるクエリ実行計画をクエリ実行部104に供給する。
また、拡張クエリ実行部105は、例えば、クエリ実行計画に通信部101によって受信されたクエリが、データの参照クエリである場合、通信部101にクエリ実行結果を送信する。ここで、上記参照クエリが、例えば、並列演算装置20を用いるクエリである場合、拡張クエリ実行部105は、並列演算に用いる列指向型データを列指向型キャッシュから抽出し、当該抽出した列指向型データを、主記憶部107から並列演算装置20の主記憶部204にDMAによって転送させる。この時、拡張クエリ実行部105は、並列演算命令を並列演算装置20に送信する。そして、並列演算装置20から並列演算が終了した旨の通知を受け取ると、主記憶部107に格納された並列演算結果に基づいてクエリ実行結果を作成し、通信部101に当該クエリ実行結果を供給する。
クエリ実行部104は、拡張クエリ実行部105から供給されたクエリ実行計画に基づいて、データベース記憶部108のデータベースを参照し、上記クエリ実行計画に含まれるクエリを実行する。クエリ実行部104は、クエリ実行結果を通信部101に供給する。なお、クエリ実行部104が実行したクエリが並列演算装置20を用いるクエリであった場合、クエリ実行部104はクエリ実行結果を拡張クエリ実行部105に供給する。
また、クエリ実行部104は、実行したクエリが更新系のクエリである場合、トリガ関数を呼び出し実行する。トリガ関数は、例えば、クエリ実行部104内に格納されているとするが、本発明はこれに限定されるものではなく、例えば、主記憶部107に格納されていてもよい。
トリガ関数は、あるレコードが挿入、更新または削除された時に呼び出されるものである。トリガ関数は、キャッシュ制御部106に、更新されたレコードの位置IDをキーとして、主記憶部107上のキャッシュを探索させ、主記憶部107上の、上記更新されたレコードに対応するデータを、上記更新されたレコードと同様に更新するためのものである。したがって、レコードの更新または削除に伴って呼び出されるトリガ関数は、データベース記憶部108のデータに対応する、主記憶部107上のデータを更新または削除する処理をキャッシュ制御部106に実行させる。また、レコードの挿入処理に伴って呼び出されるトリガ関数は、「データベース記憶部108のテーブルに挿入されたレコードに対応するデータを、主記憶部107のキャッシュ上に追加する」処理をキャッシュ制御部106に実行させる。
このように、トリガ関数を用いて、データベース記憶部108のテーブルの列と、主記憶部107にキャッシュされた列との同期を行うことにより、どちらのデータを参照する場合であっても、一貫性が保たれた状態のデータを参照することができる。
なお、更新系のクエリにおいて、例えば、更新処理(例えば、UPDATE句)の対象となる列の検索(例えば、WHERE句)を、拡張クエリ実行部105が主記憶部107上のデータを用いて行い、クエリ実行部104が、上記検索結果に基づいて、更新処理を行う構成であってもよい。
(並列演算装置20について)
次に、並列演算装置20について説明する。図1に示す通り、並列演算装置20は、ベクトルレジスタ201、並列演算部202、制御部203および主記憶部204を備えている。
制御部203は、並列演算装置20全体を制御する。制御部203は、データベース管理装置10から並列演算命令を受信すると、主記憶部204に転送されたデータをベクトルレジスタ201にロードする。そして、制御部203は、ベクトルレジスタ201にロードしたデータを用いて並列演算を行うよう並列演算部202に指示する。
また、制御部203は、ベクトルレジスタ201に格納された、並列演算部202による並列演算の結果(並列演算結果)を、主記憶部204にストアする。そして、制御部203は、当該結果を、主記憶部204から主記憶部107にDMAによって転送させる。この時、制御部203は、データベース管理装置10に対し、並列演算が終了した旨を示す通知を送信する。
ベクトルレジスタ201は、並列演算用のレジスタである。ベクトルレジスタ201は、制御部203の指示に従い、主記憶部204との間でデータのロードおよびストアを実行する。なお、ベクトルレジスタ201の例については、後述する。
主記憶部204は、主記憶部107と、互いのデータを非同期DMAによって転送するように、主記憶部107に接続されている。
並列演算部202は、制御部203からの指示に従い、データがロードされたベクトルレジスタ201のデータを用いて、並列演算を実行する。並列演算部202は、演算結果を、演算結果を格納するためのベクトルレジスタ201に格納する。
ここで、図4を参照して、ベクトルレジスタ201と主記憶部107との関係について説明する。図4は、ベクトルレジスタ201と主記憶部107との関係を説明するための図である。なお、上述したとおり、ベクトルレジスタ201のデータは主記憶部204からロードされ、主記憶部204にストアされるが、図4においては、説明の便宜上、主記憶部204についての説明を省略している。
本実施の形態に係る並列演算装置20は、SIMD(Single−Instruction Multi Data)型の並列演算装置であるとする。なお、並列演算装置20は、これに限定されるものではなく、例えば、GPGPU(General−Purpose computing on Graphics Processing Units)技術を用いたものであってもよい。
並列演算装置20のベクトルレジスタ201は、複数のベクトルレジスタからなる。図4に示す通り、本実施の形態におけるベクトルレジスタ201は、ベクトルレジスタ201A〜ベクトルレジスタ201Rのベクトルレジスタを有している。
1つのベクトルレジスタには、各ベクトルの要素が含まれている。各ベクトルの要素は、同一ビット幅である。例えば、図4において、ベクトルレジスタ201Aには、各ベクトル要素である、値A1、値A2、・・・、値Anが格納されている。並列演算部202は、このようなベクトルレジスタ201を用いて、同じ演算処理(加減乗除など)を同時に実行することができる。そして、並列演算部202は、実行結果をベクトルレジスタ201Rに対し、各ベクトルの要素として格納している。この実行結果は、制御部203からの制御に従い、ベクトルレジスタ201Rから主記憶部107にDMAによって転送される。
ベクトルレジスタへのデータのロード/ストアは、図4に示す通り、主記憶部107上の領域を対象としている。そのため、本実施の形態に係る並列演算装置20のように、複数行のデータを同時に処理する場合には、同じ列の値が隣接している列指向型データを用いることによって、好適に並列演算処理を実行することができる。
ここで、主記憶部107上にキャッシュされたデータは、列指向型である。列指向型のデータのデータ構造は、図3に示す通り、行1列B、行2列B、・・・、となっており、同じ列のデータが隣接した構造である。また、図4に示す通り、ベクトルレジスタ201のデータ構造も、ある列に対応するデータが隣接した構造である。そのため、列指向型データのデータ構造と、ベクトルレジスタ201のデータ構造とは一致する。したがって、データベース管理装置10の拡張クエリ実行部105は、並列演算に用いるデータセット(拡張クエリ実行部105のクエリ実行結果)を、主記憶部107から主記憶部204を介して、ベクトルレジスタ201にそのままロードさせることができる。
一方、行指向型データベースのデータをベクトルレジスタ201に格納する場合、データ構造の変換が必要となる。したがって、データの変換処理に時間がかかってしまう。
しかしながら、本実施の形態に係る演算システム1は、上述のように、列指向型キャッシュに格納された列指向型データをそのままベクトルレジスタ201にロードすることができる。そのため、主記憶部107内で、データ再配置の必要がなく、より高速に、ベクトルレジスタ201にデータをロードすることができる。
(ハードウエア構成について)
次に、図1の演算システム1のハードウエア構成の一例について、図2を参照して説明する。図2は、本実施の形態に係る演算システム1のデータベース管理装置10および並列演算装置20をコンピュータ装置で実現したハードウエア構成の一例を示す図である。なお、図2に示す演算システム1のハードウエア構成は、本発明に主要な部材を説明するためのものであり、演算システム1がその他の部材を有してもよいことは言うまでもない。
図2に示す通り、演算システム1のデータベース管理装置10は、CPU(Central Processing Unit)11、内部バス12、メモリ13およびハードディスク等の記憶装置14およびネットワーク接続用の通信I/F(通信インタフェース)15を含んでいる。また、並列演算装置20は、CPU21、内部バス22およびメモリ23を含んでいる。データベース管理装置10の各部材は、夫々接続されている。同様に、並列演算装置20の各部材は、夫々接続されている。
CPU11およびCPU21は、夫々、オペレーティングシステムを動作させて本実施の形態に係るデータベース管理装置10および並列演算装置20を制御する。また、CPU11は、例えば、記憶装置14からメモリ13にプログラムやデータを読み出して実行することにより、コンパイラおよびジョブスケジューラの全体的な動作を司る。また、CPU21は、例えば、図示しない記憶装置などからメモリ23にプログラムやデータを読み出して実行することにより、コンパイラおよびジョブスケジューラの全体的な動作を司る。すなわち、本実施の形態において、CPU11およびCPU21は、夫々、記憶装置等を適宜参照しながら、コンパイラおよびジョブスケジューラが備える各機能(各部)を実行するソフトウエアプログラムを実行する。
また、CPU11は、例えば、本実施の形態の解析部102、クエリ最適化部103、クエリ実行部104、拡張クエリ実行部105およびキャッシュ制御部106の一部として機能し、プログラムに基づいて各種の処理を実行する。また、CPU21は、例えば、本実施の形態の並列演算部202および制御部203の一部として機能し、プログラムに基づいて各種の処理を実行する。
内部バス12および内部バス22は、データベース管理装置10および並列演算装置20を互いに接続するためのバスである。内部バス12および内部バス22は、例えば、PCI−E(Peripheral Components Interconnect Express)バスなどが挙げられるが、本発明はこれに限定されるものではない。内部バス12は、例えば、拡張クエリ実行部105および主記憶部107の一部として機能する。また、内部バス22は、例えば、制御部203および主記憶部204の一部として機能する。
通信I/F15は、ネットワークに接続するためのインタフェースである。通信I/F15は、例えば、通信部101の一部として機能する。
メモリ13およびメモリ23は、RAM(Random Access Memory)と、ROM(Read Only Memory)とからなる主記憶装置である。メモリ13は、例えば、本実施の形態における主記憶部107として機能する。メモリ23は、例えば、本実施の形態におけるベクトルレジスタ201および主記憶部204として機能する。
記憶装置14は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、または半導体メモリ等である。記憶装置14の一部の記憶媒体は、不揮発性記憶装置であり、そこにプログラムを記憶している。また、プログラムは通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。記憶装置14は、例えば、本実施の形態におけるデータベース記憶部108として機能する。
なお、図1に示した各ブロックのハードウエア構成は、上述の構成に限定されない。また、本実施の形態では、図1に示した演算システム1における各ブロックに示す機能を、CPU11およびCPU21が実行する一例として、ソフトウエアプログラムによって実現する場合について説明しているが、各ブロックに示す機能は、一部または全部を、ハードウエアの回路として実現してもよい。
(並列演算処理について)
次に、図5を参照して、本実施の形態に係る演算システム1における並列演算処理の流れについて説明する。図5は、本実施の形態に係る演算システム1の並列演算処理の流れの一例を示すフローチャートである。
図5に示す通り、上位装置などからデータベースの検索命令(検索クエリ)が発せられると、データベース管理装置10の通信部101が上記検索クエリを受信する(ステップS1)。
そして、解析部102が、通信部101が受信した検索クエリを解析し、内部処理に適した形式に変換する(ステップS2)。
次に、クエリ最適化部103が、形式変換されたクエリに基づいて、クエリ実行計画の候補を作成する(ステップS3)。
そして、クエリ最適化部103が、上記クエリ実行計画の候補から、コスト値が最も小さい候補をクエリ実行計画として選択する(ステップS4)。以降の処理は、クエリ実行計画に含まれるクエリが並列演算装置20を利用するものであることを例に説明を行う。
次に、拡張クエリ実行部105が、受信したクエリ実行計画に基づいて、並列演算装置20を利用するクエリの実行を開始する(ステップS5)。そして、拡張クエリ実行部105が並列演算装置20で利用する列指向型データを、主記憶部107から並列演算装置20の主記憶部204にDMAによって転送させる(ステップS6)。その後、並列演算装置20の制御部203が上記データを主記憶部204からベクトルレジスタ201にロードする(ステップS7)。
そして、並列演算部202は、並列演算命令に従って、ステップS5でデータがロードされたベクトルレジスタ201のデータを用いて、並列演算を実行する(ステップS8)。
その後、制御部203が、並列演算部202による並列演算の結果(並列演算結果)を、ベクトルレジスタ201から主記憶部204にストアする。そして、制御部203が、ストアしたデータをデータベース管理装置10の主記憶部107にDMAによって転送させることにより、並列演算結果を主記憶部107に格納する。また、制御部203は、並列演算が完了したことを示す通知を、拡張クエリ実行部105に送信する(ステップS9)。
そして、通信部101がクエリ実行結果を、ネットワークに送信する(ステップS10)。
(効果)
本発明の第1の実施の形態に係る演算システム1によれば、より少ない容量で、より簡単なデータベース管理を行うことができる。
なぜならば、データベース管理装置10の拡張クエリ実行部105が列指向型キャッシュから、並列演算に用いるデータを抽出し、並列演算装置20のベクトルレジスタ201が、抽出された列指向型のデータを格納し、並列演算部202がベクトルレジスタ201に格納されたデータを用いて、並列演算を実行するからである。データベース管理装置10のデータベース記憶部108に記憶されたデータベースは、並列演算に用いるデータを格納している。また、主記憶部107に含まれる列指向型キャッシュは、上記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納している。
このように、列指向型キャッシュの列指向型データは、そのまま、ベクトルレジスタ201にロードすることができる。そのため、主記憶部107内で、データ再配置の必要がなく、より高速に、ベクトルレジスタ201にデータをロードすることができる。また、キャッシュされたデータを用いるため、キャッシュのマスタとなるデータベースに対してアクセスする必要がない。そのため、上記データベースには、検索のためのインデックスを設ける必要がない。したがって、インデックスを有するデータベースと比べ、本実施の形態に係るデータベースは、管理が容易になる。また、インデックスの分の記憶装置の容量の消費量を少なくすることができる。したがって、より多くの行のオンメモリ処理が可能になる。
このように、本実施の形態に係る演算システム1によれば、データベース管理装置10が予めデータを列指向型データに変換しておくことで、並列演算装置20を使用して複数行を一度に処理することが可能となる。したがって、参照系のクエリに付随する計算処理速度を向上させることができ、並列演算装置20をより有効に利用することができる。
<第2の実施の形態>
次に、本発明の第2の実施の形態について、図面を参照して詳細に説明する。なお、説明の便宜上、前述した第1の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その詳細な説明を省略する。
図6は、本発明の第2の実施の形態に係る演算システムの一例を示すブロック図である。図6に示すように、本実施の形態に係る演算システム2は、データベース管理装置30と、並列演算装置20と、外部記憶装置301と、を備えている。なお、本実施の形態に係る演算システム2は、上述した演算システム1と同様に、データベース管理装置30と並列演算装置20とが、別個の構成であってもよいし、同じ装置で実現される構成であってもよい。
なお、データベース管理装置30および並列演算装置20のハードウエア構成は、図2に示したデータベース管理装置10および並列演算装置20のハードウエア構成と同様の構成であるとする。
外部記憶装置301は、データベース管理装置30に外部接続された記憶装置である。外部記憶装置301は、例えば、半導体記憶装置である。外部記憶装置301は、データベース管理装置30の主記憶部107よりも容量が大きいものであるとする。外部記憶装置301には、データベース記憶部108内のデータベースの列のデータがキャッシュされている。なお、キャッシュのマスタとなるデータベースとの同期処理に掛かるコストを最小化するために、外部記憶装置301として、例えば、磁気ディスク装置ではなく、半導体記憶装置のような低遅延のデバイスを用いることが好ましい。
図6に示す通り、データベース管理装置30は、通信部101、解析部102、クエリ最適化部103、クエリ実行部104、拡張クエリ実行部105、キャッシュ制御部306、主記憶部107およびデータベース記憶部108を備えている。
キャッシュ制御部306は、データベース記憶部108に記憶された行指向型データベースの所定の列のデータを、列指向型に変換して、主記憶部107または外部記憶装置301にキャッシュする。つまり、データベース記憶部108内のデータベースの列のデータは、上述した外部記憶装置301と、主記憶部107とにキャッシュされる。
キャッシュ制御部306は、データベース記憶部108に記憶された所定の列のデータのうち、例えば、参照頻度が高い列のデータを主記憶部107にキャッシュし、参照頻度が低い列のデータを外部記憶装置301にキャッシュする、という制御を行う。また、キャッシュ制御部306は、必要に応じて、主記憶部107および外部記憶装置301間でキャッシュされたデータを移動させる。
また、クエリ実行部104が呼び出すトリガ関数は、第1の実施の形態のトリガ関数と異なり、キャッシュ制御部306に、更新されたレコードの位置IDをキーとして、主記憶部107上および外部記憶装置301上のキャッシュを探索する。そして、トリガ関数は、キャッシュ制御部306に、主記憶部107上または外部記憶装置301上の、上記更新されたレコードに対応するデータを、上記更新されたレコードと同様に更新させる。
(効果)
以上のように、本実施の形態に係る演算システム2は、データベース記憶部108内のデータベースの列のデータを、主記憶部107上と、外部記憶装置301上とに、キャッシュする構成である。
外部記憶装置301は、主記憶部107を構成するメモリ13より、安価である。そのため、本実施の形態に係る演算システム2によれば、より安価な構成で、より大量のデータをキャッシュすることができる。
これにより、より大量のデータをより高速に、並列演算装置20にロードすることができるため、より高速に並列演算を行うことができる。
<第3の実施の形態>
次に、本発明の第3の実施の形態について、図面を参照して詳細に説明する。なお、説明の便宜上、前述した第1の実施の形態で説明した図面に含まれる部材と同じ機能を有する部材については、同じ符号を付し、その詳細な説明を省略する。
図7は、本発明の第3の実施の形態に係る演算システムの一例を示すブロック図である。図7に示すように、本実施の形態に係る演算システム3は、データベース管理装置40と、並列演算装置50と、を備えている。なお、本実施の形態に係る演算システム3は、上述した演算システム1と同様に、データベース管理装置40と並列演算装置50とが、別個の構成であってもよいし、1つのデータベース管理装置で実現される構成であってもよい。
なお、データベース管理装置40および並列演算装置50のハードウエア構成は、図2に示したデータベース管理装置10および並列演算装置20のハードウエア構成と同様の構成であるとする。
図7に示す通り、データベース管理装置40は、抽出部405、列指向型キャッシュ407およびデータベース408を備えている。また、並列演算装置50は、ベクトルレジスタ201および並列演算部202を備えている。
データベース408は、データベース管理装置40で管理されているデータベースである。データベース408は、並列演算に用いるデータを格納している。また、データベース408は、上記データに対してのインデックスを有していない。
列指向型キャッシュ407は、第1の実施の形態に係る主記憶部107に含まれるキャッシュ領域である。列指向型キャッシュ407は、データベース408の所定の列のデータを列指向型でキャッシュしている。
抽出部405は、第1の実施の形態に係る拡張クエリ実行部105に相当する。抽出部405は、列指向型キャッシュ407から、並列演算に用いるデータを抽出する。
並列演算装置50は、並列演算を実行する装置である。並列演算装置50のベクトルレジスタ201および並列演算部202は、第1の実施の形態のベクトルレジスタ201および並列演算部202とそれぞれ同じ構成であるため、説明を省略する。
本発明の第3の実施の形態に係る演算システム3によれば、より少ない容量で、より簡単なデータベース管理を行うことができる。
なぜならば、データベース管理装置40の抽出部405が列指向型キャッシュ407から、並列演算に用いるデータを抽出し、並列演算装置50のベクトルレジスタ201が、抽出された列指向型のデータを格納し、並列演算部202がベクトルレジスタ201に格納されたデータを用いて、並列演算を実行するからである。データベース管理装置40のデータベース408は、並列演算に用いるデータを格納している。また、列指向型キャッシュ407には、上記データベースの所定の列のデータが列指向型でキャッシュされている。
このように、列指向型キャッシュ407のデータは、そのまま、ベクトルレジスタ201にロードすることができる。そのため、ベクトルレジスタ201にロードする際に、データ再配置の必要がなく、より高速に、ベクトルレジスタ201にデータをロードすることができる。また、キャッシュされたデータを用いるため、キャッシュのマスタとなるデータベース408に対してアクセスする必要がない。そのため、上記データベース408には、検索のためのインデックスを設ける必要がない。したがって、インデックスを有するデータベースと比べ、本実施の形態に係るデータベースは、管理が容易になる。また、インデックスの分の記憶装置の容量の消費量を少なくすることができる。したがって、より多くの行のオンメモリ処理が可能になる。
このように、本実施の形態に係る演算システム3によれば、データベース408のデータを列指向型のデータに変換しておくことで、複数行のデータを一度に処理するという並列演算処理が可能となる。したがって、参照系のクエリに付随する計算処理速度を向上させることができ、並列演算装置50をより有効に利用することができる。
なお、上述した各実施の形態は、本発明の好適な実施の形態であり、上記各実施の形態にのみ本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において当業者が上記各実施の形態の修正や代用を行い、種々の変更を施した形態を構築することが可能である。
例えば、上述した実施の形態における各動作は、ハードウエアまたはソフトウエア、あるいはその両方の複合構成によって実行することも可能である。
なお、ソフトウエアによる処理を実行する場合には、例えば、上記各処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。また、上記プログラムは、例えば、ハードディスクなどの記録媒体に記録しておくことが可能である。
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)並列演算を実行する並列演算装置と、前記並列演算に用いるデータを格納するデータベースを管理するデータベース管理装置と、を備え、前記データベース管理装置は、前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、前記列指向型キャッシュから、前記並列演算に用いるデータを抽出する抽出手段と、を備え、前記並列演算装置は、前記データベース管理装置の前記抽出手段によって抽出された列指向型のデータを格納するベクトルレジスタと、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する並列演算手段と、を備えることを特徴とする演算システム。
(付記2)前記列指向型キャッシュは、前記データベースに含まれるレコードの夫々の物理位置を示す位置識別子をインデックスとして含んでおり、前記データベース管理装置は、前記データベースに更新がある場合に、更新されたデータに対応する、前記列指向型キャッシュのデータを更新するためのキャッシュ制御手段を更に備え、前記キャッシュ制御手段は、前記インデックスを用いて、前記データベース内の更新されたデータに対応する、キャッシュされたデータを検索することを特徴とする付記1に記載の演算システム。
(付記3)前記抽出手段は、前記データベースまたは前記列指向型キャッシュのデータを操作するクエリのうち、前記並列演算に用いるデータを前記列指向型キャッシュから抽出するためのクエリを実行する、ことを特徴とする付記1または2に記載の演算システム。
(付記4)前記データベース管理装置は、更新系のクエリを、前記データベースを用いて実行するクエリ実行手段を更に備え、前記抽出手段は、前記データベースまたは前記列指向型キャッシュのデータを操作するクエリのうち、前記更新系のクエリか否かを確認し、更新系のクエリである場合、前記クエリを前記クエリ実行手段に供給する、ことを特徴とする付記3に記載の演算システム。
(付記5)前記データベース管理装置は、前記データベースまたは前記列指向型キャッシュのデータを操作するクエリに基づいて、前記クエリを前記データベース管理装置で最適に実行するためのクエリ実行計画を作成する最適化手段を更に備えることを特徴とする付記3または4に記載の演算システム。
(付記6)前記データベース管理装置に接続された外部記憶装置を更に備え、前記データベースの所定の列のデータは、列指向型で、前記列指向型キャッシュと、前記外部記憶装置とにキャッシュされる、ことを特徴とする付記1から5の何れかに記載の演算システム。
(付記7)並列演算に用いるデータを格納するデータベースを記憶する記憶手段と、前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、前記列指向型キャッシュから、前記並列演算に用いるデータを抽出する抽出手段と、前記抽出手段によって抽出された列指向型のデータを格納するベクトルレジスタと、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する並列演算手段と、を備えることを特徴とするデータベース管理装置。
(付記8)前記列指向型キャッシュは、前記データベースに含まれるレコードの夫々の物理位置を示す位置識別子をインデックスとして含んでおり、前記データベースに更新がある場合に、更新されたデータに対応する、キャッシュされたデータを更新するためのキャッシュ制御手段を更に備え、前記キャッシュ制御手段は、前記インデックスを用いて、前記データベース内の更新されたデータに対応する、キャッシュされたデータを検索することを特徴とする付記7に記載のデータベース管理装置。
(付記9)前記抽出手段は、前記データベースまたは前記列指向型キャッシュのデータを操作するクエリのうち、前記並列演算に用いるデータを前記列指向型キャッシュから抽出するためのクエリを実行する、ことを特徴とする付記7または8に記載のデータベース管理装置。
(付記10)更新系のクエリを、前記データベースを用いて実行するクエリ実行手段を更に備え、前記抽出手段は、前記データベースまたは前記列指向型キャッシュのデータを操作するクエリのうち、前記更新系のクエリか否かを確認し、更新系のクエリである場合、前記クエリを前記クエリ実行手段に供給する、ことを特徴とする付記9に記載のデータベース管理装置。
(付記11)前記データベースまたは前記列指向型キャッシュのデータを操作するクエリに基づいて、前記クエリを前記データベース管理装置で最適に実行するためのクエリ実行計画を作成する最適化手段を更に備えることを特徴とする付記9または10に記載のデータベース管理装置。
(付記12)前記データベース管理装置に接続された外部記憶装置を更に備え、前記データベースの所定の列のデータは、列指向型で、前記列指向型キャッシュと、前記外部記憶装置とにキャッシュされる、ことを特徴とする付記7から11の何れかに記載のデータベース管理装置。
(付記13)並列演算を実行する並列演算装置と、前記並列演算に用いるデータを格納するデータベースを管理するデータベース管理装置と、を備えた演算システムの演算方法であって、前記データベース管理装置は、前記データベースの所定の列のデータを列指向型でキャッシュし、前記キャッシュされた列指向型のデータから、前記並列演算に用いるデータを抽出し、前記並列演算装置は、前記抽出された列指向型のデータをベクトルレジスタに格納し、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する、ことを特徴とする演算方法。
(付記14)並列演算に用いるデータを格納するデータベースを記憶する記憶手段と、前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、を備えたデータベース管理装置の演算方法であって、前記列指向型キャッシュから、前記並列演算に用いるデータを抽出し、前記抽出された列指向型のデータをベクトルレジスタに格納し、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する、ことを特徴とする演算方法。
(付記15)並列演算に用いるデータを格納するデータベースを記憶する記憶手段と、前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、を備えたデータベース管理装置に、前記列指向型キャッシュから、前記並列演算に用いるデータを抽出する処理と、前記抽出された列指向型のデータをベクトルレジスタに格納する処理と、前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する処理と、を実行させることを特徴とするプログラム。
(付記16)付記15に記載のプログラムを記憶する、ことを特徴とするコンピュータ読み取り可能な記録媒体。
本発明の成果は、DWH(Data WareHouse)などデータベースに蓄積された大量のデータを参照し、高速に抽出することが要求される場合に有効である。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2014年1月8日に出願された日本出願特願2014−001640を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 演算システム
10 データベース管理装置
101 通信部
102 解析部
103 クエリ最適化部
104 クエリ実行部
105 拡張クエリ実行部
106 キャッシュ制御部
107 主記憶部
108 データベース記憶部
20 並列演算装置
201 ベクトルレジスタ
202 並列演算部
203 制御部
2 演算システム
30 データベース管理装置
301 外部記憶装置
306 キャッシュ制御部
3 演算システム
40 データベース管理装置
405 抽出部
407 列指向型キャッシュ
408 データベース
50 並列演算装置

Claims (10)

  1. 並列演算を実行する並列演算装置と、
    前記並列演算に用いるデータを格納するデータベースを管理するデータベース管理装置と、を備え、
    前記データベース管理装置は、
    前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、
    前記列指向型キャッシュから、前記並列演算に用いるデータを抽出する抽出手段と、を備え、
    前記並列演算装置は、
    前記データベース管理装置の前記抽出手段によって抽出された列指向型のデータを格納するベクトルレジスタと、
    前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する並列演算手段と、を備えることを特徴とする演算システム。
  2. 前記列指向型キャッシュは、前記データベースに含まれるレコードの夫々の物理位置を示す位置識別子をインデックスとして含んでおり、
    前記データベース管理装置は、前記データベースに更新がある場合に、更新されたデータに対応する、前記列指向型キャッシュのデータを更新するためのキャッシュ制御手段を更に備え、
    前記キャッシュ制御手段は、前記インデックスを用いて、前記データベース内の更新されたデータに対応する、キャッシュされたデータを検索することを特徴とする請求項1に記載の演算システム。
  3. 前記抽出手段は、前記データベースまたは前記列指向型キャッシュのデータを操作するクエリのうち、前記並列演算に用いるデータを前記列指向型キャッシュから抽出するためのクエリを実行する、ことを特徴とする請求項1または2に記載の演算システム。
  4. 前記データベース管理装置は、更新系のクエリを、前記データベースを用いて実行するクエリ実行手段を更に備え、
    前記抽出手段は、前記データベースまたは前記列指向型キャッシュのデータを操作するクエリのうち、前記更新系のクエリか否かを確認し、更新系のクエリである場合、前記クエリを前記クエリ実行手段に供給する、ことを特徴とする請求項3に記載の演算システム。
  5. 前記データベース管理装置は、前記データベースまたは前記列指向型キャッシュのデータを操作するクエリに基づいて、前記クエリを前記データベース管理装置で最適に実行するためのクエリ実行計画を作成する最適化手段を更に備えることを特徴とする請求項3または4に記載の演算システム。
  6. 前記データベース管理装置に接続された外部記憶装置を更に備え、
    前記データベースの所定の列のデータは、列指向型で、前記列指向型キャッシュと、前記外部記憶装置とにキャッシュされる、ことを特徴とする請求項1から5の何れか1項に記載の演算システム。
  7. 並列演算に用いるデータを格納するデータベースを記憶する記憶手段と、
    前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、
    前記列指向型キャッシュから、前記並列演算に用いるデータを抽出する抽出手段と、
    前記抽出手段によって抽出された列指向型のデータを格納するベクトルレジスタと、
    前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する並列演算手段と、を備えることを特徴とするデータベース管理装置。
  8. 前記列指向型キャッシュは、前記データベースに含まれるレコードの夫々の物理位置を示す位置識別子をインデックスとして含んでおり、
    前記データベースに更新がある場合に、更新されたデータに対応する、キャッシュされたデータを更新するためのキャッシュ制御手段を更に備え、
    前記キャッシュ制御手段は、前記インデックスを用いて、前記データベース内の更新されたデータに対応する、キャッシュされたデータを検索することを特徴とする請求項7に記載のデータベース管理装置。
  9. 並列演算を実行する並列演算装置と、前記並列演算に用いるデータを格納するデータベースを管理するデータベース管理装置と、を備えた演算システムの演算方法であって、
    前記データベース管理装置は、前記データベースの所定の列のデータを列指向型でキャッシュし、
    前記キャッシュされた列指向型のデータから、前記並列演算に用いるデータを抽出し、
    前記並列演算装置は、前記抽出された列指向型のデータをベクトルレジスタに格納し、
    前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する、ことを特徴とする演算方法。
  10. 並列演算に用いるデータを格納するデータベースを記憶する記憶手段と、前記データベースの所定の列のデータを列指向型でキャッシュしたデータを格納する列指向型キャッシュと、を備えたデータベース管理装置の演算方法であって、
    前記列指向型キャッシュから、前記並列演算に用いるデータを抽出し、
    前記抽出された列指向型のデータをベクトルレジスタに格納し、
    前記ベクトルレジスタに格納されたデータを用いて、前記並列演算を実行する、ことを特徴とする演算方法。
JP2015556782A 2014-01-08 2015-01-07 演算システム、データベース管理装置および演算方法 Pending JPWO2015105043A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014001640 2014-01-08
JP2014001640 2014-01-08
PCT/JP2015/000029 WO2015105043A1 (ja) 2014-01-08 2015-01-07 演算システム、データベース管理装置および演算方法

Publications (1)

Publication Number Publication Date
JPWO2015105043A1 true JPWO2015105043A1 (ja) 2017-03-23

Family

ID=53523873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015556782A Pending JPWO2015105043A1 (ja) 2014-01-08 2015-01-07 演算システム、データベース管理装置および演算方法

Country Status (2)

Country Link
JP (1) JPWO2015105043A1 (ja)
WO (1) WO2015105043A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017085985A1 (ja) * 2015-11-22 2017-05-26 浩平 海外 データベース処理高速化のシステム、方法、及び、プログラム
JP2017097639A (ja) * 2015-11-25 2017-06-01 富士通株式会社 データベース制御プログラム、データベース制御装置及びデータベース制御方法
WO2018083751A1 (ja) * 2016-11-02 2018-05-11 浩平 海外 インテリジェント・ストレージ・サブシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0690443A (ja) * 1992-09-21 1994-03-29 Mitsubishi Electric Corp ベクトル量子化方式フレーム間符号化装置
JP2006092409A (ja) * 2004-09-27 2006-04-06 Hitachi Information Systems Ltd 複合データベース検索システムおよび複合データベース検索方法ならびにそのためのプログラム
JP2012504824A (ja) * 2008-10-05 2012-02-23 マイクロソフト コーポレーション 列ベースのデータ符号化構造の問い合わせのための効率的な大規模結合
JP2013228999A (ja) * 2012-03-26 2013-11-07 Nec Corp データベース処理装置、方法、プログラム及びデータ構造

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0690443A (ja) * 1992-09-21 1994-03-29 Mitsubishi Electric Corp ベクトル量子化方式フレーム間符号化装置
JP2006092409A (ja) * 2004-09-27 2006-04-06 Hitachi Information Systems Ltd 複合データベース検索システムおよび複合データベース検索方法ならびにそのためのプログラム
JP2012504824A (ja) * 2008-10-05 2012-02-23 マイクロソフト コーポレーション 列ベースのデータ符号化構造の問い合わせのための効率的な大規模結合
JP2013228999A (ja) * 2012-03-26 2013-11-07 Nec Corp データベース処理装置、方法、プログラム及びデータ構造

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
上村 純平 外2名: "GPU援用カラムストアデータベースの設計と評価", 情報処理学会研究報告 2011(平成23)年度▲2▼ [CD−ROM], vol. 2011年6月、7月研究発表会開催分, JPN6017020503, 29 August 2011 (2011-08-29), JP, pages p1.-p.7 *

Also Published As

Publication number Publication date
WO2015105043A1 (ja) 2015-07-16

Similar Documents

Publication Publication Date Title
JP6998928B2 (ja) データを記憶およびクエリするための方法、装置、設備、および媒体
EP3113043B1 (en) Method, device and host for updating metadata stored in columns in distributed file system
CN105630864B (zh) 存储行标识符值的字典的强制排序
EP3519986B1 (en) Direct table association in in-memory databases
JP6471262B2 (ja) データ処理システム
US11537617B2 (en) Data system configured to transparently cache data of data sources and access the cached data
JP6982049B2 (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
JP6434162B2 (ja) データ管理システム、データ管理方法およびプログラム
WO2015105043A1 (ja) 演算システム、データベース管理装置および演算方法
CN110352410B (zh) 跟踪索引节点的访问模式以及预提取索引节点
JP5108252B2 (ja) インデクス更新方法及びそのシステム
US9576008B2 (en) System and method for search indexing
US20230401209A1 (en) Columnar Cache Query Using Hybrid Query Execution Plan
JP5186270B2 (ja) データベースのキャッシュシステム
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP2013242675A (ja) 分散情報制御装置、分散情報検索方法、データ分散配置方法、及びプログラム
JP6644637B2 (ja) 高速化装置、計算機システム及びデータ処理方法
US11989169B2 (en) Autonomous refactoring system for database
US20230367751A1 (en) Evaluating Row-Store Expressions on a Column-Store Database
JP2013127750A (ja) パーティション分割装置及び方法及びプログラム
JP5226445B2 (ja) データベースに対する問合せを処理する装置、処理方法、プログラムおよび記録媒体
US7840583B2 (en) Search device and recording medium
JP3865197B2 (ja) データベースアクセス処理方法
CN108460059A (zh) 基于分布式数据库的数据操作方法、装置及系统

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171205