JP6158430B2 - データベースのハッシュ結合処理をストレージ装置が実行するシステム - Google Patents

データベースのハッシュ結合処理をストレージ装置が実行するシステム Download PDF

Info

Publication number
JP6158430B2
JP6158430B2 JP2016512523A JP2016512523A JP6158430B2 JP 6158430 B2 JP6158430 B2 JP 6158430B2 JP 2016512523 A JP2016512523 A JP 2016512523A JP 2016512523 A JP2016512523 A JP 2016512523A JP 6158430 B2 JP6158430 B2 JP 6158430B2
Authority
JP
Japan
Prior art keywords
information
data
hash value
hash
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016512523A
Other languages
English (en)
Other versions
JPWO2015155846A1 (ja
Inventor
渡辺 聡
聡 渡辺
能毅 黒川
能毅 黒川
芳孝 辻本
芳孝 辻本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2015155846A1 publication Critical patent/JPWO2015155846A1/ja
Application granted granted Critical
Publication of JP6158430B2 publication Critical patent/JP6158430B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (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)

Description

本発明は、データベースの処理をアシストする機能を有するストレージ装置およびシステムに関する。
データベースを管理するデータベース管理システム(DBMS:DataBase Management System)はデータの蓄積や分析を効率的に実行するためのソフトウェアである。DBMSの一種であるリレーショナルデータベース管理システム(RDBMS:Relational DataBase Management System)は,データの集合(以下,リレーションまたは表と呼ぶ)を用いてデータを管理する。RDBMSがデータの分析を実行する際には,リレーションの結合を行う。リレーションの結合とは,複数のリレーションを結合条件に従って一つにまとめて,新たなリレーションを作成する操作である。
リレーションの結合では,ハッシュ結合と呼ばれる方式が広く用いられている。ハッシュ結合では,最初に一方のリレーション(以下,外表と呼ぶ)のハッシュ表を作成する。次に他方のリレーション(以下,内表と呼ぶ)のハッシュ表を作成する。外表のデータのハッシュ表と内表のデータのハッシュ表を照合することによって,外表と内表の結合を行う。ハッシュ結合に関しては,例えば,特許文献1に記載されている。
ハッシュ結合では,サーバ装置のメモリ溢れと呼ばれる状況が発生する場合がある。サーバ装置のメモリ溢れは,外表のハッシュ表がサーバ装置のメモリに収まりきらない場合に発生する。サーバ装置のメモリ溢れが発生した場合,外表のハッシュ表をバケットと呼ばれる小区間に分割し,ハッシュ表をストレージ装置に書き出す。次に,内表のハッシュ表もバケットに分割しストレージ装置に書き出す。そして,ストレージ装置から,外表のバケットと内表のバケットをサーバ装置のメモリに読み込んで結合処理を実行する。サーバ装置のメモリ溢れに関しては,例えば,特許文献2に記載されている。
特開平10−326215号公報 特開平10−269248号公報
ハッシュ表を用いたデータの分析処理において、サーバ装置でメモリ溢れが発生すると、表のハッシュ表をバケットと呼ばれる小区間に分割してストレージ装置に書き出し、再度、ストレージ装置からハッシュ表を読み込む必要がある。そのため、メモリ溢れが発生しない場合に比べると、データの分析処理の性能が低下する。
そこで、サーバ装置でのメモリ溢れの発生を防ぎ、データ分析処理の性能向上を目的とする。特に,RDBMSにおけるハッシュ結合によって発生するサーバ装置のメモリ溢れを防ぎ、サーバ装置のCPUリソースの消費量や,サーバ装置とストレージ装置間のネットワークリソースの消費量を削減することなどにより、RDBMSの処理性能を向上することを目的とする。
本発明の一つの観点から、ハッシュ値に基づいて表の結合処理を実行するサーバ装置と当該サーバ装置とネットワークを介して接続されるストレージ装置とを備えるシステムが提供される。当該システムは、サーバ装置が、表の結合処理を実行し、表における結合対象とするデータを指定する第一の情報と、表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、ハッシュ値を指定する第三の情報と、が含まれるコマンドを生成する第一の処理部と、コマンドをネットワークを介してストレージ装置に送信する第一の入出力部と、を有し、ストレージ装置は、複数の表が格納される格納部と、コマンドをネットワークを介して受信する第二の入出力部と、第一の情報に基づいて表を構成するデータのうち結合対象とするデータを選択し、表を構成するデータのうち第二の情報で指定されたデータのハッシュ値を算出し、第三の情報で指定されたハッシュ値を選択する、第二の処理部と、を有し、第二の入出力部は、第三の情報に基づいて選択されたハッシュ値と、当該ハッシュ値に対応し第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をネットワークを介してサーバ装置に送信する。
より好ましくは、ストレージ装置は、テンポラリ領域が確保されるメモリを有し、第二の処理部は、第三の情報に未指定のハッシュ値と当該ハッシュ値に対応し第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をテンポラリ領域に格納する。
更に好ましくは、コマンドはテンポラリ領域の利用要否に関する第四の情報を含み、第二の処理部は、第四の情報に基づいて、第三の情報に未指定のハッシュ値と当該ハッシュ値に対応し第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をテンポラリ領域に格納するか否かを決定する。
更に好ましくは、第二の処理部は、表を構成するデータのうち結合対象とするデータの割合である選択率を算出し、第二の入出力部は選択率をサーバ装置に送信し、第一の処理部は、選択率に基づいてテンポラリ領域の利用要否を決定する。
本発明の別の観点によれば、ハッシュ値に基づいて表の結合処理を実行するサーバ装置とネットワークを介して接続されるストレージ装置が提供される。当該ストレージ装置は、複数の表が格納される格納部と、表における結合対象とするデータを指定する第一の情報と、表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、ハッシュ値を指定する第三の情報と、が含まれるコマンドをネットワークを介してサーバ装置から受信する入出力部と、第一の情報に基づいて表を構成するデータのうち結合対象とするデータを選択し、表を構成するデータのうち第二の情報で指定されたデータのハッシュ値を算出し、第三の情報で指定されたハッシュ値を選択する、処理部と、を有し、入出力部は、第三の情報に基づいて選択されたハッシュ値と、当該ハッシュ値に対応し第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をネットワークを介してサーバ装置に送信する。
本発明によれば、メモリ溢れの発生を防ぎ、データ分析処理の性能を向上させることが可能となる。
本発明のシステム構成の例を示す図である。 本発明の別のシステム構成の例を示す図である。 DBMSの機能の例を示す図である。 表領域管理情報を例示する図である。 表構造情報を例示する図である。 データベース統計情報を例示する図である。 データベースのユーザの端末装置から受信するSQL文の例を示す図である。 SQL実行結果の例を示す図である。 実行プラン作成部が作成した実行プランを例示する図である。 本発明におけるサーバ装置とストレージ装置間で行われる通信フローの一例を示す図である。 外表読み込みコマンドの例を示す図である。 結合処理の決定の動作フローの例を示す図である。 結合方式の判断に用いられる処理コストモデルの例を示す図である。 本発明におけるサーバ装置とストレージ装置間で行われる通信フローの一例を示す図である。 外表第一バケット読み込みコマンドの例を示す図である。 ストレージ装置がデータの選択処理を実行する際に使用するコマンドの例を示す図である。 ストレージ装置がハッシュ表の作成処理を実行する際に使用するコマンドの例を示す図である。 ストレージ装置がハッシュ表からのデータの選択処理,ハッシュ表の一部をテンポラリ領域に格納する処理を実行する際に使用するコマンドの例を示す図である。 コマンドを受信した場合に,ストレージ装置によって実行される処理のフローを例示する図である。 データベースアシスト部の詳細を例示する図である。 図16に示すコマンドを受信した場合のデータベースアシスト部における動作フローの例を示す図である。 図17に示すコマンドを受信した場合のデータベースアシスト部における動作フローの例を示す図である。 図18に示すコマンドを受信した場合のデータベースアシスト部における動作フローの例を示す図である。 外表ハッシュ表の例を示す図である。
本発明は,データベースの処理をアシストするデータベースアシスト部をストレージ装置に設けて,データベースの処理を効率化する。本発明において,ストレージ装置とは,サーバ装置とは別筐体の装置の場合と,サーバ装置の内部に接続される記憶媒体の場合の両方を含む。本発明のデータベースアシスト部は,CPU装置を設置する実現方法と,ハードウェア回路を設置する実現方法と,CPU装置とハードウェア回路の両方を設置する実現方法がある。
本発明のデータベースアシスト部は,リレーションからデータ分析に必要なデータを抽出し,抽出したデータのハッシュ値を計算し,ハッシュ値が特定範囲に含まれるデータをサーバ装置に送信する機能を有する。
また,本発明のデータベースアシスト部は,リレーションからデータ分析に必要なデータを抽出し,抽出したデータのハッシュ値を計算し,ハッシュ値が指定の範囲に含まれるデータをサーバ装置に送信し,ハッシュ値が指定の範囲に含まれないデータを,ストレージ装置のテンポラリ領域に格納する機能を有する。
また,本発明のデータベースアシスト部は,リレーションに含まれる全てのデータのうち,データ分析に必要な割合である選択率を算出し,選択率をサーバ装置に送信する機能を有する。
本発明では,上記のストレージ装置の機能を用いて結合処理を実行する方法を決定する結合方式決定部を設ける。結合方式決定部は,データベースアシスト部から受信した選択率をもとに,結合処理を実行する方法を決定する。
結合方式決定部は,データベースに含まれる実行計画作成部とデータベース統計情報から,ハッシュ結合の対象となるリレーションに関する情報を取得する。結合方式決定部は,データベースアシスト部から受信した選択率と,データベースから受信した情報をもとに,ストレージ装置に送信するコマンドを決定する。
結合方式決定部は,処理コストを算出するためのコストモデルを有する。結合方式決定部は,該コストモデルを用いて処理コストが最小になる方法を選択し,ストレージ装置に送信するコマンドを決定する。
図1は,本発明のシステム構成を例示する図である。図1に示すように,サーバ装置101の内部にストレージ装置102が設置され,サーバ装置101のCPU103とサーバ装置のメモリ104とストレージ装置102がサーバ装置101の内部ネットワーク111によって接続される。メモリ104にはDBMS105が格納される。DBMS105はCPU103によって実行されるプログラムである。ストレージ装置102の内部には,ストレージ装置102のCPU106と,ストレージ装置102のメモリ108と,データベースアシスト部107と,フラッシュメモリ110が設置され,内部ネットワーク111によって接続される。メモリ108には,ストレージ制御プログラム109が格納される。ストレージ制御プログラム109はCPU106によって実行される。図1のシステム構成においては,情報記憶媒体としてフラッシュメモリ110を想定しているが,他の情報記憶媒体を用いてもよい。フラッシュメモリ110には複数の表が格納される。
図2は,図1とは別のシステム構成を例示する図である。図2に示すように,本発明は,サーバ装置101とストレージ装置102が入出力インターフェース202、203を介し、外部ネットワーク201によって接続した構成において実施することも可能である。
図1,図2では,データベースアシスト部107をハードウェアとして実装する構成図を示した。データベースアシスト部107は,プログラムとして実装し,メモリ108に格納してCPU106で実行する実施形態も可能である。
図3はDBMS105の詳細を例示する図である。DBMS105は,端末装置からDBMS105を備えるサーバ装置101に対して送信されるクエリ(データベースに対する処理要求)や当該クエリに基づく実行結果などのデータの送受信を行うユーザ送受信部301,クエリの記述に用いられるSQL文の解析を行うSQL解析部302,SQL文の実行方法を決定する実行プラン作成部303,SQL文の実行を制御する実行制御部304,ストレージ装置とのデータの送受信を行うストレージ送受信部310,表の格納領域情報を格納する表領域管理情報306と,表の構造情報を格納する表構造情報307,データベースの統計情報を格納するデータベース統計情報308,ストレージ装置102から受信した選択率と処理コストモデルをもとに結合方式を決定する結合方式決定部305,データベースの性能情報を格納するデータベース性能情報309,ストレージ装置102とのデータの送受信を実行するストレージ送受信部310を有する。
図4は,表領域管理情報306を例示する図である。表領域管理情報306には,表領域名401,表領域の開始アドレス402,表領域の終了アドレス403が格納される。開始アドレス402と終了アドレス403は,ストレージ装置102とのデータ入出力において使用するアドレスであり,ロジカルブロックアドレスと呼ばれる場合もある。
図5は,表構造情報307を例示する図である。表構造情報307には,表領域名401ごとに,列名501とデータ形式502が格納される。ここに,列名501は,表を構成するカラムの名称であり,データ形式502は,列のデータ型である。
図6は,データベース統計情報308を例示する図である。データベース統計情報308には,表領域名ごとに,行数601,平均行長602,索引有無603が格納される。ここに,行数601は表領域名401に格納されている行の個数であり,平均行長602は表領域名401に格納されている行の平均バイト数,索引有無603は,該当の表に対して索引が作成されているか否かを示す情報である。
データベース性能情報309には,データベース105が利用可能なメモリの容量や,ストレージ装置102の読み出し性能や,ストレージ装置102の書き出し性能が記載される。
図7はユーザ送受信部301が,データベースのユーザの端末装置から受信するSQL文の例である。図7に例示するSQL文701は,PART表とLINEITEM表を結合して,PART表のP_NAMEのカラムと,LINEITEM表のL_LINENUMBERのカラムを取り出す指示である。
図8はユーザ送受信部301が送信するSQL実行結果801の例である。SQL実行結果801には,SQL文701の指示に従ってデータベースで処理を実行した結果が記載される。
SQL解析部302は,ユーザ送受信部301から受信したSQL文701の文法を検査し,SQL文701を実行プラン作成部303に送信する。
実行プラン作成部303は,データベース統計情報308を参照して,受信したSQL文701の実行方法を決定する。
図9は実行プラン作成部303が作成した実行プラン901を例示する図である。実行プラン901は複数のステップ902で構成される。それぞれのステップ902を順に実行することで,SQL文701に指定された処理が実行される。
実行プラン901のステップ1では,PART表をREADしHASH表を作成する処理が指定されている。この際の選択条件は「P_SIZE=3」であり,結合列は「P_PARTKEY」,抽出列は「P_NAME」であることが記載されている。実行プラン901のステップ2では,LINEITEM表をREADしHASH表を作成する処理が指定されている。この際の選択条件は「L_SUPPKEY」であり抽出列は「L_LINENUMBER」であることが指定されている。実行プラン901のステップ3には,結合方式決定部305が結合方式を決定する処理を行うことが記載されている。実行プラン901のステップ4では,PART表とLINITEM表を結合する処理が指定されている。この際の結合条件は「P_PARTKEY=L_PARTKEY」であり,抽出列はP_NAMEとL_LINENUMBERであることが指定されている。
図10は図9のSTEP1及びSTEP2を実行するために,サーバ装置101とストレージ装置102の間で行われる通信を示すフロー図である。外表読み込みコマンド1001は,外表が格納されているアドレス,選択条件,ハッシュ値を検索するカラムの指定,カラムの抽出条件を含む。コマンド1001や他のコマンドは実行制御部304により生成される。図11は,外表読み込みコマンド1001を例示する図である。開始アドレス1101と終了アドレス1102は,表領域管理情報306からPART表が格納されているアドレスを参照することで決定する。選択条件1103は外表の選択条件「P_SIZE=3」を示しており,行データの先頭から123バイト目から131バイト目を「3」と比較することを示している。ハッシュ値を計算するカラム1104は,行データの0バイト目から7バイト目でハッシュ値を計算することを示している。抽出条件1105は,行データの8バイト目から63バイト目を抽出することを示している。
コマンドを受信したストレージ装置102は,データ選択1002とハッシュ値計算1003を実行して,ハッシュ値と当該ハッシュ値に対応し抽出条件1105で抽出されたデータとから構成される外表ハッシュ表と選択率の送信1004を実行する。送信1004によって受信したデータはメモリ104に格納される。図24に外表ハッシュ表の例では,結合列ハッシュ値はP_PARTKEYから算出されたハッシュ値が格納され,抽出されたデータには,該当行のP_NAMEの値が格納される。選択率とは、表に含まれる全ての行(又はデータ)のうち、結合の対象となる行(又はデータ)の割合、即ち、表に含まれる全ての行のうち選択条件1103に合致する行の割合のことをいう。ストレージ装置102の動作については,図16以降で説明する。
内表読み込みコマンド1211は,内表が格納されているアドレス,選択条件,ハッシュ値を検索するカラムの指定,カラムの抽出条件を含む。コマンドを受信したストレージ装置102は,データ選択1212とハッシュ値計算1213を実行して,外表ハッシュ表と選択率の送信1214を実行する。送信1214によって受信したデータはメモリ104に格納される。ストレージ装置102の動作については,図16以降で説明する。
ストレージ装置102から内表ハッシュ表と選択率を受信したサーバ装置101は,結合処理の決定1215を実行する。
図12は,結合処理の決定1215を実行する結合方式決定部305の動作を示すフローチャートである。結合方式決定部305は,判断1202において,サーバ装置のメモリ溢れが発生するか否かを判定する。これは,データベース性能情報309に記載されたデータベースが利用できるメモリ容量と,外表ハッシュ表と選択率の送信1004で受信したハッシュ表のサイズを比較することで判断する。メモリ溢れが発生すると判定した場合、結合方式決定部305は,処理1203において,バケット数を算出する。バケット数とは,ハッシュ表の容量が,DBMS105が利用可能なメモリ容量の何倍かを示す数値である。バケット数Xは,DBMS105が利用可能なメモリ容量Mと外表ハッシュ表のサイズHを用いて,X=↑H/M↑で計算される。ここに,↑・↑は整数値への繰り上げを表す。メモリ溢れが発生しないと判定した場合はSTEP3の処理を終了し、受信した外表ハッシュ表と内表ハッシュ表を用いて結合処理1413を行う。
結合方式の決定1204において,結合方式決定部305は,処理コストモデルを用いて結合方式を決定する。図13は,結合方式判断部305が用いる処理コストモデル1301の例である。処理コストモデル1301には,結合方式1302と,READ量1303とWrite量1304が記載される。結合方式1302としては,外表と内表に関して,テンポラリ領域を使用するか使用しないかの選択を行う。Read量は,該当方式を選択した場合に実行されるストレージ装置からReadするデータ量である。Write量は,該当方式を選択した場合に実行されるストレージ装置へのWrite量である。
図13において,Aは外表のサイズ,Bは内表のサイズを表す。これらは,表領域管理情報306を参照することで決定できる。Xはバケット数である。αは外表ハッシュ表と選択率の送信1004によって受信した外表の選択率である。βは内表ハッシュ表と選択率の送信1204によって受信した内表の選択率である。
結合方式決定部305,図13の処理コストモデル1301と,データベース性能情報308に記載されたストレージ装置102の読み出し性能や,ストレージ装置102の書き出し性能を参照して,処理コストが最小になる方式を選択する。例えば,読み出し性能と書き出し性能の比が1対10であれば,処理コストモデル1301のRead量に1を乗じた値と,処理コストモデル1301のWrite量に10を乗じた値を合算し,結合方式の処理コストを算出する。
図14は図9のステップ4を実行するために,サーバ装置101とストレージ装置102の間で行われる通信を示すフロー図である。サーバ装置101は,外表第一バケット読み込みコマンド1401をサーバ装置102に送信する。
図15は外表第一バケット読み込みコマンド1401の詳細を事例する図である。外表第一バケット読み込みコマンドには,外表の開始アドレス1501,外表の終了アドレス1502,外表の選択条件1503,ハッシュ値を計算するカラム1504,抽出条件1505,テンポラリ領域格納有無1506,テンポラリ領域開始アドレス1507,テンポラリ領域終了アドレス1508,ハッシュ値下限1509,ハッシュ値上限1510を記載する。
結合方式決定部305がテンポラリ領域使用ありを選択した場合は,テンポラリ領域格納有無1505にありを記載し,結合方法決定部305がテンポラリ領域使用なしを選択した場合には,テンポラリ領域格納有無1505になしを記載する。
外表第一バケット読み込みコマンド1401を受信したストレージ装置102は,データ選択1402,ハッシュ値計算1403,ハッシュ値選択1404,テンポラリ領域格納有無1506がありの場合はテンポラリ領域にハッシュ表を格納1405の動作を行う。ハッシュ値選択1404では,外表第一バケット読み込みコマンド1401に記載されたハッシュ値下限1509とハッシュ値上限1510に従い,この範囲のデータのハッシュ表はサーバ装置101に送信する(1406)。ハッシュ値の範囲に含まれないデータのハッシュ表に関しては,テンポラリ領域格納有無1505にありが記載されている場合にはテンポラリ領域に格納し,テンポラリ領域格納有無1505になしが記載されている場合には,テンポラリ領域に格納しない。
サーバ装置101は,内表第一バケット読み込みコマンド1407をストレージ装置に送信する。内表第一バケット読み込みコマンド1407の詳細は,外表第一バケット読み込みコマンド1401と同様である。結合方式判断部305がテンポラリ領域使用ありを選択した場合は,テンポラリ領域格納有無1505にありを記載し,結合方法判断部305がテンポラリ領域使用なしを選択した場合には,テンポラリ領域格納有無1505になしを記載する。
サーバ装置101は,外表ハッシュ表と内表ハッシュ表を用いて結合処理1413を行う。ハッシュ表を用いた結合処理に関しては,特許文献2などに記載されている。
以降,サーバ装置101は,バケットの個数だけ外表と内表の読み込みを繰り返す。但し,1回目の表の読み込みで,テンポラリ領域格納有無1505にありを指定した場合には,図15に示したコマンドの開始アドレス1501と終了アドレス1502にテンポラリ領域のアドレスを指定する。外表や内表からハッシュ表を作成する必要はなく,テンポラリ領域に格納されているハッシュ表から必要な情報を取得することができる。
ストレージ装置102は,一般に,データのReadやWriteの処理を実行する。データのReadとはフラッシュメモリ110に格納されたデータをサーバ装置101に送信する処理である。データのWriteとは,サーバ装置101から受信したデータをフラッシュメモリ101に格納する処理である。
データのReadとWriteの処理に加えて,本発明のストレージ装置102は,データの選択処理,ハッシュ表の作成処理,ハッシュ表からのデータの選択処理,および,ハッシュ表の一部をテンポラリ領域に格納する処理,を実行する機能を備える。
これらの機能を実行するために,サーバ装置101がストレージ装置102に送信するコマンドの例を図16,図17,図18に示す。図16は,ストレージ装置102がデータの選択処理を実行する際に使用するコマンドの例である。図16に示すように,コマンドには,オペレーションコード1601,選択対象データの開始アドレス1602,選択対象データの終了アドレス1603,選択条件1604,列を抽出するための列抽出条件1605,および,結果を格納するためのサーバ装置101のメモリアドレスである結果格納メモリアドレス1606が含まれる。
図17は,ストレージ装置102がハッシュ表の作成処理を実行する際に使用するコマンドの例である。図17に示すように,コマンドには,オペレーションコード1701,選択対象データの開始アドレス1702,選択対象データの終了アドレス1703,選択条件1704,ハッシュ値を計算するカラムを指定するハッシュ値を計算するカラム1705,列を抽出するための列抽出条件1706,および,結果を格納するためのサーバ装置101のメモリアドレスである結果格納メモリアドレス1706が含まれる。
図18は,ストレージ装置102がハッシュ表からのデータの選択処理,および,ハッシュ表の一部をテンポラリ領域に格納する処理を実行する際に使用するコマンドの例である。図18に示すように,コマンドには,オペレーションコード1812,選択対象データの開始アドレス1801,選択対象データの終了アドレス1802,選択条件1803,ハッシュ値を計算するカラムを指定するハッシュ値を計算するカラム1804,列を抽出するための列抽出条件1805,テンポラリ領域への格納をするかしないかを指定するテンポラリ領域格納有無1806,テンポラリ領域開始アドレス1807,テンポラリ領域終了アドレス1808,サーバ装置101に送信するハッシュ値の下限を指定するハッシュ値下限1809,サーバ装置101に送信するハッシュ値の上限を指定するハッシュ値上限1810,および,結果を格納するためのサーバ装置101のメモリアドレスである結果格納メモリアドレス1811が含まれる。
サーバ装置101からコマンドを受信したストレージ装置102はコマンドの内容に従った処理を実行する。コマンドがRead処理の場合,ストレージ制御プログラム109はコマンドに指定されたデータをフラッシュメモリ110から読み込み,サーバ装置101に送信する。コマンドがWrite処理の場合,ストレージ制御プログラム109は,サーバから受信したデータをフラッシュメモリ110に格納する。
図19は,ストレージ装置102がサーバ装置101からコマンドを受信した場合に,ストレージ制御プログラム109によって実行される処理のフローを例示する図である。ストレージ制御プログラム109は,判断1902において,コマンドがRead処理またはWrite処理かの判断を行う。コマンドがRead処理またはWrite処理の場合、ストレージ制御プログラム109は,処理1903においてRead処理またはWrite処理を実行する。コマンドがRead処理またはWrite処理ではない場合、ストレージ制御プログラム109は,処理1904において,コマンドをデータベースアシスト部107に送信する。ストレージ制御プログラム109は,処理1905において,コマンドに指定されたデータをデータベースアシスト部107に送信する。ストレージ制御プログラム109は,処理1906において,データベースアシスト部107に対して処理開始の指示を送信する。
図20はデータベースアシスト部107の詳細を例示する図である。データベースアシスト部107は,ストレージ制御プログラム109から受信したデータを格納する入力データ格納メモリ2001,ストレージ制御プログラム109から受信したコマンドを格納するコマンド格納メモリ2002,コマンドに記載された選択条件に従ってデータを選択する行データ選択部2003,行データ選択部2003が選択したデータの割合を算出する選択率算出部2004,コマンドに記載された列抽出条件に従ってデータから列データを抽出する列データ選択部2005,コマンドに指定された列のハッシュ値を算出するハッシュ値算出部2006,コマンドに記載された範囲のハッシュ値を選択するハッシュ値選択部2007,サーバ装置101に送信するデータを格納するサーバ送信データ格納メモリ2008,テンポラリ領域が確保されるテンポラリ領域格納メモリ2009,処理終了を通知する処理終了通知部2010を有する。
図21はデータベースアシスト部107が,ストレージ制御プログラム109から図16に示すコマンドを受信した場合の動作を示すフローチャートである。処理2102において,行データ選択部2003は入力データ格納メモリ2001からデータを読み込む。処理2103において,行データ選択部2003は選択条件に従い,処理2102で読み込んだデータから選択したデータを列抽出部2005に送信する。処理2104において,列抽出部2005は列抽出条件に従い,列データを抽出し,サーバ送信データ格納メモリ2008に格納する。処理2105において,行データ選択部2003は読み込んだデータの個数と,選択したデータの個数を選択率算出部2004に送信する。処理2106において選択率算出部2004は選択率を算出し,サーバ送信データ格納メモリ2008に格納する。ここに,選択率は,選択したデータの個数を読み込んだデータの個数で除算して得られた値である。処理2107において,処理終了通知部2010がストレージ制御プログラム109に処理終了を通知する。処理終了の通知を受けたストレージ制御プログラム109は,サーバ送信データ格納メモリ2008に格納されたデータをサーバ装置101に送信する。
図22はデータベースアシスト部107が,ストレージ制御プログラム109から図17に示すコマンドを受信した場合の動作を示すフローチャートである。処理2202において,行データ選択部2003は入力データ格納メモリ2001からデータを読み込む。処理2203において,行データ選択部2003は選択条件に従い,処理2202で読み込んだデータから選択したデータを列抽出部2005に送信する。処理2204において,列抽出部2005は列抽出条件に従い,列データを抽出し,ハッシュ値算出部2006に送信する。処理2205において,行データ選択部2003は読み込んだデータの個数と,選択したデータの個数を選択率算出部2004に送信する。処理2206において選択率算出部2004は選択率を算出し,サーバ送信データ格納メモリ2008に格納する。処理2207において,ハッシュ値算出部2006はハッシュ値を算出する列の指定に従いハッシュ値を算出し,算出したハッシュ値と列データをサーバ送信データ格納メモリ2008に格納する。ここにハッシュ値の算出とは,列のデータをあらかじめ設定された値で除算し剰余を算出する演算である。処理2208では,処理終了通知部2010がストレージ制御プログラム109に処理終了を通知する。処理終了の通知を受けたストレージ制御プログラム109は,サーバ送信データ格納メモリ2008に格納されたデータをサーバ装置101に送信する。
図23はデータベースアシスト部107が,ストレージ制御プログラム109から図18に示すコマンドを受信した場合の動作を示すフローチャートである。処理2302において,行データ選択部2003は入力データ格納メモリ2001からデータを読み込む。処理2303において,行データ選択部2003は選択条件に従い,処理2302で読み込んだデータから選択したデータを列抽出部2005に送信する。処理2304において,列抽出部2005は列抽出条件に従い,列データを抽出し,ハッシュ値算出部2006に送信する。処理2305において,行データ選択部2003は読み込んだデータの個数と,選択したデータの個数を選択率算出部2004に送信する。処理2306において選択率算出部2004は選択率を算出し,サーバ送信データ格納メモリ2008に格納する。処理2307において,ハッシュ値算出部2006はハッシュ値を算出する列の指定に従いハッシュ値を算出し,算出したハッシュ値と列データをハッシュ値算出部2007に送信する。ここにハッシュ値の算出とは,列のデータをあらかじめ設定された値で除算し剰余を算出する演算である。処理2308において,ハッシュ値算出部は,ハッシュ値の上限と下限に従いサーバ装置101に送信するデータとハッシュ値をサーバ送信データ格納メモリ2008に格納し,サーバ装置101に送信しないデータとハッシュ値をテンポラリ領域格納メモリ2009に格納する。処理2309では,処理終了通知部2010がストレージ制御プログラム109に処理終了を通知する。処理終了の通知を受けたストレージ制御プログラム109は,サーバ送信データ格納メモリ2008に格納されたデータをサーバ装置101に送信する。また、ストレージ装置102がサーバ装置101から受信したコマンドのテンポラリ領域格納有無1806に「あり」の指定が有る場合は、処理終了の通知を受けたストレージ制御プログラム109は,テンポラリ領域格納メモリ2009のテンポラリ領域開始アドレス1807とテンポラリ領域終了アドレス1808に指定されたアドレスの範囲に格納されたデータを送信する。
101…サーバ装置
102…ストレージ装置
103…CPU
104…メモリ
105…データベース
106…CPU
107…データベースアシスト部
108…メモリ
109…ストレージ制御プログラム
110…フラッシュメモリ
111…内部ネットワーク

Claims (13)

  1. ハッシュ値に基づいて表の結合処理を実行するサーバ装置と該サーバ装置とネットワークを介して接続されるストレージ装置とを備えるシステムであって、
    前記サーバ装置は、
    前記表の結合処理を実行し、前記表における結合対象とするデータを指定する第一の情報と、前記表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、前記ハッシュ値を指定する第三の情報と、が含まれるコマンドを生成する第一の処理部と、
    前記コマンドを前記ネットワークを介して前記ストレージ装置に送信する第一の入出力部と、を有し、
    前記ストレージ装置は、
    複数の表が格納される格納部と、
    前記コマンドを前記ネットワークを介して受信する第二の入出力部と、
    前記第一の情報に基づいて前記表を構成するデータのうち結合対象とするデータを選択し、前記表を構成するデータのうち前記第二の情報で指定されたデータの前記ハッシュ値を算出し、前記第三の情報で指定された前記ハッシュ値を選択する、第二の処理部と、を有し、
    前記第二の入出力部は、前記第三の情報に基づいて選択された前記ハッシュ値と、該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記ネットワークを介して前記サーバ装置に送信する、ことを特徴とするシステム。
  2. 請求項1に記載のシステムであって、
    前記ストレージ装置は、テンポラリ領域が確保されるメモリを有し、
    前記第二の処理部は、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納する、ことを特徴とするシステム。
  3. 請求項2に記載のシステムであって、
    前記コマンドは前記テンポラリ領域の利用要否に関する第四の情報を含み、
    前記第二の処理部は、前記第四の情報に基づいて、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納するか否かを決定する、ことを特徴とするシステム。
  4. 請求項3に記載のシステムであって、
    前記第二の処理部は、前記表を構成するデータのうち結合対象とするデータの割合である選択率を算出し、
    前記第二の入出力部は前記選択率を前記サーバ装置に送信し、
    前記第一の処理部は、前記選択率に基づいて前記テンポラリ領域の利用要否を決定する、
    ことを特徴とするシステム。
  5. ハッシュ値に基づいて表の結合処理を実行するサーバ装置とネットワークを介して接続されるストレージ装置であって、
    複数の表が格納される格納部と、
    前記表における結合対象とするデータを指定する第一の情報と、前記表における前記ハッシュ値の計算対象となるデータを指定する第二の情報と、前記ハッシュ値を指定する第三の情報と、が含まれるコマンドを前記ネットワークを介して前記サーバ装置から受信する入出力部と、
    前記第一の情報に基づいて前記表を構成するデータのうち結合対象とするデータを選択し、前記表を構成するデータのうち前記第二の情報で指定されたデータのハッシュ値を算出し、前記第三の情報で指定された前記ハッシュ値を選択する、処理部と、を有し、
    前記入出力部は、前記第三の情報に基づいて選択された前記ハッシュ値と、該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記ネットワークを介して前記サーバ装置に送信する、ことを特徴とするストレージ装置。
  6. 請求項5に記載のストレージ装置であって、
    テンポラリ領域が確保されるメモリを有し、
    前記処理部は、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納する、ことを特徴とするストレージ装置。
  7. 請求項6に記載のストレージ装置であって、
    前記コマンドは前記テンポラリ領域の利用要否に関する第四の情報を含み、
    前記処理部は、前記第四の情報に基づいて、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納するか否かを決定する、ことを特徴とするストレージ装置。
  8. 請求項7に記載のストレージ装置であって、
    前記処理部は、前記表を構成するデータのうち結合対象とするデータの割合である選択率を算出し、
    前記入出力部は前記選択率を前記サーバ装置に送信する、ことを特徴とするストレージ装置。
  9. ハッシュ値に基づいて表の結合処理を実行するサーバ装置とストレージ装置における
    データベース管理方法であって、
    前記サーバ装置は、
    前記表の結合処理を実行し、
    前記表における結合対象とするデータを指定する第一の情報と、前記表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、前記ハッシュ値を指定する第三の情報と、が含まれるコマンドを生成し、
    前記コマンドを前記ネットワークを介して前記ストレージ装置に送信し、
    前記ストレージ装置は、
    前記コマンドを受信し、
    前記第一の情報に基づいて前記ストレージ装置が記憶する前記表を構成するデータのうち結合対象とするデータを選択し、
    前記表を構成するデータのうち前記第二の情報で指定されたデータの前記ハッシュ値を算出し、
    前記第三の情報で指定された前記ハッシュ値を選択し、
    前記第三の情報に基づいて選択された前記ハッシュ値と、該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記サーバ装置に送信する、ことを特徴とするデータベース管理方法。
  10. 請求項9に記載のデータベース管理方法であって、
    前記ストレージ装置は、
    前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をテンポラリ領域に格納する、ことを特徴とするデータベース管理方法。
  11. 請求項10に記載のデータベース管理方法であって、
    前記コマンドは前記テンポラリ領域の利用要否に関する第四の情報を含み、
    前記ストレージ装置は、前記第四の情報に基づいて、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納するか否かを決定する、ことを特徴とするデータベース管理方法。
  12. 請求項11に記載のデータベース管理方法であって、
    前記ストレージ装置は、
    前記表を構成するデータのうち結合対象とするデータの割合である選択率を算出し、
    前記選択率を前記サーバ装置に送信し、
    前記サーバ装置は、前記選択率に基づいて前記テンポラリ領域の利用要否を決定する、ことを特徴とするデータベース管理方法。
  13. ハッシュ値に基づいて表の結合処理を実行するサーバ装置であって、
    前記表の結合処理を実行し、前記表における結合対象とするデータを指定する第一の情報と、前記表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、前記ハッシュ値を指定する第三の情報と、が含まれるコマンドを生成する第一の処理部と、
    ストレージ装置と、
    該ストレージ装置から受信したデータを格納するメモリと、を有し、
    前記ストレージ装置は、
    複数の表が格納される格納部と、
    前記コマンドに含まれる前記第一の情報に基づいて前記表を構成するデータのうち結合対象とするデータを選択し、前記表を構成するデータのうち前記第二の情報で指定されたデータの前記ハッシュ値を算出し、前記第三の情報で指定された前記ハッシュ値を選択する、第二の処理部と、
    前記第三の情報に基づいて選択された前記ハッシュ値と、該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記メモリに送信させる第三の処理部と、を有することを特徴とするサーバ装置。
JP2016512523A 2014-04-09 2014-04-09 データベースのハッシュ結合処理をストレージ装置が実行するシステム Expired - Fee Related JP6158430B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/060238 WO2015155846A1 (ja) 2014-04-09 2014-04-09 データベースのハッシュ結合処理をストレージ装置が実行するシステム

Publications (2)

Publication Number Publication Date
JPWO2015155846A1 JPWO2015155846A1 (ja) 2017-04-13
JP6158430B2 true JP6158430B2 (ja) 2017-07-05

Family

ID=54287449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016512523A Expired - Fee Related JP6158430B2 (ja) 2014-04-09 2014-04-09 データベースのハッシュ結合処理をストレージ装置が実行するシステム

Country Status (2)

Country Link
JP (1) JP6158430B2 (ja)
WO (1) WO2015155846A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6695973B2 (ja) * 2016-06-28 2020-05-20 株式会社日立製作所 計算機システム及びデータベース管理方法
US11016978B2 (en) 2019-09-18 2021-05-25 Bank Of America Corporation Joiner for distributed databases
US11126401B2 (en) 2019-09-18 2021-09-21 Bank Of America Corporation Pluggable sorting for distributed databases
CN113157203A (zh) * 2021-01-19 2021-07-23 湖南汽车工程职业学院 一种网络计算机的存储方法

Also Published As

Publication number Publication date
JPWO2015155846A1 (ja) 2017-04-13
WO2015155846A1 (ja) 2015-10-15

Similar Documents

Publication Publication Date Title
US9798774B1 (en) Graph data search method and apparatus
CN110032604B (zh) 数据存储装置、转译装置及数据库访问方法
US10860539B2 (en) De-duplication-based remote replication method, and apparatus
CN106611044B (zh) 一种sql优化方法及设备
JP6158430B2 (ja) データベースのハッシュ結合処理をストレージ装置が実行するシステム
CN105653560B (zh) 数据归档方法和装置
WO2015110062A1 (zh) 一种分布式数据存储方法、装置和系统
CN102902763B (zh) 关联、检索信息处理数据和处理信息任务的方法及装置
JP6070936B2 (ja) 情報処理装置、情報処理方法及びプログラム
US11030196B2 (en) Method and apparatus for processing join query
JP7098327B2 (ja) 情報処理システム、関数作成方法および関数作成プログラム
CN105989015B (zh) 一种数据库扩容方法和装置以及访问数据库的方法和装置
JP6167187B2 (ja) クエリ生成方法及びクエリ生成装置
WO2020215689A1 (zh) 一种列存储文件的查询方法及查询装置
KR20170037950A (ko) 네트워크 지불을 제어하는 방법 및 장치
WO2020008991A1 (ja) 検証自動化装置、検証自動化方法、およびコンピュータ読み取り可能な記録媒体
JP5713652B2 (ja) データ検索装置、方法、及びプログラム
JP6262505B2 (ja) 分散型データ仮想化システム、クエリ処理方法及びクエリ処理プログラム
CN105610899A (zh) 一种文本文件并行上传方法及装置
CN109063210B (zh) 存储系统的资源对象查询方法、装置、设备及存储介质
US20090276404A1 (en) Method and system for efficient data structure for reporting on indeterminately deep hierarchies
CN114328606B (zh) Sql执行效率的提高方法、设备及存储介质
US9679015B2 (en) Script converter
KR101680945B1 (ko) 조인 연산을 위한 매핑 방법 및 리듀싱 방법,및 그 방법들을 이용한 장치들
CN113377791A (zh) 一种数据处理方法、系统及计算设备

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170111

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170113

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170607

R150 Certificate of patent or registration of utility model

Ref document number: 6158430

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees