JP2019101595A - データベース管理システム及び方法 - Google Patents

データベース管理システム及び方法 Download PDF

Info

Publication number
JP2019101595A
JP2019101595A JP2017229890A JP2017229890A JP2019101595A JP 2019101595 A JP2019101595 A JP 2019101595A JP 2017229890 A JP2017229890 A JP 2017229890A JP 2017229890 A JP2017229890 A JP 2017229890A JP 2019101595 A JP2019101595 A JP 2019101595A
Authority
JP
Japan
Prior art keywords
chunk
store
conversion
data
priority
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.)
Granted
Application number
JP2017229890A
Other languages
English (en)
Other versions
JP6707754B2 (ja
Inventor
太郎 藤本
Taro Fujimoto
太郎 藤本
卓也 磯崎
Takuya Isozaki
卓也 磯崎
清水 晃
Akira Shimizu
清水  晃
和生 合田
Kazuo Aida
和生 合田
悠登 早水
Yuto Hayamizu
悠登 早水
喜連川 優
Masaru Kiregawa
優 喜連川
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
University of Tokyo NUC
Original Assignee
Hitachi Ltd
University of Tokyo NUC
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, University of Tokyo NUC filed Critical Hitachi Ltd
Priority to JP2017229890A priority Critical patent/JP6707754B2/ja
Priority to US16/135,000 priority patent/US11074271B2/en
Publication of JP2019101595A publication Critical patent/JP2019101595A/ja
Application granted granted Critical
Publication of JP6707754B2 publication Critical patent/JP6707754B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/23Updating
    • G06F16/2393Updating materialised views
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】高頻度にインポート処理を実行しつつ消費電力低減のためのデータ変換処理を実行する。【解決手段】データベース管理システム(DBMS)は、データベースの表のストア形式を変換する変換要求に応答して、表のストア形式を示す情報(ベースタイプ)が示すストア形式を当該変換要求に従うストア形式に変更する処理(ベースタイプ変更処理)を実行し、当該処理と非同期にデータ変換処理を実行する。ベースタイプ変更処理後のインポート処理では、DBMSは、変更後のベースタイプが示しているストア形式のチャンクを表にインポートする。データ変換処理では、DBMSは、ベースタイプが示すストア形式と異なるストア形式のチャンクをベースタイプが示すストア形式のチャンクに変換する。【選択図】図1

Description

本発明は、概して、データ処理に関し、例えば、データベース管理に関する。
近年、データ量が増加している。例えば、頻繁に発生するセンサデータをビッグデータとして活用するシステムが知られている。
このようにデータ量が増加すると、消費記憶容量(例えば、設置される記憶デバイスの数)の増加、又は、プロセッサ使用率の増加が見込まれ、結果として、データ処理に関して消費電力の増加が見込まれる。
データ量の増加に関わらず消費電力を低減する技術が望まれる。
例えば、データベース管理では、通常、ローストア形式よりもカラムストア形式の方が、消費電力の低減が期待できる。なぜなら、一般に、圧縮効果が高いため、設置される記憶デバイスの増加やプロセッサの使用率の増加を低減することが期待できるからである。
そこで、データベース内のローストア表(ローストア形式で格納されている表)をカラムストア表(カラムストア形式で格納された表)に変換するデータ変換処理(例えば、非特許文献1の第2頁に開示の処理)を適宜実行することが考えられる。
Jim Seeger, Tan Jin Xu, and PrashanthiniShivanna, "Convert row-organized tables to column-organizedtables in DB2 10.5with BLU Acceleration", developerWorks, IBM Corporation(https://www.ibm.com/developerworks/library/dm-1406convert-table-db2105/dm-1406convert-table-db2105-pdf.pdf)
データ変換処理中であっても検索要求に応答して検索処理を実行することは可能である。変換元であるローストア表を検索対象とすることができるからである。
しかし、データ変換処理中に、データ変換対象の表にデータをインポート(追加)するインポート処理を実行することはできない。データベースの整合性を維持するためである。
センサデータのように頻繁に(例えば毎分)データが発生する場合、高頻度に(例えば数分毎に)インポート処理を行うことが望まれる。一方、表のサイズは一般に大きく、データ変換処理に長時間(例えば、数時間〜数十時間)要する。このため、高頻度にインポート処理を実行しつつ消費電力低減のためにデータ変換処理を実行することはできない。
このような課題を避けるために、全ての表を最初からカラムストア形式で格納することが考えられる。
しかし、カラムストア形式で表を格納することが常に消費電力低減に貢献するとは限らない。例えば、ローストア表の方がカラムストア表よりも処理コストが低いことがある。また、例えば、幾つかのローストア形式があるが、処理コストが低いローストア形式が表によって異なることもある。このような理由から、全ての表を最初からカラムストア形式で格納したとしても、カラムストア表をローストア表に変換するデータ変換処理や、或るカラムストア表(或るカラムストア形式で格納された表)を別のカラムストア表(別のカラムストア形式で格納された表)に変換するデータ変換処理が必要になり得る。
このように、全ての表を最初からカラムストア形式で格納したとしても、データ変換処理は発生し得る。このため、高頻度にインポート処理を実行しつつ消費電力低減のためのデータ変換処理を実行することができないことを必ずしも避けられるとは限らない。データ変換処理を実行するのであれば、インポート処理を停止する必要がある。インポート処理が長時間停止すると、検索要求のような要求に応答して行われる処理の対象は、長時間インポート処理がされていない(例えば新しいデータが追加されていない)古い表であり、結果として、要求に対して最新の応答を返すことができない。
同様の課題は、表以外のデータについてもあり得るし、データベース管理以外のデータ処理についてもあり得る。
データベース管理システム(以下、DBMS)は、データベースの表のストア形式を変換する要求である変換要求に応答して、表のストア形式を示す情報であるベースタイプが示すストア形式を当該変換要求に従うストア形式に変更する処理であるベースタイプ変更処理を実行する。DBMSは、実際のデータ変換処理についてはベースタイプ変更処理と非同期に実行する。
DBMSは、定期的に(又は不定期的に)、ベースタイプが示しているストア形式のチャンクを表にインポートする処理であるインポート処理を実行するようになっている。ベースタイプ変更処理後のインポート処理では、DBMSは、変更後のベースタイプが示しているストア形式のチャンクを表にインポートする。このため、この時点では、表には、変更前のベースタイプが示すストア形式(例えばローストア形式)のチャンクと、変更後のベースタイプが示すストア形式(例えばカラムストア形式)のチャンクとが混在する。
データ変換処理では、DBMSは、表における全チャンクのうち、ベースタイプが示すストア形式と異なるストア形式のチャンクである未変換チャンクを、ベースタイプが示すストア形式のチャンクに変換する。
高頻度にインポート処理を実行しつつ消費電力低減のためのデータ変換処理を実行することができる。
実施例1の概要を示す。 実施例1に係るDBサーバの構成を示す。 インポート処理の一例の概要を示す。 パージ処理の一例の概要を示す。 ベースタイプ変更処理の一例の概要を示す。 データ変換処理の一例の概要を示す。 データ変換処理の別の幾つかの例を示す。 優先度観点の一例と、ローストア形式をカラムストア形式に変換するデータ変換処理での変換優先度との関係の一部を示す。 上記の関係の残りを示す。 インポート処理の流れを示す。 パージ処理の流れを示す。 データ変換処理の流れを示す。 検索処理の流れを示す。 更新処理の流れを示す。 実施例2の概要を示す。 実施例2に係る表定義管理テーブルの構成を示す。 実施例2に係るチャンク管理テーブルの構成を示す。 優先度観点“アーカイブ時刻”と、ローストア形式をカラムストア形式に変換するデータ変換処理での変換優先度との関係を示す。 補助データの付加に関わる処理の流れの一例を示す。 優先度観点指定UI(ユーザインターフェース)の一例を示す。
以下の説明では、データベースを「DB」、データベース管理システムを「DBMS」と言うことがある。DBサーバは、例えばDBMSを実行するサーバである。DBMSに対するクエリの発行元は、DBMSの外部のコンピュータプログラム(例えばアプリケーションプログラム)でよい。外部のコンピュータプログラムは、DBサーバ内で実行されるプログラムでもよいし、DBサーバに接続された装置(例えばクライアント計算機)で実行されるプログラムでもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号(又は参照符号における共通番号)を使用し、同種の要素を区別して説明する場合は、その要素に割り振られたID(又はその要素の参照符号)を使用することがある。
また、以下の説明では、「インターフェース部」は、1以上のインターフェースである。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ部」は、1以上のメモリである。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサである。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部又は全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「PDEV」は、物理的な記憶デバイスを意味し、典型的には、HDD(Hard Disk Drive)又はSSD(Solid State Drive)のような不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。
また、以下の説明では、「kkk部」の表現にて機能を説明することがあるが、機能は、1以上のコンピュータプログラムがプロセッサ部によって実行されることで実現されてもよいし、1以上のハードウェア回路(例えばFPGA又はASIC(Application Specific Integrated Circuit))によって実現されてもよい。プログラムがプロセッサ部に実行されることによって機能が実現される場合、定められた処理が、適宜にメモリ部及び/又はインターフェース部を用いながら行われるため、機能はプロセッサ部の少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサ部あるいはそのプロセッサ部を有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が1つの機能にまとめられたり、1つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「xxx管理テーブル」といった表現にて管理情報を説明することがあるが、管理情報は、どのようなデータ構造で表現されていてもよい。すなわち、管理情報がデータ構造に依存しないことを示すために、「xxx管理テーブル」を「xxx管理情報」と言うことができる。また、以下の説明において、各管理テーブルの構成は一例である。少なくとも1つの管理テーブルについて、全ての情報項目(例えば行又は列)が必須でなくてもよく、更なる情報項目があってもよいし、少なくとも1つの情報項目がなくてもよい。また、1つの管理テーブルは、2以上の管理テーブルに分割されてもよいし、2以上の管理テーブルの全部又は一部が1つの管理テーブルであってもよい。
また、以下の説明では、「計算機システム」は、サーバシステムとストレージシステムのうちの少なくとも1つでよい。「サーバシステム」は、1以上の物理的なサーバ(例えばサーバのクラスタ)であってもよいし、少なくとも1つの仮想的なサーバ(例えばVM(Virtual Machine))を含んでもよい。また、「ストレージシステム」は、1以上の物理的なストレージ装置であってもよいし、少なくとも1つの仮想的なストレージ装置(例えばSDS(Software Defined Storage))を含んでもよい。
以下、図面を参照しながら、幾つかの実施例を説明する。なお、以下の説明により本発明が限定されるものではない。
図1は、実施例1の概要を示す。
DBMS115が、表181のストア形式を変換する変換要求を受けた場合、当該変換要求に応答して、ベースタイプ(表のストア形式を示す情報)303が示すストア形式を当該変換要求に従うストア形式に変更するベースタイプ変更処理を実行する。しかし、DBMS115は、データ変換処理を実行しない。DBMS115は、データ変換処理を、ベースタイプ変更処理と非同期に実行するようになっている。なお、ベースタイプ303は、表毎の定義に関する情報を保持する表定義管理テーブル129に格納されている。表定義管理テーブル129は、DBMS115によって管理されている。表定義管理テーブル129は、表毎に、後述のストア状態304も保持する。
DBMS115が、表181にデータをインポートするインポート処理を定期的に(又は不定期的に)実行するようになっている。以下、データのインポート単位を「チャンク」と呼ぶ。インポート処理は、データ変換処理中は実行不可である。インポート処理では、DBMS115は、ベースタイプ303が示しているストア形式でチャンク182をインポートする。従って、ベースタイプ変更処理後のインポート処理では、変更後のベースタイプが示すストア形式でチャンク182がインポートされる。結果として、表181のストア状態304という情報が示すストア状態は、変更前のベースタイプが示すストア形式のチャンク182と、変更後のベースタイプが示すストア形式のチャンク182との混在となる。
ベースタイプ変更処理後、変更前のベースタイプが示すストア形式のチャンクが、未変換チャンクである。全未変換チャンクのうちのX個の変換対象チャンクについて、DBMS115が、データ変換処理を実行する。「X個の変換対象チャンク」は、全未変換チャンクからデータ変換処理の対象として選択されたチャンクである。Nは自然数である。このデータ変換処理は、表単位のデータ変換処理よりも短時間で終了する。このため、高頻度にインポート処理を実行しつつ(例えばインポート処理の開始を待つこと無しに)消費電力低減のためのデータ変換処理を実行することができる。
以下、時刻t1〜t8の各々においてDBMS115が実行する処理の概要を説明する。
なお、図1において、矢印50は、表181におけるチャンクの新しさ、言い換えれば、インポート時刻の新しさを示す。インポート時刻が時間方向側であるほどインポート時刻が新しく(図1において“N”と表記)、インポート時刻が時間方向と反対方向側であるほどインポート時刻が古い(図1において“O”と表記)。
また、図1において、矢印51は、時刻(t)の経過に対応する。矢印51の方向は、時間方向(時間の経過の方向)を示す。更に、図1において、表181の時間方向に沿った並びは、時刻の経過に伴う表181の遷移を示す。
また、本実施例において、チャンク182は、ヘッダ191とデータ本体192とで構成されており、ヘッダ191が、ストア情報を含む。ストア情報は、当該ストア情報を含むチャンク182のストア形式を示す。データ本体192のデータ構造が、ベースタイプ303が示すストア形式のデータ構造である。
また、図1において、チャンク182内の“R”は、ローストア形式のチャンクを意味し、“C”は、カラムストア形式のチャンクを意味する。
<時刻t1での処理>
時刻t1での処理は、インポート処理である。時刻t1より前では、変更前のベースタイプ303が、“ROW”(ローストア形式)を示している。このため、時刻t1のインポート処理では、DBMS115は、表181にチャンクR(ローストア形式のチャンク)をインポートする。DBMS115は、インポートしたチャンクRのヘッダ181に、当該チャンクRのストア形式“ROW”を示すストア情報を設定する。なお、時刻t1より前において、表181のストア状態304は、“ROW only”(表181中のチャンクはチャンクRのみ)であるが、図示の通り、時刻t1でのインポート処理の実行後も、表181中のチャンクはチャンクRのみのままである。このため、このインポート処理において、ストア状態304は更新されない。
<時刻t2での処理>
時刻t2での処理は、パージ処理である。パージ処理とは、チャンク182を表181から除外する除外処理の一例であり、パージ対象のチャンク182を表181からパージ(削除)する処理である。「パージ対象のチャンク」の一例は、当該チャンクのインポート時刻から一定時間(データ保管期間)を経過したチャンク(言い換えれば、インポート時刻が古いチャンク)である。このように、適宜にチャンク182が表181からパージされるので、消費記憶容量を削減することができ、以って、消費電力の低減が期待できる。
時刻t2のパージ処理では、DBMS115は、インポート時刻から一定時間(データ保管期間)を経過したチャンクRをパージする。
なお、DBMS115は、パージ処理においても、必要に応じて表181のストア状態304を更新する。しかし、時刻t2のパージ処理の実行後、表181中のチャンクはチャンクRのみのままであるため、このパージ処理において、ストア状態304は更新されない。
<時刻t3での処理>
時刻t3での処理は、ベースタイプ変更処理である。このベースタイプ変更処理において、ベースタイプ303が“ROW”から“COLUMN”に変更される。
<時刻t4での処理>
時刻t4での処理は、インポート処理である。時刻t4においては、ベースタイプ303は“COLUMN”を示す。このため、DBMS115は、表181にチャンクC(カラムストア形式のチャンク)をインポートする。DBMS115は、インポートしたチャンクCのヘッダ181に、当該チャンク182のストア形式“COLUMN”を示すストア情報を設定する。この時点で、表181中のチャンクはチャンクRとチャンクCの混在となったため、DBMS115は、表181のストア状態304を“ROW only”から“ROW and COLUMN”(表181中のチャンクはチャンクRとチャンクCとの混在)に更新する。
<時刻t5での処理>
時刻t5での処理は、パージ処理である。このパージ処理では、DBMS115は、インポート時刻から一定時間を経過したチャンクRをパージする。
<時刻t6での処理>
時刻t6での処理は、データ変換処理である。このデータ変換処理では、変更後のベースタイプ303“COLUMN”が示すストア形式と異なるストア形式のチャンクRが、未変換チャンクである。DBMS115は、当該未変換チャンクRを、チャンクCに変換する。具体的には、DBMS115は、チャンクR内のデータ本体R(ローストア形式に従うデータ構造のデータ本体)をそのままに、データ本体Rをデータ本体C(カラムストア形式に従うデータ構造のデータ本体)に変換し、その後に、データ本体Rを削除する。このデータ変換処理中は、変換元のデータ本体Rが検索処理の対象である。
なお、図1に示すように、時刻t6に対応した表181には、複数の未変換チャンクRがあるが、いずれの未変換チャンクが優先的に変換対象チャンクとなるかは、後述するように、1以上の優先度観点に従う変換優先度に基づき決まる。図1の例では、優先度観点“データ保管期間”が最も短い(インポート時刻が最も新しい)未変換チャンクRの変換優先度が最も高い。
<時刻t7での処理>
時刻t7での処理は、インポート処理である。このインポート処理は、時刻t4でのインポート処理と同じである。但し、このインポート処理後も、表181中のチャンクはチャンクRとチャンクCの混在のままであり、故に、ストア状態304“ROW and COLUMN”の更新は不要である。
<時刻t8での処理>
時刻t8での処理は、パージ処理である。このパージ処理では、DBMS115は、インポート時刻から一定時間を経過したチャンクRをパージする。この結果、表181中のチャンクが全てチャンクCとなったため、DBMS115は、表181のストア状態304を“ROW and COLUMN”から“COLUMN only”(表181中のチャンクはチャンク“C”のみ)に更新する。
以上の説明によれば、本実施例に係るデータ変換処理は、表単位のデータ変換処理に比べて短時間で終了するため、消費電力低減のためのデータ変換処理を実行することを、検索処理に加えてインポート処理も止めること無しに実現することができる。このため、データ量の伸びに伴う消費電力の増加を低減しつつも、常に最新のデータを分析することによってタイムリーな判断を行いたいというニーズに応えることが期待できる。
なお、本実施例では、インポート処理及びパージ処理が、定期的に実行され、ベースタイプ変更処理及びデータ変換処理(及び検索処理)が、不定期的に実行される。しかし、インポート処理及びパージ処理の少なくとも1つが不定期的に実行されてもよいし、ベースタイプ変更処理及びデータ変換処理(及び検索処理)の少なくとも1つが定期的に実行されてもよい。
以下、本実施例を詳細に説明する。
図2は、実施例1に係るDBサーバの構成を示す。
DBサーバ100は、計算機システムの一例である。DBサーバ100は、例えば、パーソナルコンピュータ、ワークステーション又はメインフレームであってよく、もしくは、これらの計算機において仮想化プログラムによって構成された仮想的な計算機であってよい。DBサーバ100は、PDEV群175、メモリ105及びそれらに接続されたプロセッサ155を有する。DBサーバ100は、キーボードやポインティングデバイス等の入力デバイス(図示しない)と液晶ディスプレイ等の出力デバイス(図示しない)を有してもよい。入力デバイス及び出力デバイスは、プロセッサ155に接続されていてよい。入力デバイスと出力デバイスは一体であってもよい。
PDEV群175は、1以上のPDEVである。PDEV群175の記憶空間に基づく記憶領域(以下、DB領域)180が、DBMS115に提供される。DB領域180に、DBMS115により管理されるDB200が格納される。DB200は、1以上の表(典型的には複数の表)181を含む。DB200は、更に、1以上の索引(典型的には複数の索引)を含むことができる。本実施例では、表181は、1以上のチャンク182を含む。各チャンク182は、インポート単位であり、1以上のレコードの集合である。当該1以上のレコードは、1以上のカラムから構成される。索引は、表181の1以上のカラム等を対象として作成されるデータ構造であり、その索引が対象とするカラム等を含む選択条件による表181へのアクセスを高速化するためのものである。なお、DB領域180は、1以上の論理領域の集合である。各論理領域は、1以上のPDEVに基づく記憶領域(例えば、論理的な記憶デバイスであるLDEV)である。また、各PDEVの状態は、本実施例では、起動状態(非省電力状態の一例)と省電力状態とに大別されるものとする。「起動状態」は、PDEVが起動中の状態と、PDEVが起動完了してI/O可能な状態とを含む。「省電力状態」は、PDEVがI/O不可能に低消費電力である状態(例えば、電源オフ、スリープ状態又はスタンバイ状態)であるとする。各PDEVは、起動要求又はI/O要求を受けることで省電力状態から起動状態に遷移する。また、各PDEVは、省電力遷移要求を受けることで(又は要求を一定時間受信しないままでいることで)起動状態から省電力状態に遷移する。
DBサーバ100は、プロセッサ155に接続されたネットワークインターフェース(インターフェース部の一例)を有してよく、PDEV群175は、ネットワークインターフェースに接続された外部ストレージ装置に含まれていてもよい。
メモリ105は、メモリ部の一例である。メモリ105は、例えば、揮発性のDRAM(Dynamic Random-Access Memory)等であり、プロセッサ155によって実行されるプログラムと、プログラムが使用するデータを一時的に記憶する。プログラムとして、例えば、DBMS115、OS(Operating System)145及びアプリケーションプログラム114がある。DBサーバ100では、アプリケーションプログラム114が、クエリを発行する。DBMS115が、アプリケーションプログラム114からクエリを受け、そのクエリを実行する。そのクエリの実行において、DBMS115は、DB200からデータを読み込むために、又は、DB200にデータを書き込むために、I/O(Input/Output)要求をOS145に発行する。OS145は、そのI/O要求を受け、そのI/O要求に従いPDEV群175に対してデータのI/Oを実行し、実行結果をDBMS115に返す。
DBMS115は、クエリ実行部120、インポート部121、除外部122、ベースタイプ変更部123、データ変換部124、ローストア処理部125及びカラムストア処理部126を有する。また、DBMS115は、表定義管理テーブル129及びチャンク管理テーブル130といった管理テーブルを管理する。なお、DBMS115の構成は一例に過ぎない。例えば、ある構成要素は複数の構成要素に分割されていてもよく、複数の構成要素が1つの構成要素に統合されていてもよい。
クエリ実行部120は、検索処理を行う検索部としての機能を含む。クエリ実行部120は、アプリケーションプログラム114が発行するクエリを受け付ける。クエリは、DBへのクエリであって、例えば、構造化クエリ言語(SQL、Structured Query Language)によって記述される。クエリ実行部120は、受け付けたクエリから、そのクエリを実行するために必要な1以上のDBオペレーションを含む実行プランを生成する。実行プランは、例えば、1以上のDBオペレーションと、DBオペレーションの実行順序の関係を含む情報である。実行プランは、DBオペレーションをノード、DBオペレーションの実行順序の関係をエッジとする木構造で表されることがある。クエリ実行部120は、生成した実行プランに従って、受け付けたクエリを実行し、その実行結果をアプリケーションプログラム114に返す。クエリ実行において、クエリ実行部120は、(a)DBオペレーションを実行するためのタスクを生成し、(b)生成されたタスクを実行することで、そのタスクに対応したDBオペレーションに必要なデータの読込み要求を発行し、(c)(b)で実行されたタスクに対応したDBオペレーションの実行結果に基づき別のDBオペレーションを実行する必要がある場合には、その別のDBオペレーションをそれぞれ実行する1以上のタスクを新たに生成し、(d)その新たに生成した1以上のタスクのそれぞれについて(b)及び(c)を行ってもよい。また、クエリ実行部120は、このようにして生成された1以上のタスクを並行して実行してよい。クエリ実行部120は、2以上の実行可能なタスクが存在する場合には、それら2以上のタスクのうちの少なくとも2つのタスクを並行して実行してよい。なお、上記において、クエリ実行部120は、1のタスクで複数のDBオペレーションを実行してもよい。また、クエリ実行部120は、都度に新たにタスクを生成することはせず、同じタスクにおいて次のDBオペレーションを実行してもよい。タスクの実装としては、例えば、OS145が実現するプロセスやカーネルスレッド等のほか、ライブラリ等が実現するユーザスレッドを用いてよい。
インポート部121は、定期的にインポート処理を実行する。除外部122は、定期的にパージ処理(除外処理の一例)を実行する。ベースタイプ変更部123は、ベースタイプ変更処理を実行する。データ変換部124は、データ変換処理を実行する。ローストア処理部125は、チャンク“R”(ローストア形式のチャンク)を参照又は更新する。カラムストア処理部126は、チャンク“C”(カラムストア形式のチャンク)を参照又は更新する。
表定義管理テーブル129は、表毎の定義に関する情報を保持する。具体的には、例えば、表定義管理テーブル129は、図3(及び図4〜図6)に示すように、表毎にエントリを有する。各エントリが、U−ID301、T−ID302、ベースタイプ303及びストア状態304といった情報を格納する。
U−ID301は、表181のユーザのID(識別子)を示す。T−ID302は、表181のIDを示す。
ベースタイプ303は、表181のストア形式を示す。“ROW”は、ローストア形式を意味する。“COLUMN”は、カラムストア形式を意味する。
ストア状態304は、表181におけるチャンクのストア状態を示す。“ROW only”は、表181におけるチャンクはチャンク“R”のみであることを意味する。“COLUMN only”は、表181におけるチャンクはチャンク“C”のみであることを意味する。“ROW and COLUMN”は、表181におけるチャンクはチャンク“R”とチャンク“C”の混在であることを意味する。
チャンク管理テーブル130は、チャンク毎に関する情報を保持する。具体的には、例えば、表定義管理テーブル129は、図3(及び図4〜図6)に示すように、表毎にエントリを有する。各エントリが、C−ID311、T−ID312、インポート時刻313、参照時刻314、更新時刻315、アクセスコスト316及びHW317といった情報を格納する。
C−ID311は、チャンク182のIDを示す。T−ID312は、チャンク182が含まれている表181のIDを示す。
インポート時刻313は、チャンク182がインポートされた時刻であるインポート時刻を示す。本実施例では、時刻は、年月日時分秒の単位で表現されるが、時刻の単位は、それよりも粗くても細かくてもよいし、また異なる単位でもよい。
参照時刻314は、チャンク182が最後に参照された時刻である参照時刻を示す。参照時刻314は、参照時刻に代えて又は加えて、チャンク182の参照頻度を示す情報を含んでもよい。
更新時刻315は、チャンク182が最後に更新された時刻である更新時刻を示す。更新時刻315は、更新時刻に代えて又は加えて、チャンク182の更新頻度を示す情報を含んでもよい。
アクセスコスト316は、チャンク182のデータ量に基づく値である。チャンク182のデータ量が大きい程、アクセスコスト316が大きい。
HW317は、チャンク182が格納されるハードウェア機器の稼働状況を示す。ここで言う「ハードウェア機器」は、本実施例ではPDEVであるが、PDEVよりも大きい又は小さい単位でもよい。また、「稼働状況」として、“ON”は、起動状態(非省電力状態の一例)を意味し、“OFF”は、省電力状態を意味する。
チャンク管理テーブル130で管理される情報の少なくとも一部が、チャンク管理テーブル130に代えて又は加えて、チャンク182におけるヘッダ191に格納されてもよい。また、チャンク182におけるヘッダ191に格納される情報の少なくとも一部(例えばストア情報)が、ヘッダ191に代えて又は加えて、チャンク管理テーブル130に格納されてもよい。
以下、図3〜図7を参照して、インポート処理、パージ処理、ベースタイプ変更処理及びデータ変換処理の一例の概要を説明する。
<A.インポート処理>
図3は、インポート処理の一例の概要を示す。
表01(T−ID=01の表)に対してのインポート処理は、例えば次の通りである。
すなわち、表01のベースタイプ303が“COLUMN”であるため、インポート部121は、カラムストア形式のチャンク004(C−ID=004のチャンク)を表01にインポートする。その際、インポート部121は、チャンク004のヘッダ191にストア情報“COLUMN”を設定する。また、インポート部121は、チャンク004に対応したエントリ(インポート時刻313等)をチャンク管理テーブル130に追加する。また、インポート部121は、このインポート処理により、表01にチャンク“R”とチャンク“C”が混在したため、表01のストア状態304を“ROW only”から“ROW and COLUMN”に更新する。
なお、インポート部121は、インポート要求に応答してインポート処理を実行するようになっている。インポート要求は、定期的に外部(例えばアプリケーションプログラム114)から受信してもよいし、定期的に内部要求としてインポート部121により発行されてよい。インポート要求には、インポート処理の対象の表のT−IDといった所定種類の情報が関連付けられている。
<B.パージ処理>
図4は、パージ処理の一例の概要を示す。
表01についてのパージ処理は、例えば次の通りである。
すなわち、表01中のチャンク001のデータ保管期間(インポート時刻からの経過時間)が一定期間を過ぎたため、除外部122が、チャンク001を表01からパージする。また、除外部122は、チャンク001に対応したエントリをチャンク管理テーブル130から削除する。
なお、除外部122は、パージ要求に応答してパージ処理を実行するようになっている。パージ要求は、定期的に外部(例えばアプリケーションプログラム114)から受信してもよいし、定期的に内部要求として除外部122により発行されてよい。パージ要求には、パージ対象のチャンクのC−IDやそのチャンクを含んだ表のT−IDといった所定種類の情報が関連付けられている。
<C.ベースタイプ変更処理>
図5は、ベースタイプ変更処理の一例の概要を示す。
表02についてのベースタイプ変更処理は、例えば次の通りである。
すなわち、ベースタイプ変更部123は、表02のストア形式の変換要求(例えば、ALTER TABLE文)500に応答して、表02のベースタイプ303を、当該変換要求500に従うストア形式“COLUMN”に変更する。当該変換要求500では、変換対象の表のT−ID(“02)”と、変換後のストア形式(“COLUMN”)とが指定される。
なお、表02のベースタイプ303が“COLUMN”にされても、表02中のチャンク001〜004のストア形式は“ROW”のままである。後のデータ変換処理によって、これらのチャンクのストア形式が変換される。
<D.データ変換処理>
図6は、データ変換処理の一例の概要を示す。
表02中の全未変換チャンクのうちのチャンク002が、X個の変換対象チャンク(ここではX=1)として選択され、且つ、チャンク002はローストア形式のチャンクのためストア情報は“ROW”であるとする(時刻t00)。チャンク002についてのデータ変換処理は、例えば次の通りである。
すなわち、データ変換部124は、チャンク002のストア情報を“ROW”から“R->C”(ローストア形式からカラムストア形式への変換中を意味する値)に更新する(時刻t01)。データ変換部124は、チャンク002内のデータ本体R(ローストア形式に従うデータ構造のデータ本体)を読み込み、当該データ本体Rのデータ本体C(カラムストア形式に従うデータ構造のデータ本体)に変換し、データ本体Cを、同一チャンク002内に格納する(時刻t02)。この間、チャンク002が検索処理の対象となった場合、変換元のデータ本体Rが検索処理の対象である。データ変換部124は、チャンク002内のストア情報を“R->C”から“COLUMN”に更新する(時刻t03)。データ変換部124は、チャンク002のストア状態304を“ROW only”から“ROW and COLUMN”に更新し、チャンク002から変換元のデータ本体Rを削除する(時刻t04)。
なお、チャンク002が選択された理由は、表02中の未変換チャンクのうち、チャンク002が、後述の1以上の優先度観点に従う変換優先度が最も高いため(又は、後述の第2の変換要求でチャンク002のC−IDが指定されたため)である。
また、データ変換部124は、ベースタイプ変更処理から一定時間経過後に自動でデータ変換処理を実行してもよいが、本実施例では、ベースタイプ変更処理後に上述の変換要求である第1の変換要求500とは別の第2の変換要求600を受けて当該第2の変換要求600に応答してデータ変換処理を実行してもよい。これにより、データ変換処理の実行頻度を、要求元(例えばユーザ(具体的には、例えば、DBサーバ100のクライアント計算機))が制御することができる。
また、そのような第2の変換要求600に、下記のパラメータ、
(パラメータA)1又は複数の優先度観点のうち採用する1以上の優先度観点、
(パラメータB)前記Xの値、
(パラメータC)任意の個数のC−ID(変換対象チャンクのC−IDのリスト)、
(パラメータD)データ変換処理の対象の表のT−ID、
が指定されてよい。つまり、データ変換処理毎に、当該データ変換処理で採用される優先度観点を観点にすることができる。
パラメータBを指定した場合、パラメータA(1以上の優先度観点)に従う変換優先度が相対的に高いX個の変換対象チャンクが変換優先度の高い順にデータ変換される。これにより、要求元にとって効果的なチャンクを要求元にとって効果的な順序でデータ変換することが期待できる。
パラメータCを指定した場合、変換対象チャンク内で、パラメータA(1以上の優先度観点)に従う変換優先度が高い順にデータ変換される。これにより、要求元が望むチャンクを要求元にとって効果的な順序でデータ変換することが期待できる。
図7は、データ変換処理の別の幾つかの例を示す。
データ変換処理として、ローストア形式をカラムストア形式に変換する処理以外の処理、例えば、カラムストア形式をローストア形式に変換する処理や、或るカラムストア形式を別のカラムストア形式に変換する処理がある。
カラムストア形式をローストア形式に変換する処理の一例は、例えば次の通りである。すなわち、データ変換部124は、表03内のチャンク002のストア情報を“COLUMN”から“C->R”(カラムストア形式からローストア形式への変換中を意味する値)に更新する(時刻t11)。データ変換部124は、チャンク002内のデータ本体Cを読み込み、データ本体Cをデータ本体Rに変換し、データ本体Rを同一チャンク002内に格納する(時刻t12)。データ変換部124は、チャンク002内のストア情報を“C->R”から“ROW”に更新する(時刻t13)。データ変換部124は、チャンク002のストア状態304を“COLUMN only”から“ROW and COLUMN”に更新し、チャンク002から変換元のデータ本体を削除する(時刻t14)。
或るカラムストア形式を別のカラムストア形式に変換する処理の一例は、例えば次の通りである。すなわち、データ変換部124は、表04内のチャンク002のストア情報を“COLUMN”から“C->C”(カラムストア形式から別のカラムストア形式への変換中を意味する値)に更新する(時刻t21)。データ変換部124は、チャンク002内のデータ本体Cを読み込み、データ本体Cを別のデータ本体C(別のカラムストア形式に従うデータ構造のデータ本体)に変換し、別のデータ本体Cを同一チャンク002内に格納する(時刻t22)。データ変換部124は、チャンク002内のストア情報を“C->C”から“COLUMN”に更新する(時刻t23)。データ変換部124は、チャンク002のストア状態304を維持し、チャンク002から変換元のデータ本体Cを削除する(時刻t24)。
カラムストア形式をローストア形式に変換する処理は、例えば、ローストア形式の方が処理コストが優れている場合に行われる。また、或るカラムストア形式を別のカラムストア形式に変換する処理は、例えば、カラムストアの列分離の組合せを変更するために行われる。具体的には、例えば、当該処理は、列1(C1)と列2(C2)が同時にアクセスされる頻度が高いために、列1(C1)と列2(C2)が別々に格納されているストア形式を列1(C1)と列2(C2)が1つの列として格納されるストア形式に変換するために行われる。
図8及び図9は、優先度観点の一例(P1)〜(P5)と、ローストア形式をカラムストア形式に変換するデータ変換処理での変換優先度との関係を示す。
<(P1)データ保管期間>
各チャンクについて、データ保管期間は、当該チャンクのインポート時刻からの経過時間である。
この優先度観点では、データ保管期間が短い程(つまりインポート時刻が新しい程)、変換優先度が高い。なぜなら、データ保管期間が短い程、表からパージされるまでの期間が長い(長くチャンクが存在する)ため、そのようなチャンクについてこそ、データ変換処理を実行する価値が高いと考えられるからである。言い換えれば、データ保管期間が長い程、表からパージされるまでの期間が短いため、そのようなチャンクについてデータ変換処理を実行する価値は低いと考えられるからである。
<(P2)参照時刻/参照頻度>
各チャンクについて、参照時刻は、当該チャンクが最後に参照された時刻であり、参照頻度は、当該チャンクが参照される頻度である。
この優先度観点では、参照時刻が新しい程、又は、参照頻度が高い程、変換優先度が高い。なぜなら、チャンクRの参照よりもチャンクCの参照の方が一般に高速であるからである。
<(P3)更新時刻/更新頻度>
各チャンクについて、更新時刻は、当該チャンクが最後に更新された時刻であり、更新頻度は、当該チャンクが更新される頻度である。
この優先度観点では、更新時刻が古い程、又は、更新頻度が低い程、変換優先度が高い。なぜなら、チャンクRの更新よりもチャンクCの更新の方が一般に低速であるからである。
<(P4)アクセスコスト>
各チャンクについて、アクセスコストは、当該チャンクのデータ量に基づく値である。チャンクのデータ量が大きい程、アクセスコストが大きい。
この優先度観点では、アクセスコストが大きい程、変換優先度が高い。なぜなら、チャンクのデータ量が大きい程、チャンクRを、チャンクRよりも一般に圧縮効果が高いチャンクCに変換することは、効果的であるためである。
<(P5)ハードウェア機器の稼働状態>
各チャンクについて、ハードウェア機器の稼働状態は、当該チャンクを格納しているハードウェア機器(例えばPDEV)が起動状態(ON)であるか省電力状態(OFF)であるかである。
例えばDBMS115は、特許第4908260号に開示の技術のような技術を利用することで、ハードウェア機器の消費電力を低減することができる。例えば、DBMS115は、アクセスされないデータを格納したハードウェア機器を省電力状態とし、アクセスが必要になったデータを格納しているハードウェア機器を起動状態にすることができる。このため、DBMS115は、ハードウェア機器の稼働状態を管理しており、DBサーバ100内には、起動状態(ON)のハードウェア機器と省電力状態(OFF)のハードウェア機器とが混在することがある。
この優先度観点では、起動状態(ON)のハードウェア機器に格納されているチャンクの変換優先度が高い。なぜなら、既に起動状態のためデータ変換処理のために起動状態にする必要がなく、故に、消費電力低減を維持することができるからである。
以上の(P1)〜(P6)の優先度観点のうちの1以上の優先度観点に従い決定された変換優先度が相対的に高い未変換チャンクを優先的に変換対象チャンクとすることができる。なお、データ変換部124は、変換優先度が所定優先度未満の未変換チャンクについては、変換対象チャンクして選択することを避ける(つまり、データ変換処理をスキップする)。
また、図8及び図9は、優先度観点の一例(P1)〜(P5)と、ローストア形式をカラムストア形式に変換するデータ変換処理での変換優先度との関係を示すが、優先度観点の一例(P1)〜(P5)と、カラムストア形式をローストア形式に変換するデータ変換処理での変換優先度との関係は、次の通りである。すなわち、(P1)、(P4)及び(P5)については、図8及び図9の通りである。(P2)及び(P3)では逆である。すなわち、優先度観点“参照時刻/参照頻度”については、参照時刻が古い程、又は、参照頻度が低い程、変換優先度が高い。なぜなら、チャンクCの参照よりもチャンクRの参照の方が一般に低速であるからである。一方、優先度観点“更新時刻/更新頻度”については、更新時刻が新しい程、又は、更新頻度が高い程、変換優先度が高い。なぜなら、チャンクCの更新よりもチャンクRの更新の方が一般に高速であるからである。
以下、本実施例で行われる処理の一例の流れを説明する。
図10は、インポート処理の流れを示す。
インポート部121は、チャンクを作成する(S1001)。インポート部121は、ベースタイプ303が示すストア形式を判別する(S1002)。ベースタイプ303が“ROW”の場合、インポート部121は、ローストア処理部125を呼び出し、ローストア処理部125が、S1001で作成されたチャンクにデータ本体R(ローストア形式のデータ本体)を格納する(S1003)。一方、ベースタイプ303が“COLUMN”の場合、インポート部121は、カラムストア処理部126を呼び出し、カラムストア処理部126が、S1001で作成されたチャンクにデータ本体C(カラムストア形式のデータ本体)を格納する(S1004)。
S1003又はS1004の後、インポート部121は、当該チャンクにストア情報(“ROW”又は“COLUMN”)を設定する(S1005)。
その後、インポート部121は、ストア状態更新処理を実行する。具体的には、以下の通りである。
ストア状態304が“COLUMN only”である場合(S1006:COLUMN only)、ベースタイプ303が“ROW”であれば(S1007:ROW)、インポート部121は、ストア状態304を“COLUMN only”から“ROW and COLUMN”に更新する(S1008)。一方、ベースタイプ303が“COLUMN”であれば(S1007:COLUMN)、インポート処理が終了する。
ストア状態304が“ROW only”である場合(S1006:ROW only)、ベースタイプ303が“COLUMN”であれば(S1009:COLUMN)、インポート部121は、ストア状態304を“ROW only”から“ROW and COLUMN”に更新する(S1010)。一方、ベースタイプ303が“ROW”であれば(S1009:ROW)、インポート処理が終了する。
ストア状態304が“ROW and COLUMN”である場合(S1006:ROW and COLUMN)、処理が終了する。
図11は、パージ処理の流れを示す。
除外部122が、パージ対象のチャンクからデータ本体を削除する(S1101)。
その後、除外部122は、ストア状態更新処理を実行する。具体的には、以下の通りである。
ストア状態304が“ROW and COLUMN”である場合(S1102:ROW and COLUMN)、除外部122は、パージ対象のチャンク内のストア情報を判別する(S1103)。
ストア情報が“ROW”の場合、パージ対象のチャンクを含む表にチャンクRが無ければ(S1104:NO)、除外部122は、ストア状態304を“COLUMN only”に更新する(S1105)。パージ対象のチャンクを含む表にチャンクRがあれば(S1104:YES)、ストア状態更新処理が終了する。
ストア情報が“COLUMN”の場合、パージ対象のチャンクを含む表にチャンクCが無ければ(S1106:NO)、除外部122は、ストア状態304を“ROW only”に更新する(S1107)。パージ対象のチャンクを含む表にチャンクCがあれば(S1106:YES)、ストア状態更新処理が終了する。
ストア状態304が“ROW and COLUMN”以外である場合(S1102:ROW and COLUMN以外)、ストア状態更新処理が終了する。
ストア状態更新処理の終了後、除外部122が、パージ対象のチャンクからヘッダも削除する(S1108)。
図12は、データ変換処理の流れを示す。
データ変換部124は、変換対象の表に対応したベースタイプ303及びストア状態304を基に、未変換チャンクがあるか否かを判別する(S1201)。未変換チャンクが無い場合(S1201:NO)、データ変換処理は終了する。
未変換チャンクがある場合(S1201:YES)、データ変換部124は、チャンク管理テーブル130を基に、全未変換チャンク(又は、第2の変換要求で指定された未変換チャンク)の各々について、指定された1以上の優先度観点に従う変換優先度を決定し、決定された変換優先度が相対的に高い未変換チャンクを、変換対象として選択する(S1202)。もし、変換優先度が所定値未満の未変換チャンクしかなければ(S1203:NO)、データ変換処理が終了する。
データ変換部124は、選択した変換対象チャンクのストア情報をデータ変換中(例えば“R->C”、“C->R”又は“R->R”)に更新する(S1204)。
更新前のストア情報が“ROW”の場合(S1205:ROW)、データ変換部124は、ローストア処理部125を呼び出し、ローストア処理部125が、変換対象チャンクからデータ本体Rを読み込む(S1206)。一方、更新前のストア情報が“COLUMN”の場合(S1205:COLUMN)、データ変換部124は、カラムストア処理部126を呼び出し、カラムストア処理部126が、変換対象チャンクからデータ本体Cを読み込む(S1207)。
データ変換部124は、S1206又はS1207で読み込まれたデータ本体を、変換対象の表に対応したベースタイプ303が示すストア形式に従うデータ構造のデータ本体に変換する(S1208)。
ベースタイプ303が“ROW”(S1209:ROW)、データ変換部124は、ローストア処理部125を呼び出し、ローストア処理部125が、変換後のデータ本体Rを変換対象チャンクに格納する(S1210)。また、データ変換部124は、変換対象チャンクのストア情報を“ROW”に更新する(S1211)。
ベースタイプ303が“COLUMN”(S1209:COLUMN)、データ変換部124は、カラムストア処理部126を呼び出し、カラムストア処理部126が、変換後のデータ本体Cを変換対象チャンクに格納する(S1212)。また、データ変換部124は、変換対象チャンクのストア情報を“COLUMN”に更新する(S1213)。
その後、データ変換部124は、ストア状態更新処理を行う(S1214)。つまり、データ変換部124は、変換対象の表に対応したストア状態304を、S1211又はS1213後のストア状態に更新する。
データ変換部124は、変換元のデータ本体を、変換対象チャンクから削除する(S1215)。
図13は、検索処理の流れを示す。
検索処理では、クエリ実行部120が、検索対象の表に対応したストア状態、及び、当該表におけるチャンク毎のストア情報に応じた方法でチャンク中のデータ本体にアクセスする。
具体的には、ストア状態304が“ROW only”の場合(S1301:ROW only)、クエリ実行部120は、表中の各チャンクRについて、ローストア処理部125を呼び出し、ローストア処理部125が、当該チャンクR中のデータ本体を参照する(S1302)。
ストア状態304が“COLUMN only”の場合(S1301:COLUMN only)、クエリ実行部120は、表中の各チャンクCについて、カラムストア処理部126を呼び出し、カラムストア処理部126が、当該チャンクC中のデータ本体を参照する(S1303)。
ストア状態304が“ROW and COLUMN”の場合(S1301:ROW and COLUMN)、クエリ実行部120が、表中の各チャンクについて、次の処理を行う。すなわち、クエリ実行部120は、当該チャンクのストア情報を判別する(S1304)。ストア状態が“ROW”又は“R->C”であれば、クエリ実行部120は、ローストア処理部125を呼び出し、ローストア処理部125が、当該チャンク中のデータ本体を参照する(S1305)。一方、ストア状態が“COLUMN”、“C->R”又は“C->C”であれば、クエリ実行部120は、カラムストア処理部126を呼び出し、カラムストア処理部126が、当該チャンク中のデータ本体を参照する(S1306)。
図14は、更新処理の流れを示す。
更新処理は、表181の更新の処理である。更新処理の流れは、検索処理の流れにおいて「更新」を「更新」と読み替えることで、理解できる流れである。
具体的には、ストア状態304が“ROW only”の場合(S1401:ROW only)、クエリ実行部120は、表中の各チャンクRについて、ローストア処理部125を呼び出し、ローストア処理部125が、当該チャンクR中のデータ本体を更新する(S1402)。
ストア状態304が“COLUMN only”の場合(S1401:COLUMN only)、クエリ実行部120は、表中の各チャンクCについて、カラムストア処理部126を呼び出し、カラムストア処理部126が、当該チャンクC中のデータ本体を更新する(S1403)。
ストア状態304が“ROW and COLUMN”の場合(S1401:ROW and COLUMN)、クエリ実行部120が、表中の各チャンクについて、次の処理を行う。すなわち、クエリ実行部120は、当該チャンクのストア情報を判別する(S1404)。ストア状態が“ROW”又は“R->C”であれば、クエリ実行部120は、ローストア処理部125を呼び出し、ローストア処理部125が、当該チャンク中のデータ本体を更新する(S1405)。一方、ストア状態が“COLUMN”、“C->R”又は“C->C”であれば、クエリ実行部120は、カラムストア処理部126を呼び出し、カラムストア処理部126が、当該チャンク中のデータ本体を更新する(S1406)。
実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。
実施例2では、除外部122が、データ保管期間が過ぎたチャンクのパージ処理に代えて(又は加えて)、アーカイブ処理を実行する。「アーカイブ処理」とは、除外処理の一例であり、対象となるチャンク内のデータ本体を圧縮してファイルに格納し、そのファイルをDB領域180(図2参照)から削除する処理のことである。アーカイブ処理は定期的に(又は不定期的に)実行される。
また、除外部122は、アーカイブ設定処理を実行する。「アーカイブ設定処理」とは、処理対象の表にアーカイブ時間(インポート時刻からアーカイブ時刻までの時間)を関連付ける。アーカイブ設定処理は、例えば、アーカイブ設定要求に応答して行われる。アーカイブ設定要求には、処理対象の表のT−ID、及び、アーカイブ時間が指定されている。
図15は、実施例2の概要を示す。
時刻t1で、除外部122が、表05についてアーカイブ設定処理を実行する。これにより、表05に対応したエントリ(表定義管理テーブル1600中のエントリ)に、アーカイブ時間1611(アーカイブ時間を示す情報)が設定される。
時刻t2で、除外部122が、表05についてアーカイブ処理を実行する。具体的には、除外部122は、アーカイブ時刻(インポート時刻から表05のアーカイブ時間が経過した時刻でありアーカイブの予定時刻)が経過したチャンクが表05にあれば、当該チャンクをアーカイブする。すなわち、除外部122は、当該チャンク中のデータ本体の圧縮データを含んだアーカイブファイル(F)を作成し、当該ファイル(F)をDB領域180外の記憶領域に格納する。除外部122は、アーカイブ処理において、アーカイブされたチャンクを表05から削除する。また、チャンクがアーカイブされたことによって(削除されたことによって)、表05のストア状態が変更された場合(例えば、ROW only又はCOLUMN onlyになった場合)、除外部122は、表05のストア状態を更新する。
図16は、実施例2に係る表定義管理テーブル1600の構成を示す。
表毎に対応するエントリに、アーカイブ時間を示す情報(アーカイブ時間)1611が設定される。
図17は、実施例2に係るチャンク管理テーブル1700の構成を示す。
チャンク毎に対応するエントリに、インポート時刻からアーカイブ時間が経過したときの時刻であるアーカイブ時刻を示す情報(アーカイブ時刻)1716が設定される。
図18は、優先度観点“アーカイブ時刻”と、ローストア形式をカラムストア形式に変換するデータ変換処理での変換優先度との関係を示す。
この優先度観点では、アーカイブ時刻が新しい程、変換優先度が高い。なぜなら、アーカイブ時刻が新しい程、表からアーカイブされるまでの時間が長い(長くチャンクが存在する)ため、そのようなチャンクについてこそ、データ変換処理を実行する価値が高いと考えられるからである。言い換えれば、アーカイブ時刻が古い程、表からアーカイブされるまでの期間が短いため、そのようなチャンクについてデータ変換処理を実行する価値は低いと考えられるからである。
なお、この関係は、カラムストア形式をローストア形式に変換するデータ変換処理での変換優先度についても同様である。
実施例3を説明する。その際、実施例1及び2との相違点を主に説明し、実施例1及び2との共通点については説明を省略又は簡略する。
実施例3では、2以上のストア形式の一部のストア形式が、表に関わる補助データの付加である。補助データは、例えば、索引及びマテリアライズドビューのうちの少なくとも1つである。補助データの付加に関わる処理に、表のストア形式に関する上述の処理を応用することができる。つまり、補助データを効率的に付加することができる。補助データは、チャンク毎に付加(生成)される。
図19は、補助データの付加に関わる処理の流れの一例を示す。
補助データの付加の第1の要求を受信した場合(S1901:第1)、ベースタイプ変更部123が、補助データの付加に関する属性を示す情報である補助ベースタイプを、補助データの付加済を示すストア形式に変更する(ベースタイプ変更処理相当の処理)(S1902)。
補助データの付加の第2の要求を受信した場合(S1901:第2)、データ変換部124が、補助ベースタイプが示す属性と異なる属性のチャンクがあれば、当該異なる属性のチャンクを、補助ベースタイプが示す属性のチャンクに変換するデータ属性変換処理(データ変換処理相当の処理)を実行する(S1903)。例えば、補助ベースタイプが示す属性が“付加済”であれば、データ変換部124が、補助データが付加されていないチャンクに対して、補助データを付加する。一方、補助ベースタイプが示す属性が“未付加”であれば、データ変換部124が、補助データが付加されているチャンクについて、当該補助データを削除する。
インポート要求を受信した場合(S1901:インポート)、インポート部121は、ベースタイプ303が示すストア形式のチャンクであり補助ベースタイプが示す属性のチャンクをインポートする(S1904)。
S1903において、実行対象として選択されるチャンクは、上述の1以上の優先度観点に従う変換優先度が相対的に高いチャンクでよい。補助データベースタイプが補助データの付加済を示す場合、優先度観点と変換優先度の関係は、例えば、下記である。
・(P1)について、データ保管期間が短い程、変換優先度が高い。表にチャンクが残る時間が長いからである。
・(P2)及び(P3)について、参照時刻又は更新時刻が新しい程、又は、参照頻度又は更新頻度が高い程、変換優先度が高い。補助データは主に表のアクセスに使用され、アクセスの高速化に貢献するデータであるからである。
・(P4)について、アクセスコストが大きい程、変換優先度が高い。補助データがあることで処理の高速化が期待できるからである。
・(P5)について、非省電力状態である場合、変換優先度が高い。対応するチャンクが起動状態のハードウェア機器(PDEV)に格納されており、参照される可能性が高いことが考えられるためである。
・(P6)について、アーカイブ時刻が新しい程、変換優先度が高い。表にチャンクが残る時間が長いからである。
実施例4を説明する。その際、実施例1〜3との相違点を主に説明し、実施例1〜3との共通点については説明を省略又は簡略する。
図20は、優先度観点指定UI(ユーザインターフェース)の一例を示す。
優先度観点指定UI2000は、優先度観点(又はその重要度)のユーザが入力するためのUIである。優先度観点指定UI2000は、ユーザにより指定可能な優先度観点毎に、選択UI2001と、重要度指定UI2002と、優先度観点文字列2003とを有する。
選択UI2001は、優先度観点として採用するか否かを入力するUI(例えばチェックボックス)である。重要度指定UI2002は、優先度観点に関連付ける重要度(例えば、3、2、1(“3”が最高で“1”が最低)の3段階のうちのいずれか)を入力するUIである。優先度観点文字列2003は、優先度観点の内容を示す文字列である。
優先度観点指定UI2000を介して優先度観点(及び重要度)の指定を受け付けること、及び、当該指定された優先度観点(及び重要度)を設定することが、データ変換部124により行われる。
各未変換チャンクについて、当該未変換チャンクの変換優先度は、1以上の優先度観点と、当該1以上の優先度観点の少なくとも1つ重要度とに基づいて決まる。例えば、或る優先度観点によれば変換優先度が高でも、当該優先度観点よりも重要度が高い優先度観点によれば変換優先度が低であれば、変換優先度は低でよい。
以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、X個の変換対象のチャンクのデータ変換処理に要する時間がインポート処理の実行周期よりも短くなるよう、DBMS115(データ変換部124)は、Xの値を制限してもよいし、X個の変換対象チャンクのデータ量(後述のアクセスコスト)の合計が所定値以下となるよう変換対象チャンクを選択してもよい。
また、例えば、データ変換処理は、或るデータの第1のデータ処理の一例である。インポート処理は、第1のデータ処理中は実行不可であり前記或るデータについての第2のデータ処理の一例である。前記或るデータ全体についての第1のデータ処理の処理時間は、第2のデータ処理の実行間隔よりも典型的には長い。第1のデータ処理は、消費電力低減のためのデータ変換処理に代えて、消費電力低減以外のことを目的としたデータ処理(例えばデータ変換処理)でもよい。従って、上述の説明を基に、下記の表現をすることができる。下記の表現1によれば、高頻度に第2のデータ処理を実行しつつ第1のデータ処理を実行することができる。下記の表現2によれば、第1のデータ処理の対象となり得るデータ部分が2以上ある場合には、効率的にデータ部分に対して第1のデータ処理を実行することができる。
<表現1>
或るデータの第1のデータ処理の要求に応答して、前記或るデータのデータ状態を、前記或るデータについて前記第1のデータ処理の実行済の状態に変更する状態変更部(一例がベースタイプ変更部)と、
当該状態変更の実行と非同期に、前記或るデータのうち前記データ状態と異なるデータ部分(第2のデータ処理の単位)について第1のデータ処理を実行する第1データ処理部(一例がデータ変換部)と、
定期的に又は不定期的に、前記或るデータについて前記データ状態に従う第2のデータ処理を、前記第1のデータ処理が行われていない場合に実行する第2データ処理部(一例がインポート部)と
を有するデータ処理システム(一例が計算機システム)。
<表現2>
前記第1データ処理部は、前記或るデータのうち1以上の優先度観点に従う処理優先度が相対的に高いデータ部分について優先的に前記第1のデータ処理を実行する、
表現1記載のデータ処理システム。
100…DBサーバ

Claims (15)

  1. データベースの表のストア形式を変換する要求である変換要求に応答して、前記表のストア形式を示す情報であるベースタイプが示すストア形式を当該変換要求に従うストア形式に変更する処理であるベースタイプ変更処理を実行するベースタイプ変更部と、
    それぞれが前記表に対するデータのインポート単位である、前記表における全チャンクのうち、前記ベースタイプが示すストア形式と異なるストア形式のチャンクである未変換チャンクを、前記ベースタイプが示すストア形式のチャンクに変換する処理であるデータ変換処理を、前記変換要求に応答して実行される前記ベースタイプ変更処理と非同期に実行するデータ変換部と、
    定期的に又は不定期的に、前記ベースタイプが示しているストア形式のチャンクを前記表にインポートする処理であり前記データ変換処理中は実行不可であるインポート処理を実行するインポート部と
    を有するデータベース管理システム。
  2. 前記データ変換部は、X個の変換対象チャンク毎に(Xは自然数)前記データ変換処理を実行するようになっており、
    前記X個の変換対象チャンクは、全未変換チャンクからデータ変換処理の対象として前記データ変換部により選択されたチャンクであり、全未変換チャンクのうち、1以上の優先度観点に従う変換優先度が相対的に高いチャンクである、
    請求項1に記載のデータベース管理システム。
  3. 各チャンクについて、前記1以上の優先度観点は、下記の(P1)乃至(P6)の優先度観点のうちの1以上の優先度観点である、
    (P1)当該チャンクがインポートされた時刻からの経過時間であるデータ保管期間、
    (P2)当該チャンクが最後に参照された時刻である参照時刻、又は、当該チャンクが参照される頻度である参照頻度、
    (P3)当該チャンクが最後に更新された時刻である更新時刻、又は、当該チャンクが更新される頻度である更新頻度、
    (P4)当該チャンクのデータ量が大きい程大きい値であるアクセスコスト、
    (P5)当該チャンクを格納している記憶デバイスが省電力状態であるか否か、
    (P6)当該チャンクがアーカイブされる予定時刻であるアーカイブ時刻
    請求項2に記載のデータベース管理システム。
  4. 変更前の前記ベースタイプが、ローストア形式を示し、変更後の前記ベースタイプが、カラムストア形式を示し、故に、各未変換チャンクが、ローストア形式のチャンクの場合、優先度観点と変換優先度の関係は、下記である、
    (P1)について、データ保管期間が短い程、変換優先度が高い、
    (P2)について、参照時刻が新しい程、又は、参照頻度が高い程、変換優先度が高い、
    (P3)について、更新時刻が古い程、又は、更新頻度が低い程、変換優先度が高い、
    (P4)について、アクセスコストが大きい程、変換優先度が高い、
    (P5)について、非省電力状態である場合、変換優先度が高い、
    (P6)について、アーカイブ時刻が新しい程、変換優先度が高い、
    請求項3に記載のデータベース管理システム。
  5. 変更前の前記ベースタイプが、カラムストア形式を示し、変更後の前記ベースタイプが、ローストア形式を示し、故に、各未変換チャンクが、カラムストア形式のチャンクの場合、優先度観点と変換優先度の関係は、下記である、
    (P1)について、データ保管期間が短い程、変換優先度が高い、
    (P2)について、参照時刻が古い程、又は、参照頻度が低い程、変換優先度が高い、
    (P3)について、更新時刻が新しい程、又は、更新頻度が高い程、変換優先度が高い、
    (P4)について、アクセスコストが大きい程、変換優先度が高い、
    (P5)について、非省電力状態である場合、変換優先度が高い、
    (P6)について、アーカイブ時刻が新しい程、変換優先度が高い、
    請求項3又は4に記載のデータベース管理システム。
  6. 前記データ変換部は、変換優先度が所定優先度未満の未変換チャンクを、前記X個の変換対象チャンクの少なくとも1つとして選択することを避ける、
    請求項2乃至5のうちのいずれか1項に記載のデータベース管理システム。
  7. 各未変換チャンクについて、当該未変換チャンクの変換優先度は、1以上の優先度観点と、当該1以上の優先度観点の少なくとも1つ重要度とに基づいて決まる、
    請求項2乃至6のうちのいずれか1項に記載のデータベース管理システム。
  8. 前記データ変換部は、前記変換要求である第1の変換要求とは別の第2の変換要求に応答して、前記データ変換処理を実行し、
    前記第2の変換要求では、下記の(a)及び(b)、
    (a)1又は複数の優先度観点のうち採用する前記1以上の優先度観点、及び、
    (b)前記Xの値と、1以上の変換対象チャンクのIDのリストとのいずれか、
    が指定されている、
    請求項2乃至7のうちのいずれか1項に記載のデータベース管理システム。
  9. 前記表に対する検索処理を実行する検索部を更に有し、
    前記表にストア状態が関連付けられており、
    前記ストア状態は、前記表におけるチャンクが、或るストア形式のチャンクのみであるか、異なるストア形式のチャンクの混在であるかを示し、
    前記インポート部が、前記表に対応した前記ベースタイプが示すストア形式で新たにチャンクを当該表に追加した場合、前記ストア状態を必要に応じて更新し、
    前記データ変換部が、前記表におけるいずれかの未変換チャンクの前記データ変換処理において、前記ストア状態を必要に応じて変更し、
    前記検索部は、
    前記ストア状態が、前記表におけるチャンクが異なるストア形式のチャンクの混在であることを示している場合、チャンク毎に、当該チャンクのストア形式及びデータ変換中か否かを示す情報であるストア情報を特定し、当該特定されたストア情報に応じて当該チャンクを参照し、
    前記ストア状態が、前記表におけるチャンクが或るストア形式のチャンクのみであることを示している場合、チャンク毎に、当該チャンクの前記ストア情報を特定すること無しに、前記或る特定されたストア形式に応じて当該チャンクを参照する、
    請求項1乃至7のうちのいずれか1項に記載のデータベース管理システム。
  10. 前記表におけるチャンク毎に当該チャンクのインポート時刻から一定時間経過した当該チャンクを前記表から除外する除外処理を実行する除外部を更に有する、
    請求項1乃至9のうちのいずれか1項に記載のデータベース管理システム。
  11. 前記除外処理は、前記表からチャンクをパージするパージ処理と、前記表からチャンクをアーカイブファイルとして除外するアーカイブ処理とのうちの少なくとも1つである、
    請求項10に記載のデータベース管理システム。
  12. 2以上のストア形式のうちの一部のストア形式が、前記表に関わる補助データの付加である、
    請求項1乃至11のうちのいずれか1項に記載のデータベース管理システム。
  13. 前記補助データは、索引及びマテリアライズドビューのうちの少なくとも1つである、
    請求項11に記載のデータベース管理システム。
  14. 変更後のストア形式が、前記補助データの付加の場合、
    前記ベースタイプ変更部が、前記補助データの付加に関する属性を示す情報である補助ベースタイプを、前記補助データの付加済を示す属性に変更し、
    前記データ変換部が、補助ベースタイプが示す属性と異なる属性のチャンクを、補助ベースタイプが示す属性のチャンクに変換する、
    請求項12又は13に記載のデータベース管理システム。
  15. データベースの表のストア形式を示す情報であるベースタイプが示しているストア形式のチャンクを前記表にインポートする処理でありデータ変換処理中は実行不可であるインポート処理を実行し、
    前記データ変換処理は、それぞれが前記表に対するデータのインポート単位である、前記表における全チャンクのうち、前記ベースタイプが示すストア形式と異なるストア形式のチャンクである未変換チャンクを、前記ベースタイプが示すストア形式のチャンクに変換する処理であり、
    前記表のストア形式を変換する要求である変換要求に応答して、前記表のストア形式を示す情報であるベースタイプが示すストア形式を当該変換要求に従うストア形式に変更する処理であるベースタイプ変更処理を実行し、
    前記変換要求に応答して実行される前記ベースタイプ変更処理と非同期に前記データ変換処理を実行し、
    前記ベースタイプ変更処理の実行後の前記インポート処理では、変更後の前記ベースタイプが示しているストア形式のチャンクを前記表にインポートする、
    データベース管理方法。
JP2017229890A 2017-11-30 2017-11-30 データベース管理システム及び方法 Active JP6707754B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017229890A JP6707754B2 (ja) 2017-11-30 2017-11-30 データベース管理システム及び方法
US16/135,000 US11074271B2 (en) 2017-11-30 2018-09-19 Database management system and database management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017229890A JP6707754B2 (ja) 2017-11-30 2017-11-30 データベース管理システム及び方法

Publications (2)

Publication Number Publication Date
JP2019101595A true JP2019101595A (ja) 2019-06-24
JP6707754B2 JP6707754B2 (ja) 2020-06-10

Family

ID=66632337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017229890A Active JP6707754B2 (ja) 2017-11-30 2017-11-30 データベース管理システム及び方法

Country Status (2)

Country Link
US (1) US11074271B2 (ja)
JP (1) JP6707754B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112995339B (zh) * 2021-04-16 2021-08-03 湖南联智科技股份有限公司 一种基于动态字节码技术自动适配传感器数据解析方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730063B2 (en) * 2002-12-10 2010-06-01 Asset Trust, Inc. Personalized medicine service
US9418040B2 (en) * 2005-07-07 2016-08-16 Sciencelogic, Inc. Dynamically deployable self configuring distributed network management system
US8056054B2 (en) * 2007-06-07 2011-11-08 International Business Machines Corporation Business information warehouse toolkit and language for warehousing simplification and automation
US8515898B2 (en) * 2011-09-21 2013-08-20 International Business Machines Corporation Column based data transfer in extract transform and load (ETL) systems
WO2014109009A1 (ja) * 2013-01-09 2014-07-17 株式会社日立製作所 データベースの管理方法、管理計算機及び記憶媒体
US10353923B2 (en) * 2014-04-24 2019-07-16 Ebay Inc. Hadoop OLAP engine
US9619535B1 (en) * 2014-05-15 2017-04-11 Numerify, Inc. User driven warehousing
US10825080B2 (en) * 2017-04-27 2020-11-03 Target Brands, Inc. Item database creation based on negotiated values

Also Published As

Publication number Publication date
JP6707754B2 (ja) 2020-06-10
US20190163799A1 (en) 2019-05-30
US11074271B2 (en) 2021-07-27

Similar Documents

Publication Publication Date Title
CN112534396B (zh) 数据库系统中的日记表
US20220350819A1 (en) System and method for improved performance in a multidimensional database environment
US9678969B2 (en) Metadata updating method and apparatus based on columnar storage in distributed file system, and host
EP3108386B1 (en) Transparent discovery of semi-structured data schema
US10585876B2 (en) Providing snapshot isolation to a database management system
CN106716409B (zh) 一种构建和更新列存储数据库的方法和系统
JP6598996B2 (ja) データ準備のためのシグニチャベースのキャッシュ最適化
US10997124B2 (en) Query integration across databases and file systems
US10007548B2 (en) Transaction system
US11321302B2 (en) Computer system and database management method
CN105718507A (zh) 一种数据迁移方法和装置
US11687525B2 (en) Targeted sweep method for key-value data storage
JP6707797B2 (ja) データベース管理システム及びデータベース管理方法
JP6598997B2 (ja) データ準備のためのキャッシュ最適化
WO2022206398A1 (en) Method and apparatus for reading data maintained in tree data structures
US11249968B2 (en) Large object containers with size criteria for storing mid-sized large objects
US10083192B2 (en) Deleted database record reuse
US20120209891A1 (en) Database management method, database management system and database management program
JP6707754B2 (ja) データベース管理システム及び方法
WO2017122313A1 (ja) オブジェクト履歴として表示される情報をクライアントに提供する計算機システム及び計算機
JP2013088920A (ja) 計算機システム及びデータ管理方法
Nakamura et al. Extending postgreSQL to handle OLXP workloads
EP3916577B1 (en) Parallel load of mapping containers for database system start and restart operations
US20210406243A1 (en) Non-transitory computer-readable storage medium for storing information processing program, information processing method, and information processing apparatus
US20230229657A1 (en) Zero Copy Optimization for SELECT * Queries

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200313

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: 20200331

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200414

R150 Certificate of patent or registration of utility model

Ref document number: 6707754

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150