JP7329518B2 - 追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法 - Google Patents

追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法 Download PDF

Info

Publication number
JP7329518B2
JP7329518B2 JP2020535996A JP2020535996A JP7329518B2 JP 7329518 B2 JP7329518 B2 JP 7329518B2 JP 2020535996 A JP2020535996 A JP 2020535996A JP 2020535996 A JP2020535996 A JP 2020535996A JP 7329518 B2 JP7329518 B2 JP 7329518B2
Authority
JP
Japan
Prior art keywords
page
storage
log
storage node
append
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.)
Active
Application number
JP2020535996A
Other languages
English (en)
Other versions
JP2021508879A (ja
Inventor
ラーソン,パー‐エーク
デプートビッチ,アレクサンドル
Original Assignee
ファーウェイ クラウド コンピューティング テクノロジーズ カンパニー リミテッド
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 ファーウェイ クラウド コンピューティング テクノロジーズ カンパニー リミテッド filed Critical ファーウェイ クラウド コンピューティング テクノロジーズ カンパニー リミテッド
Publication of JP2021508879A publication Critical patent/JP2021508879A/ja
Application granted granted Critical
Publication of JP7329518B2 publication Critical patent/JP7329518B2/ja
Active 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • G06F12/0276Generational garbage collection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

[関連出願への相互参照]
この特許出願は、2017年12月29日に出願された「SYSTEMS AND METHODS FOR DATABASE MANAGEMENT USING APPEND-ONLY STORAGE DEVICES」という名称の米国特許出願第15/858,960号に対する優先権を主張し、その全内容が複製されているかのように参照により援用する。
[技術分野]
本出願は、データベース管理に関し、特に、追加専用記憶システムにおけるデータベース管理に関する。
計算デバイスは、ますます遍在している。したがって、ますます多くの量のデータがユーザにより消費されて記憶されている。データは、一般的にデータベースと呼ばれる、データの整理された集合として、物理的なコンピュータ読み取り可能記憶媒体に記憶される。データベースは、ユーザにとってアクセス可能にされ得るデータを記憶するためにしばしば使用される。1つの一般的なタイプのデータベースは、リレーショナルデータベースであり、複数のテーブルが記憶されたデータエントリの間の関係によりリンクされる。いくつかのデータベースでは、これらのテーブルのいくつかの中で行を識別するために固有のキーが使用される。
従来のデータベースは、典型的には、データベース内のレコードを更新するために「アップデート・イン・プレース(update-in-place)」プロセスを使用する。データベース内のレコードが修正されるとき、アップデート・イン・プレースプロセスは、典型的には、前のレコードを保持する記憶デバイスの物理ブロックを、そのレコードの更新されたバージョンで上書きする。アップデート・イン・プレースプロセスは、レガシー記憶デバイス(例えば、ハードディスクドライブ(Hard Disk Drive, HDD))でうまく機能する。追加専用記憶デバイス(例えば、ソリッドステートドライブ(Solid State Drives, SSD))は、レガシーHDDに対して、改善された読み取り及び書き込み速度性能と低減された電力消費とを含む多数の利点を提供する。その結果、現代のデータセンタは、追加専用記憶デバイスをますます組み込んでいる。しかし、追加専用記憶デバイスは、レガシーデータベースシステムでの使用にあまり適さない。
本発明の一態様によれば、1つ以上のプロセッサと、1つ以上のプロセッサにより実行されたとき、1つ以上のプロセッサに対して、ページの1つ以上のコンポーネントブロックに関するページ書き込み要求を受信させ、ログライタにより、ログディレクトリ内のページに対応する論理識別子を決定させ、ログライタにより、記憶ノードの追加専用記憶ログに追加するために、1つ以上のコンポーネントブロックのそれぞれ対応するコンポーネントブロックを記憶ノードに送信させ、記憶ノードから、1つ以上のコンポーネントブロックの各コンポーネントブロックの物理記憶位置を受信させ、ログディレクトリにおいて、1つ以上のコンポーネントブロックのそれぞれの物理記憶位置を、ページに対応する論理識別子に関連付けさせる、プロセッサ実行可能命令を記憶するメモリとを含む装置が提供される。
上記の実施形態のいずれかにおいて、プロセッサ実行可能命令は、更に、1つ以上のプロセッサに対して、ページに関するページ読み取り要求を受信させ、ログディレクトリにより、記憶ノード内の要求されたページの1つ以上のコンポーネントブロックの物理記憶位置を決定させ、ページリーダにより、1つ以上のコンポーネントブロックの物理記憶位置に基づいて、記憶ノードから、要求されたページの1つ以上のコンポーネントブロックを取り出させ、要求されたページを返信させる。
上記の実施形態のいずれかにおいて、要求されたページの1つ以上のコンポーネントブロックは、少なくとも2つのコンポーネントブロックを含み、要求されたページを返信することは、ページリーダにより、少なくとも2つの取り出されたコンポーネントブロックから、要求されたページを再構築することを含む。
上記の実施形態のいずれかにおいて、プロセッサ実行可能命令は、更に、1つ以上のプロセッサに対して、ログライタにより、記憶ノードの追加専用記憶ログに追加するために、再構築されたページを記憶ノードに送信させる。
上記の実施形態のいずれかにおいて、少なくとも2つのコンポーネントブロックは、記憶ノードから並列に取り出される。
上記の実施形態のいずれかにおいて、コンポーネントブロックは、完全なページ及びページデルタのうち1つ以上を含む。
上記の実施形態のいずれかにおいて、記憶ノードはデータベースノードから離れている。
上記の実施形態のいずれかにおいて、記憶ノードはデータベースノードに対してローカルである。
上記の実施形態のいずれかにおいて、当該装置は、データベースノード及び記憶ノードのうち1つに統合される。
上記の実施形態のいずれかにおいて、プロセッサ実行可能命令は、更に、1つ以上のプロセッサに対して、ログクリーナにより、追加専用記憶ログのセグメントから少なくとも1つのライブデータブロックを収集させ、追加専用記憶ログの終端に追加するために、少なくとも1つのライブデータブロックを記憶ノードに送信させる。
上記の実施形態のいずれかにおいて、少なくとも1つのライブデータブロックは、少なくとも2つのライブデータブロックを含み、追加のために少なくとも1つのライブデータブロックを記憶ノードに送信することは、少なくとも2つのライブデータブロックからライブページを再構築し、再構築されたライブページを記憶ノードに送信することを含む。
上記の実施形態のいずれかにおいて、プロセッサ実行可能命令は、更に、1つ以上のプロセッサに対して、追加専用記憶ログのセグメントをクリアするように記憶ノードに命令させる。
本発明の他の態様によれば、データベースノードにおいて、ページの1つ以上のコンポーネントブロックに関するページ書き込み要求を受信するステップと、ログディレクトリ内のページに対応する論理識別子を決定するステップと、記憶ノードの追加専用記憶ログに追加するために、1つ以上のコンポーネントブロックのそれぞれ対応するコンポーネントブロックを記憶ノードに送信するステップと、記憶ノードから、1つ以上のコンポーネントブロックの各コンポーネントブロックの物理記憶位置を示すデータを受信するステップと、ログディレクトリにおいて、1つ以上のコンポーネントブロックのそれぞれの物理記憶位置を、ページに対応する論理識別子に関連付けるステップとを含む方法が提供される。
上記の実施形態のいずれかにおいて、当該方法は、データベースノードにおいて、ページに関するページ読み取り要求を受信したことに応じて、ログディレクトリにより、記憶ノード内の要求されたページの1つ以上のコンポーネントブロックの物理記憶位置を決定するステップと、1つ以上のコンポーネントブロックの物理記憶位置に基づいて、記憶ノードから、要求されたページの1つ以上のコンポーネントブロックを取り出すステップと、要求されたページを返信するステップとを更に含む。
上記の実施形態のいずれかにおいて、要求されたページの1つ以上のコンポーネントブロックは、少なくとも2つのコンポーネントブロックを含み、要求されたページを返信するステップは、ページリーダにより、少なくとも2つの取り出されたコンポーネントブロックから、要求されたページを再構築するステップを含む。
上記の実施形態のいずれかにおいて、当該方法は、記憶ノードの追加専用記憶ログに追加するために、再構築されたページを記憶ノードに送信するステップを更に含む。
上記の実施形態のいずれかにおいて、少なくとも2つのコンポーネントブロックは、記憶ノードから並列に取り出される。
上記の実施形態のいずれかにおいて、コンポーネントブロックは、完全なページ及びページデルタのうち1つ以上を含む。
上記の実施形態のいずれかにおいて、記憶ノードはデータベースノードから離れている。
上記の実施形態のいずれかにおいて、記憶ノードはデータベースノードに対してローカルである。
上記の実施形態のいずれかにおいて、当該方法は、記憶ノードの追加専用記憶ログのセグメントから少なくとも1つのライブデータブロックを収集するステップと、追加専用記憶ログの終端に追加するために、少なくとも1つのライブデータブロックを記憶ノードに送信するステップとを更に含む。
上記の実施形態のいずれかにおいて、少なくとも1つのライブデータブロックは、少なくとも2つのライブデータブロックを含み、追加のために少なくとも1つのライブデータブロックを記憶ノードに送信するステップは、少なくとも2つのライブデータブロックからライブページを再構築し、再構築されたライブページを記憶ノードに送信するステップを含む。
上記の実施形態のいずれかにおいて、当該方法は、記憶ノード上の追加専用記憶ログのセグメントをクリアするように記憶ノードに命令するステップを更に含む。
例示的な実施形態を示す図面において、
例示的なデータベースシステムを示すブロック図である。 例示的なクライアントデバイスのコンポーネントを示すブロック図である。 例示的なデータベースノードのコンポーネントを示すブロック図である。 データベースノード及び追加専用記憶ノード上で実行するレイヤの図である。 図1のデータベースクラスタのコンポーネントの論理表現を示す展開図である。 ログライタのコンポーネントの動作を示すブロック図である。 ログクリーナのコンポーネントの動作を示すブロック図である。 集中記憶抽象化レイヤを有するサービスを提供する例示的なデータベースクラスタを示すブロック図である。 分散記憶抽象化レイヤを有するサービスを提供する例示的なデータベースクラスタを示すブロック図である。
これらの図面は、例示的な目的のための例示的な実施形態の態様を示す。
上記のように、HDDは比較的容易にデータブロックを見つけて新たなデータで上書きできるので、HDDでは「アップデート・イン・プレース」プロセスが特にうまく機能する。しかし、SSDのような追加専用記憶デバイスは、HDDと同じように動作しない。追加専用記憶デバイスは、典型的には、新たなデータを書き込む前に最初に同じ物理ブロックを消去するための複数の動作を実行することなしに、その物理ブロック内のデータを上書きできない。
追加専用記憶デバイスにおいてデータが修正されるとき、追加専用記憶デバイスは、典型的には、前のデータと同じ物理位置内のデータを上書きせず、その代わりに、修正されたデータを既に空のブロック又はページに書き込む。次いで、データの前のバージョンは削除のためにマークされ、「ガーベジコレクション」として知られるプロセスを通じて最終的に除去される。ガーベジコレクションは、追加専用記憶デバイスの通常動作中に様々な間隔で発生する可能性がある。
ガーベジコレクション中に見つかった陳腐化したデータブロックにより占有される空間は、空間が再利用される前に消去(クリア)される。SSDにおいて使用される記憶媒体は、消去サイクルの点で限られた寿命を有するので、アップデート・イン・プレースプロセスの使用は、SSDのような追加専用記憶デバイスの寿命を短くする可能性がある。さらに、アップデート・イン・プレースプロセスは、(SSDのような追加専用記憶デバイスにおいてより高い性能を達成するシーケンシャルライトとは対照的に)頻繁なランダムライトが必要とされるので、追加専用記憶デバイスにおいて非効率的である。
上記を考慮して、従来のデータベース管理システムにより使用される従来の「アップデート・イン・プレース」プロセスは、SSDのような現代の追加専用記憶デバイスで使用するのにはあまり適していない。本開示は、データベース管理レイヤと記憶レイヤ内の追加専用物理記憶デバイスとの間で命令をインタフェースするための装置及び方法を提供する。
図1は、例示的なデータベースシステム100のコンポーネントを示すブロック図である。例示的なデータベースシステム100では、1つ以上のクライアントデバイス102は、通信ネットワーク104及び通信リンク103を介してデータベースクラスタ106に接続できる。データベースクラスタ106は、データベースサービスを実現し、データリンク109を介して追加専用記憶ノード110からデータを記憶して取り出すように動作可能なデータベースノード108を含む。図1は、追加専用記憶ノード110をデータベースノード108から離れたものとして示すが、いくつかの実施形態では、データベースノード108は、ローカルの追加専用記憶デバイスを含むことが考えられる。通信リンク103は、有線又は無線でもよく、通信ネットワーク104を介してデータをデータベースノード108に送信するためのいずれか許容可能なプロトコルを使用してもよい。図示のように、データベースノードは、3つの追加専用記憶ノード110を含む。3つよりも少ないか或いは3つよりも多い追加専用記憶ノード110が存在する実施形態が考えられることが認識されるべきである。追加専用記憶ノード110は、例えば、SSD記憶デバイスを含んでもよい。
図2は、例示的なクライアント102のコンポーネントを示すブロック図である。クライアント102は、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、スマートフォン等のようないずれか適切な計算デバイスでもよい。クライアント102は、クライアント102の全体動作を制御する1つ以上のプロセッサ201を含む。プロセッサ201は、メモリバス203を介してメモリ204と相互作用し、バス209を介してストレージ206、I/Oデバイス208及びネットワークインタフェース210と相互作用する。バス209は、周辺バス、ビデオバス等を含む、いずれかのタイプのいくつかのバスのうち1つ以上でもよい。
各プロセッサ201は、例えば、ARM又はx86命令セットを実現する中央処理装置(central processing unit, CPU)のようないずれか適切なタイプのプロセッサでもよく、グラフィック処理装置(Graphics Processing Unit, GPU)又は他のこのようなプロセッサのような専門のプロセッサを更に含んでもよい。メモリ204は、スタティックランダムアクセスメモリ(static random access memory, SRAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory, DRAM)、シンクロナスDRAM(synchronous DRAM, SDRAM)、読み取り専用メモリ(read-only memory, ROM)又はこれらの組み合わせのような、プロセッサ201により読み取り可能ないずれか適切なタイプのシステムメモリを含む。実施形態では、メモリ201は、ブートアップ時に使用するためのROM並びにプログラムを実行する間に使用するためのプログラム及びデータ記憶のためのDRAMのような1つより多くのタイプのメモリを含んでもよい。ストレージ206は、データ、プログラム及び他の情報を記憶し、バス209を介してデータ、プログラム及び他の情報をアクセス可能にするように構成されたいずれか適切な非一時的な記憶デバイスを含んでもよい。ストレージ206は、例えば、ソリッドステートドライブ、ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ、セキュアディジタル(secure digital, SD)メモリカード等のうち1つ以上を含んでもよい。
I/Oデバイス208は、例えば、レンダリングされた画像を出力として表示し、タッチの形式で入力を受け取ることが可能なタッチセンシティブ表示デバイスを含む、表示デバイスのようなユーザインタフェースデバイスを含む。いくつかの実施形態では、I/Oデバイス208は、更に或いは代替として、スピーカ、マイクロホン、カメラ、加速度計及び全地球測位システム(global positioning system, GPS)受信機のようなセンサ、キーパッド等のうち1つ以上を含む。いくつかの実施形態では、I/Oデバイス208は、クライアント102を他のクライアントデバイスに接続するためのポートを含む。例示的な実施形態では、I/Oデバイス208は、周辺機器又はホスト計算デバイスに接続するためのユニバーサルシリアルバス(universal serial bus, USB)コントローラを含む。
ネットワークインタフェース210は、クライアント102を通信ネットワーク104に接続可能である。いくつかの実施形態では、ネットワークインタフェース210は、有線インタフェース(例えば、有線イーサネット)と、WiFi、ブルートゥース又はセルラー(例えば、GPRS、GSM、EDGE、CDMA、LTE等)のようなワイヤレス無線機とのうち1つ以上を含む。ネットワークインタフェース210は、クライアント102が通信ネットワーク104及び通信リンク103を介してデータベースクラスタ106と通信することを可能にする。ネットワークインタフェース210はまた、仮想プライベートネットワーク(Virtual Private Network, VPN)のような仮想ネットワークインタフェースを確立するために使用できる。
図3は、例示的なデータベースノード108のコンポーネントを示すブロック図である。ここで説明するように、データベースノード108は、ハードウェアデバイスと、ハードウェアデバイスのメモリ内で実行するソフトウェアとの組み合わせを含む。データベースノード108のハードウェアデバイスは、1つ以上のプロセッサ181と、メモリ184と、ネットワークインタフェース190とを含む。1つ以上のプロセッサ181は、メモリバス183を介してメモリ184と相互作用し、バス189を介してネットワークインタフェース190と相互作用する。図示のように、データベースノード108のハードウェアデバイスは、いくつかの実施形態では、追加専用ストレージ185を含んでもよい。ローカルの追加専用ストレージ185は、フラッシュベースのSSDのようないずれかの数の適切な追加専用記憶デバイスを含んでもよい。当業者は、データベースノード108が、追加専用ストレージ185の代わりに或いは追加専用ストレージ185に加えて、ハードディスクドライブのような従来の記憶要素を更に含んでもよいことを認識する。
図3に示すように、追加専用記憶ノード110は、データベースノード108の外部に位置し、データベースノード108は、ネットワークインタフェース190を介して追加専用記憶ノード110と通信できる。追加専用記憶ノード110は、ハードウェアデバイスと、ハードウェアデバイスのメモリ内で実行するソフトウェアとの組み合わせを含む。追加専用記憶ノード110のハードウェアデバイスは、1つ以上のプロセッサと、メモリと、ネットワークインタフェースと、1つ以上の追加専用記憶デバイス350(一般的に、以下では追加専用記憶デバイス350と呼ばれ、まとめて追加専用記憶デバイス185と呼ばれる)とを含んでもよい。各追加専用記憶デバイス350は、SSDのようないずれか適切な追加専用記憶デバイスでもよい。いくつかの実施形態では、追加専用記憶ノード110は、追加専用記憶デバイス350に加えて、ハードディスクドライブのような従来の記憶要素を含んでもよい。従来の記憶要素の存在は、データベースノード108(又は追加専用記憶ノード110の外部のいずれかのノード)には明らかでなくてもよく、従来の記憶要素の存在は、追加専用記憶デバイス350内にデータを記憶する目的で、どのようにデータベースノード108が追加専用記憶ノード110と相互作用するかを必ずしも変化させるものではないことが理解される。
図4は、図1のデータベースクラスタ106のコンポーネントの論理表現を示す展開図である。データベースクラスタ106は、データベースサービスを提供するプラットフォームであり、データベース管理システム(database management system, DBMS)レイヤ305と、記憶抽象化レイヤ310と、記憶レイヤ315とを含む。DMBSレイヤ305は、データベースノード108の1つ以上のプロセッサ181により、プロセッサ実行可能命令のようなソフトウェアの実行を通じて提供されてもよい。ソフトウェアの実行の際、データベースノード108は、DMBSレイヤ305(又はレイヤの構成部分)として機能するように構成される。記憶レイヤ315は、記憶機能の表現である。一実施形態では、これは、追加専用記憶ノード110の1つ以上のプロセッサにより実行されたとき、記憶レイヤ315(又はレイヤの構成部分)として機能するように図1の追加専用記憶ノード110を構成する、プロセッサ実行可能命令のようなソフトウェアとして提供される。いくつかの実施形態では、データベースノード108がローカルの追加専用ストレージ185を含むとき、記憶レイヤ315はまた、ローカルの追加専用記憶デバイス185の動作を制御する。記憶抽象化レイヤ310は、DMBSレイヤ305と記憶レイヤ315との間のインタフェースである。いくつかの実施形態では、記憶抽象化レイヤ310は、計算プラットフォーム内のプロセッサにより実行されたとき、DBMSレイヤ305から読み取りページ要求、書き込みページ要求及び書き込みページデルタ要求を含む要求を受信し、記憶レイヤ315が追加専用記憶ノード110の物理的な追加専用記憶デバイス350上にデータを記憶すること、追加専用記憶ノード110の物理的な記憶デバイスからデータを取り出すこと、又は追加専用記憶ノード110の物理的な記憶デバイス上のデータを修正することを可能にする命令にこれらの要求を変換又は翻訳するようにプラットフォームのリソースを構成する、プロセッサ実行可能命令のようなソフトウェアとして実現できる。記憶抽象化レイヤ310は、以下に詳細に更に説明するように、記憶レイヤ315の追加専用物理記憶デバイス上に記憶されたデータの永続性を確保しつつ、DBMSレイヤ305から受信した要求にサービス提供するように構成できる。いくつかの実施形態では、記憶抽象化レイヤ310のプロセッサ実行可能命令は、メモリにロードされ、装置の1つ以上のプロセッサにより実行される。いくつかの実施形態では、記憶抽象化レイヤ310は、以下に詳細に更に説明するように、データベースノード108に統合されてもよい。いくつかの実施形態では、記憶抽象化レイヤ310は、以下に詳細に更に説明するように、追加専用記憶ノード110に統合できる。起こり得る冗長性を導入し得るが、記憶抽象化レイヤ310は、DBMSレイヤ305及び記憶レイヤ315のそれぞれに統合されてもよい。記憶抽象化レイヤが異なるレイヤの機能を提供するノード又はリソースに統合される実施形態では、記憶抽象化レイヤが統合されるレイヤに関連する処理リソースは、記憶抽象化レイヤとして機能するようにリソースを構成するソフトウェアを実行するために使用できる。
当業者は、データベースクラスタ106のようなデータセンタでは、ソフトウェアが実行できる仮想ハードウェアプラットフォームを提供するために仮想化が使用されてもよいことを認識する。実行されているソフトウェアの観点から、仮想化されたハードウェアは物理的なハードウェアとは異ならない。仮想化は、多数の異なる方法で実行されてもよく、複数の異なる物理データベースノード及び追加専用記憶ノードのリソース上に作成される単一の仮想化ハードウェアプラットフォームを生じてもよい。同様に、複数の異なる仮想ハードウェアプラットフォームは、単一の物理データベースノード108、追加専用記憶ノード110又はその双方上に作成されてもよい。
図4に示すように、DBMSレイヤ305は、「読み取りページ」要求及び「書き込みページデルタ」要求を発行する能力を提供する。いくつかの実施形態では、DBMSレイヤ305は、SQLサーバ、DB2、MySQL、PostgreSQL、Oracle、SQLite等を使用して実現される。DBMSレイヤ305は、バッファプール306(バッファキャッシュとも呼ばれる)を含む。バッファプール306は、データベースページを含む。DBMSレイヤ305は、記憶レイヤ315からページを要求し(「読み取りページ」要求)、新たなページを記憶レイヤ315に書き込むか(「書き込みページ」要求)或いは記憶レイヤ315内の既存のページを修正する(「書き込みページデルタ」要求)ように動作可能である。ここで説明するように、ページデルタは、追加専用ログ316内のページの以前のバージョンからの変更として符号化されるページに対する修正である。ページデルタは、追加専用ログ316に追加できる。
図示のように、バッファプール306は、記憶のための第1のページの第1のバージョン(ページ1バージョン1 307として示す)と、第2のページの第8のバージョン(ページ2バージョン8 308として示す)とを含む。
記憶レイヤ315は、ページのコンポーネントブロックの完全なイメージ(典型的には、ページの最近のバージョン)を含む追加専用ログ316を含み、また、そのページのための以降のデルタも含んでもよい。図示のように、追加専用ログ316は、第1のページの完全なイメージ(ページ1バージョン1 307として示す)と、第2のページの第6のバージョンの完全なイメージ(ページ2バージョン6 318aとして示す)、第2のページの第6のバージョンに対する以降の変更を含むデルタ(ページ2バージョン7 318bとして示す)、及び第2のページの第7のバージョンに対する以降の変更を含むデルタ(ページ2バージョン8 318cとして示す)とを含む。いくつかの実施形態では、ブロック318a、318b及び318cは、追加専用記憶ノード110上の追加専用記憶デバイス350内のシーケンシャルブロック上に記憶される。図4に示すように、ブロック318b及び318cは、シーケンシャルブロック内に記憶される。
図4に示すように、記憶抽象化レイヤ310は、ログディレクトリ311と、ログライタ312と、ページリーダ313と、ログクリーナ314とを含む。ログクリーナ314は任意選択のコンポーネントであり、いくつかの実施形態では、記憶抽象化レイヤ310はログクリーナ314を含まないことが認識されるべきである。
記憶抽象化レイヤ310は、論理識別子をコンポーネントブロックの物理位置に関連付けるためにログディレクトリ311を使用する。ログディレクトリ311は、記憶ノード110内の物理的な追加専用記憶デバイス上の全ページ及びページデルタ(ここでは、まとめてページの「コンポーネントブロック」と呼ばれる)の位置を追跡するデータを含む。いくつかの実施形態では、ログディレクトリは、どの追加専用記憶ノード110がページを記憶するかと、その追加専用記憶ノード110内のどの特定の追加専用記憶デバイスがページを記憶するかとを示すデータを含む。例えば、図4に示すように、ログディレクトリ311は、ページ1及び2の各コンポーネントブロック(ページ1バージョン1 307、ページ2バージョン6 318a、ページ2バージョン7 318b及びページ2バージョン8 318c)の物理位置を追加専用ログ316に記憶する。
記憶抽象化レイヤ310は、コンポーネントブロックを追加専用ログ316に追加するために、ログライタ312を使用する。ログライタ312は、「書き込みページ」要求を受信し、新たなコンポーネントブロック(すなわち、ページ又はページデルタ)又はコンポーネントブロックのグループを記憶レイヤ315の追加専用ログ316に追加するように、記憶レイヤ315に命令するように動作可能である。記憶抽象化レイヤ310がDBMSレイヤ305から書き込み要求を受信したとき、記憶抽象化レイヤ310は、論理識別子をコンポーネントブロックに関連付け、論理識別子をログディレクトリ311に記録する。コンポーネントブロックは記憶レイヤ315に送信され、これはコンポーネントブロックを追加専用ログ316に追加する。一旦追加されると、記憶レイヤ315は、追加されたコンポーネントブロックの物理位置の識別子を返信又は送信する。次いで、記憶抽象化レイヤ310は、コンポーネントブロックの物理位置の受信した識別子を、ログディレクトリ311内の論理識別子に関連付ける。いくつかの実施形態では、追加専用ログ316に追加されるコンポーネントブロックは、物理記憶デバイス内のシーケンシャル記憶ブロックに追加される。
ページリーダ313は、追加専用ログ316に記憶された完全なページ及びいずれかの以降のページデルタに基づいて、ページの要求されたバージョンを再構築するように動作可能である。いくつかの実施形態では、記憶抽象化レイヤ310は、ログクリーナ314を含む。ログクリーナ314は、コンポーネントブロックに基づいてページの集約バージョンを構築し、次いで、陳腐化したデータを廃棄し、追加専用ログ316を集約するように記憶レイヤ315に命令するように動作可能である。ログクリーナ314はまた、コンポーネントブロックを集約することなく、コンポーネントブロックをログの前面にコピーしてもよい。
DBMSレイヤ305は、追加専用記憶ノード110の記憶レイヤ315及び物理記憶デバイス350の実現の詳細を認識しない。記憶抽象化レイヤ310は、ページ読み取り要求及びページ書き込み要求を、1つのコンポーネントブロック又は複数のコンポーネントブロックを追加専用記憶デバイス350に追加する動作と、追加専用物理記憶デバイス350から1つのコンポーネントブロック又は複数のコンポーネントブロックを読み取る動作とを記憶レイヤ315に実行させる命令に変換又は翻訳するために、DMBSレイヤ305と記憶レイヤ315との間のインタフェースとして機能する。
図5は、記憶抽象化レイヤ310内のページリーダのコンポーネント313の動作を示すブロック図である。記憶抽象化レイヤ310がDBMSレイヤ305からページ読み取り要求を受信したとき、読み取り動作が開始される。この例では、ページ読み取り要求は、ページ2の最新バージョンについてのものである。ページ読み取り要求が記憶抽象化レイヤ310のページリーダ313により受信されたとき、ページリーダ313は、要求されたページの論理識別子を決定し、ログディレクトリ311内の要求されたページの各コンポーネントブロックの物理位置を検索する。いくつかの実施形態では、各ブロックの物理位置は、要求されたブロックを記憶する追加専用記憶ノード110を示す識別子と、ブロックを記憶する追加専用記憶デバイス350、352を示す識別子とを含む。この例では、要求されたページのコンポーネントブロックは、完全なバージョン6 318aと、デルタ318b及び318cとを含む。ログディレクトリ311から各ページ及びデルタの位置を受信すると、記憶抽象化レイヤ310は、記憶レイヤ315と相互作用し、これは、記憶レイヤ315内の追加専用ログ316からページ及びデルタのそれぞれを取り出し、取り出されたページ及びデルタのそれぞれを記憶抽象化レイヤ310に送信する。いくつかの実施形態では、取り出されたページ及びデルタは、並列に取り出される。
一旦受信すると、ページリーダ313は、要求されたページの最新の完全なバージョン(318a)から始まり、次いで、以降のデルタ318b及び318cを処理することにより、ページ2を再構築し、これは、ページ2の再構築された完全なバージョン、バージョン8 318の作成を生じる。次いで、再構築されたページ318は、DBMSレイヤ305のバッファプール306に送信され、ページは、例えば、クライアントデバイス102により読み取られるか或いは修正されるのに利用可能になる。
いくつかの実施形態では、記憶抽象化レイヤ310は、ログライタ312を使用してページ2の再構築された完全なバージョン、バージョン8 318を追加専用ログ316に追加するために記憶レイヤ315と相互作用してもよい。完全なページ2、バージョン8 318が追加専用ログ316に追加された場合、ページリーダ313はまた、新たに追加されたページ318の物理記憶位置を含むログディレクトリ311への更新を提供する。当業者は、ページ2の完全なバージョン、バージョン8 318の追加が、以前にログ記録されたコンポーネントブロック318a、318b及び318cが冗長になることを生じることを認識する。
したがって、再構築された完全なページ2、バージョン8 318を追加専用ログ316に追加することは、ログクリア機構が追加専用ログ316から冗長なコンポーネントブロック318a、318b及び318cを除去することを可能にし、したがって、ログ316内の空間をクリアする。さらに、ページ2の完全なバージョン、バージョン8 318を書き込むことは、以前のコンポーネントブロック318a、318b、318cを使用してページ2バージョン8を再構築する必要性を無くし、これは、そのページについてのより効率的な以降の読み取り動作を生じ得る点に留意すべきである。
上記のように、コンポーネントブロック(完全なページ及びページデルタ)は、記憶レイヤ315内の追加専用ログ316に書き込まれるか或いは追加されてもよい。図6は、書き込み/追加動作を実行するために記憶レイヤ315と相互作用するログライタ312の例示的な動作を示すブロック図である。追加プロセスは、記憶抽象化レイヤ310が、DBMSレイヤ305からページ書き込み要求を受信したときに始まる。ページ書き込み要求は、DBMSレイヤ305により作成されたページデルタを有するログバッファを含んでもよい。この例では、DBMSレイヤ305は、ページ2のデルタ(バージョン9 318d)を含むページ書き込み要求を送信する。図示のように、書き込み要求は、簡潔性の目的のために、1つのページデルタのみを含む。ページ書き込み要求が、記憶レイヤ315の追加専用ログ316へのエントリのために複数のページデルタを含む実施形態が考えられる点に留意すべきである。
ログバッファ内のコンポーネントブロック毎に、ログライタ312は、各コンポーネントブロックが適用するログディレクトリ311内の論理識別子を決定するために、コンポーネントブロックの内容を解析する。コンポーネントブロックについてログディレクトリ311内に対応するログエントリが存在しない場合、そのコンポーネントブロックについての論理識別子を使用して、新たなエントリがログディレクトリ311内に作成される。次いで、ログライタ312は、ページ2のデルタ、バージョン9 318dを追加専用ログ316に追加するために、命令を記憶レイヤ315に送信する。複数のデルタが追加されている実施形態では、複数のデルタは、追加専用ログ316に順次書き込まれてもよい点に留意すべきである。
デルタ318dを追加専用ログ316に書き込んだ後に、ログライタ312は、ページデルタ318dの物理位置を示す識別子を記憶レイヤ315から受信する。次いで、デルタ318dの物理位置を示す識別子は、ログディレクトリ311内のコンポーネントブロックについての論理識別子に関連付けられる。
デルタ318dを追加専用ログ316に正常に書き込み、ログディレクトリ311に位置を記憶すると、記憶抽象化レイヤ310は、書き込み動作が成功したことを示す応答をDBMSレイヤ305に送信又は返信する。
いくつかの実施形態では、記憶抽象化レイヤ310は、ログクリーナ314を含む。ログクリーナ314は、記憶レイヤ315の追加専用ログ316の1つ以上のセグメントをクリーニング又は集約するために記憶レイヤ315と相互作用するように動作可能である。いくつかの実施形態では、ログクリーナ314は、追加専用ログ316を周期的に集約する。いくつかの実施形態では、ログクリーナ314は、ポリシーに従って追加専用ログ316を集約する。例えば、1つのポリシーは、追加専用ログ316内の最も古いセグメントが集約のための対象となってもよいことでもよい。他のポリシーは、最小の「ライブ」データを含む追加専用ログ316のセグメントが集約のための対象となってもよいことでもよい。ここで説明するように、ライブデータは、DBMSレイヤ305内のアクティブトランザクションにより関与するか或いは潜在的に必要とされ得るデータを示す。
追加専用ログ316のセグメント316aが集約のために選択されると、ログクリーナ314は、ログセグメント316a内のコンポーネントブロック(ページ又はデルタ)が破棄できるか否かを決定するために、ログディレクトリ311を参照する。例えば、図5を参照すると、追加専用ログ316は、ページ2に関するいくつかの陳腐化したコンポーネントブロック(すなわち、ブロック318a、318b及び318c)と、ページ2の再構築された完全なバージョン、バージョン8(すなわち、ブロック318)とを含む。このような状況では、有用なデータが再構築された完全なブロック318に残っているので、冗長なブロック318a、318b及び318cは、何ら有用なデータを失うことなく廃棄できる。
図7に示すように、記憶レイヤ315の追加専用ログ316bの終端のセグメントは、追加専用ログ316への直近に書き込まれたブロックを含み、これは、ページ1バージョン1(ブロック307)及び再構築されたページ2バージョン8(ブロック318)である。図7の例では、追加専用ログ316のセグメント316aが、記憶抽象化レイヤ310のログクリーナ314による集約のために選択されている。図示のように、セグメント316aは、セグメント316a内の空間を占有するデッドデータ340の複数のインスタンスを含む。コンポーネントブロックは、いずれかのアクティブなトランザクション又はいずれかの将来のトランザクションによりもはや必要とされない場合、デッドと考えられる。セグメント316aはまた、ページ3(すなわち、ブロック342a及び342b)、ページ4(すなわち、ブロック343a及び343b)及びページ5(すなわち、ブロック344a)に関するブロックを含む。
ページ3について、ブロック342a及び342bは、ページ3の現在のバージョン(完全なページ3、バージョン2 342として示す)を再構築するために使用でき、これは、次いで、追加専用ログ316の終端のセグメント316bに追加される。ページ4について、ページ4の再構築された完全なバージョン、バージョン2 343を追加専用ログ316の終端のセグメント316bに追加するために、同様のプロセスが行われる。ページ5について、1つのブロック344aのみが存在するので、ブロック344aは、追加専用ログ316の終端のセグメント316bに追加できる。ログディレクトリ311は、上記のように、ページ3、4及び5のそれぞれについて、新たに書き込まれたブロック342、343及び344aの物理位置を反映するように更新されることが認識されるべきである。
ブロック342、343及び344aのそれぞれが追加専用ログ316の終端に追加されると、追加専用ログ316の選択されたセグメント316aは、セグメント316a内のブロックのそれぞれが追加専用ログ316の終端のセグメント316b内のブロック342、343及び344aにより冗長になったブロック又はデッドデータを表すので、冗長になる。したがって、記憶抽象化レイヤ315は、追加専用ログ316のセグメント316aを破棄し、セグメント316aがもはや必要とされないことを記憶レイヤ315に通知し、これは、記憶レイヤ315が他のデータを記憶するためにセグメント316aを使用することを可能にする。ログクリーナ314は、陳腐化した冗長なデータブロックを除去することにより、追加専用ログ316がコンパクト化されて集約できるという点で有用になり得る。ログの集約は、追加専用記憶ノード110のより効率的な使用と、データベースクラスタ106からのページのより高速な取り出しとを可能にする(追加専用ログ316内の複数ブロックからページを再構築するために必要なオーバーヘッド処理が低減又は回避され得るので)。
分散計算システム100の利点のうち1つは、データベースについて可能な実現構成に関して柔軟性があることである。例えば、記憶抽象化レイヤ310は、完全に集中化された方式で実現でき、また、分散方式で実現することもできる。
図8は、集中記憶抽象化レイヤ310を有するデータベースサービスを提供するデータベースクラスタ806の例を示すブロック図である。図示のように、記憶抽象化レイヤ310は、データベースノード108に完全に統合される。記憶レイヤ315は、ローカルの追加専用ストレージ、リモートの追加専用記憶ノード110a、110b又はこれらのいずれかの組み合わせに統合されてもよい。図8に示すように、記憶レイヤ315は、データベースノード108から離れた複数の追加専用記憶ノード110a、110bを含む。
図8に示す例示的な実施形態は、多数の利点を提供する。例えば、記憶抽象化レイヤ310が様々な追加専用記憶ノード110a、110b及び追加専用記憶デバイス350a、350bから分離されていることによって、データベースクラスタ806と共に使用される追加専用記憶デバイス350a、350bについて比較的少ない要件が存在する。追加専用記憶デバイス350a、350bは、シーケンシャルライト及びランダムリード要求をサービス提供することが可能である。DBMSレイヤ305からのページ読み取り又はページ書き込み要求をログベースの動作に変換する残りの機能は、全てデータベースノード108上の記憶抽象化レイヤ310により処理され、したがって、比較的小さいカスタマイズが追加専用ストレージノード110a、110bに必要とされる。しかし、図8に示す構成では、追加専用記憶ノード110a、110bがデータベースノード108から離れて位置する場合、全ての読み取り及び書き込み動作がネットワーク接続を介して生じ、ページの再構築は、ページの各ブロックがネットワーク接続を介して記憶レイヤ315から記憶抽象化レイヤ310に送信されることを必要とするので、データベースを維持管理することに関与する高いネットワークトラフィックが存在する可能性がある。
図9は、記憶抽象化レイヤ310の分散配置を有するデータベースサービスを提供する例示的なデータベースクラスタ906を示すブロック図である。図示のように、データベースクラスタ906は、いくつかの追加専用記憶ノード110a、110bに跨って共有(又は分割)される。I/Oルータ900は、記憶ノード110a、110bが各ページをデータベースに記憶するマッピングを維持管理する。I/Oルータ900は、ページ読み取り又はページ書き込み要求を受信し、要求を適切な記憶ノード110a、110b上の記憶抽象化レイヤ310a又は310bに転送するように動作可能である。図8及び図9の双方において、ログクリーナ314の存在は任意選択である点に留意すべきである。
図9に示すように、各記憶ノード110a、110bは、そのそれぞれの追加専用記憶デバイス350a、350bに記憶されたページのみを管理する局所化された記憶抽象化レイヤ310a及び310bを含む。DBMSレイヤ305からのページ読み取り要求を実行するために、バッファプール306は、特定のページについてのページ読み取り要求を発行し、I/Oルータ900は、要求内のページ識別子を検索し、どの追加専用記憶ノード110a、110b(又は破片(shard))が要求されたページを記憶するかを決定する。この例では、要求されたページは、追加専用記憶ノード110aに記憶されている。次いで、I/Oルータ900は、ページ読み取り要求を追加専用記憶ノード110aに発行し、記憶抽象化レイヤ310aは、上記のプロセスに従ってページ読み取り要求を処理する。
図9の構成の技術的利点は、拡大縮小が比較的簡単であることである。例えば、システムの複雑性における比較的小さい増加及びネットワークトラフィックへの少ない影響で、更なる追加専用記憶ノード110が図9のシステムに追加できる。要求されたページの再構築は、データベースノード108ではなく、特定の追加専用記憶ノード110内でローカルに生じるので、ネットワーク接続は、図8における構成に対して少ないトラフィックを招く。さらに、図9の構成は、データベースノード108上の処理負荷を低減し、その処理負荷を、より大容量の要求に対応する処理能力を有する可能性がより高い追加専用記憶ノード110にオフロードする。
いくつかの実施形態では、記憶抽象化レイヤ310は、記憶ノードの物理的な記憶デバイス上にデータを記憶するためにアップデート・イン・プレースプロセスを使用するレガシーデータベースシステムからの動作を、現代の追加専用記憶ノード(例えば、SSDを含む記憶ノード)のために調整された動作にトランスペアレントに変換する。上記のように、追加専用記憶ノードは、データセンタの記憶ノードでますます使用されている。アップデート・イン・プレースプロセスは、更新されたページを追加専用記憶デバイス上の「クリーンな」記憶ブロックに書き込み、次いで、ガーベジコレクション中にページの古いバージョンをクリアする。追加専用記憶デバイスが限られた数の書き込みサイクルを有することを考えると、アップデート・イン・プレースプロセスを使用することは、記憶ノードの追加専用記憶デバイスの寿命を短くしたり、或いは、記憶ノードの追加専用記憶デバイス内の特定のブロックの寿命を短くしたりする可能性がある。
本発明のいくつかの実施形態の追加専用書き込み動作によれば、それぞれの新たなページ又はページデルタは、追加専用ログ316内の次の利用可能なブロックに追加される。したがって、ここで説明するシステムの技術的利点は、それぞれの新たなページ又はページデルタが追加専用ログ316に順次書き込まれることであり、これは、ランダムライトよりも追加専用記憶デバイス350にとってより高速且つより効率的である。さらに、シーケンシャルライトは、アップデート・イン・プレースプロセスからのランダムライトと比較して、追加専用記憶デバイス350の寿命を延ばす可能性があり、それにより、コンポーネントを置換するために必要な時間が延長され得るので、データベースを動作するコストを低減する。さらに、追加専用記憶デバイス350は、HDDに対して非常に迅速に「ランダムリード」動作(すなわち、非シーケンシャル記憶ブロックからの読み取り動作)を実行でき、これは、ページ読み取り動作に必要なデータ取得がHDDを使用することよりも追加専用記憶デバイス350を使用してより高速に行われることを可能にする。
さらに、ここで説明する例示的な実施形態により例示されるように、ここで説明するシステムは、異なる記憶レイヤの実現、異なるデータベースシステム、共有されたデータベース又は共有されていないデータベースに比較的容易に適合されてもよく、先行のリソース予約なしに、記憶サイズを比較的容易に拡大縮小できる。
DMBSレイヤ305は記憶レイヤ315から分離されるので、ここで説明するシステムは、どのようにデータが物理的に記憶されるかに関して、より大きい柔軟性を可能にする。例えば、ローカルに取り付けられた追加専用記憶デバイス350、クラウドストレージ又はカスタマイズされた記憶ノードのいずれかの組み合わせが使用できる。さらに、データは、複数の追加専用記憶ノード110に跨って分割又は共有できる。さらに、ここで説明する実施形態は、MySQL、PostgreSQL等を含むが、これらに限定されない複数のデータベースシステムをサポートしてもよい。
さらに、いくつかの実施形態では、記憶抽象化レイヤ310は、キーバリュー記憶データベースのような他のタイプのデータベースと共に使用される。キーバリュー記憶データベースを使用する実施形態では、記憶抽象化レイヤ310は、DMBS 305から読み取り及び書き込み記録要求を受信してもよく、記憶抽象化レイヤ310は、読み取り及び書き込み記録要求を、記憶レイヤ315に送信される追加及び読み取りコンポーネント命令に変換する。
さらに、ここに開示される実施形態は、様々な複製方式と互換性がある。いくつかの実施形態では、記憶抽象化レイヤ310は、複製を制御する。例えば、記憶抽象化レイヤ310は、各ページ書き込み要求を複数の追加専用記憶ノード110に送信することにより複製を処理できる。いくつかの実施形態では、複製は、記憶レイヤ315により実現されてもよい。ここに開示される実施形態は、一貫した(書き込み動作が完了したと考えられるためにコンポーネントブロックの全てのコピーが書き込まれなければならない)コーラム(quorum)ベース(書き込み動作が完了したと考えられるためにコンポーネントブロックの閾値数のコピーが書き込まれなければならない)の複製方式をサポートできる。
本出願の範囲は、明細書に記載されるプロセス、機械、製造物、合成物、手段、方法及びステップの特定の実施形態に限定されることを意図するものではない。本発明の開示から当業者が容易に認識するように、ここで説明する対応する実施形態と実質的に同じ機能を実行するか或いは実質的に同じ結果を達成する、現在存在するか或いは後に開発されるプロセス、機械、製造物、合成物、手段、方法又はステップが利用されてもよい。したがって、添付の特許請求の範囲は、このようなプロセス、機械、製造物、合成物、手段、方法又はステップをその範囲内に含むことを意図している。
理解できるように、上記及び図示の詳細な実施形態は、例示のみを意図している。これらの例示的な実施形態に対して、変形、代替構成、代替コンポーネント及び修正が行われてもよい。本発明は、特許請求の範囲により規定される。

Claims (23)

1つ以上のプロセッサと、
前記1つ以上のプロセッサにより実行されたとき、前記1つ以上のプロセッサに対して、
ページの1つ以上のコンポーネントブロックに関するページ書き込み要求を受信させ、前記1つ以上のコンポーネントブロックは、ページに対する修正であるページデルタを含み、
ログディレクトリ内の前記ページに対応する論理識別子を決定させ、
記憶ノードの追加専用記憶ログに追加するために、前記1つ以上のコンポーネントブロックのそれぞれ対応するコンポーネントブロックを前記記憶ノードに送信させ、前記追加専用記憶ログは、前記ページの完全なイメージを含み、
前記記憶ノードから、前記1つ以上のコンポーネントブロックの各コンポーネントブロックの物理記憶位置を受信させ、前記ページの前記完全なイメージ及び前記ページデルタは、シーケンシャルブロック内に記憶され、
前記ログディレクトリにおいて、前記1つ以上のコンポーネントブロックのそれぞれの前記物理記憶位置を、前記ページに対応する前記論理識別子に関連付けさせる、
プロセッサ実行可能命令を記憶するメモリと
を含む装置。
前記プロセッサ実行可能命令は、更に、前記1つ以上のプロセッサに対して、
ページに関するページ読み取り要求を受信させ、
記憶ノード内の前記要求されたページの1つ以上のコンポーネントブロックの物理記憶位置を決定させ、
前記1つ以上のコンポーネントブロックの前記物理記憶位置に基づいて、前記記憶ノードから、前記要求されたページの前記1つ以上のコンポーネントブロックを取り出させ、
前記要求されたページを返信させる、請求項1に記載の装置。
前記要求されたページの前記1つ以上のコンポーネントブロックは、少なくとも2つのコンポーネントブロックを含み、前記要求されたページを返信することは、前記少なくとも2つの取り出されたコンポーネントブロックから、前記要求されたページを再構築することを含む、請求項2に記載の装置。
前記プロセッサ実行可能命令は、更に、前記1つ以上のプロセッサに対して、
前記記憶ノードの前記追加専用記憶ログに追加するために、前記再構築されたページを前記記憶ノードに送信させる、請求項3に記載の装置。
前記少なくとも2つのコンポーネントブロックは、前記記憶ノードから並列に取り出される、請求項3に記載の装置。
前記記憶ノードはデータベースノードから離れている、請求項1乃至のうちいずれか1項に記載の装置。
前記記憶ノードはデータベースノードに対してローカルである、請求項1乃至のうちいずれか1項に記載の装置。
当該装置は、データベースノード及び前記記憶ノードのうち1つに統合される、請求項1乃至のうちいずれか1項に記載の装置。
前記プロセッサ実行可能命令は、更に、前記1つ以上のプロセッサに対して、
前記追加専用記憶ログのセグメントから少なくとも1つのライブデータブロックを収集させ、
前記追加専用記憶ログの終端に追加するために、前記少なくとも1つのライブデータブロックを前記記憶ノードに送信させる、請求項1乃至のうちいずれか1項に記載の装置。
前記少なくとも1つのライブデータブロックは、少なくとも2つのライブデータブロックを含み、追加のために前記少なくとも1つのライブデータブロックを前記記憶ノードに送信することは、前記少なくとも2つのライブデータブロックからライブページを再構築し、前記再構築されたライブページを前記記憶ノードに送信することを含む、請求項に記載の装置。
前記プロセッサ実行可能命令は、更に、前記1つ以上のプロセッサに対して、
前記追加専用記憶ログの前記セグメントをクリアするように前記記憶ノードに命令させる、請求項に記載の装置。
データベースノードにおいて、ページの1つ以上のコンポーネントブロックに関するページ書き込み要求を受信するステップであり、前記1つ以上のコンポーネントブロックは、ページに対する修正であるページデルタを含む、ステップと、
ログディレクトリ内の前記ページに対応する論理識別子を決定するステップと、
記憶ノードの追加専用記憶ログに追加するために、前記1つ以上のコンポーネントブロックのそれぞれ対応するコンポーネントブロックを前記記憶ノードに送信するステップであり、前記追加専用記憶ログは、前記ページの完全なイメージを含む、ステップと、
前記記憶ノードから、前記1つ以上のコンポーネントブロックの各コンポーネントブロックの物理記憶位置を示すデータを受信するステップであり、前記ページの前記完全なイメージ及び前記ページデルタは、シーケンシャルブロック内に記憶される、ステップと、
前記ログディレクトリにおいて、前記1つ以上のコンポーネントブロックのそれぞれの前記物理記憶位置を、前記ページに対応する前記論理識別子に関連付けるステップと
を含む方法。
前記データベースノードにおいて、ページに関するページ読み取り要求を受信したことに応じて、
前記ログディレクトリにより、記憶ノード内の前記要求されたページの1つ以上のコンポーネントブロックの物理記憶位置を決定するステップと、
前記1つ以上のコンポーネントブロックの前記物理記憶位置に基づいて、前記記憶ノードから、前記要求されたページの前記1つ以上のコンポーネントブロックを取り出すステップと、
前記要求されたページを返信するステップと
を更に含む、請求項12に記載の方法。
前記要求されたページの前記1つ以上のコンポーネントブロックは、少なくとも2つのコンポーネントブロックを含み、前記要求されたページを返信するステップは、前記少なくとも2つの取り出されたコンポーネントブロックから、前記要求されたページを再構築するステップを含む、請求項13に記載の方法。
前記記憶ノードの前記追加専用記憶ログに追加するために、前記再構築されたページを前記記憶ノードに送信するステップを更に含む、請求項14に記載の方法。
前記少なくとも2つのコンポーネントブロックは、前記記憶ノードから並列に取り出される、請求項14に記載の方法。
前記記憶ノードは前記データベースノードから離れている、請求項12乃至16のうちいずれか1項に記載の方法。
前記記憶ノードは前記データベースノードに対してローカルである、請求項12乃至16のうちいずれか1項に記載の方法。
前記記憶ノードの前記追加専用記憶ログのセグメントから少なくとも1つのライブデータブロックを収集するステップと、
前記追加専用記憶ログの終端に追加するために、前記少なくとも1つのライブデータブロックを前記記憶ノードに送信するステップと
を更に含む、請求項12乃至18のうちいずれか1項に記載の方法。
前記少なくとも1つのライブデータブロックは、少なくとも2つのライブデータブロックを含み、追加のために前記少なくとも1つのライブデータブロックを前記記憶ノードに送信するステップは、前記少なくとも2つのライブデータブロックからライブページを再構築し、前記再構築されたライブページを前記記憶ノードに送信するステップを含む、請求項19に記載の方法。
前記記憶ノード上の前記追加専用記憶ログの前記セグメントをクリアするように前記記憶ノードに命令するステップを更に含む、請求項19に記載の方法。
コンピュータ読み取り可能記憶媒体であって、
コンピュータにより実行されたとき、前記コンピュータに対して、請求項12乃至21のうちいずれか1項に記載の方法を実行させる命令を含むコンピュータ読み取り可能記憶媒体。
コンピュータプログラムであって、
当該プログラムがコンピュータにより実行されたとき、前記コンピュータに対して、請求項12乃至21のうちいずれか1項に記載の方法を実行させる命令を含むコンピュータプログラム。
JP2020535996A 2017-12-29 2018-12-20 追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法 Active JP7329518B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/858,960 US10725983B2 (en) 2017-12-29 2017-12-29 Systems and methods for database management using append-only storage devices
US15/858,960 2017-12-29
PCT/CN2018/122213 WO2019128820A1 (en) 2017-12-29 2018-12-20 Systems and methods for database management using append-only storage devices

Publications (2)

Publication Number Publication Date
JP2021508879A JP2021508879A (ja) 2021-03-11
JP7329518B2 true JP7329518B2 (ja) 2023-08-18

Family

ID=67058252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020535996A Active JP7329518B2 (ja) 2017-12-29 2018-12-20 追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法

Country Status (5)

Country Link
US (3) US10725983B2 (ja)
EP (1) EP3724770B1 (ja)
JP (1) JP7329518B2 (ja)
CN (1) CN111936977A (ja)
WO (1) WO2019128820A1 (ja)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9514007B2 (en) * 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10817388B1 (en) 2017-07-21 2020-10-27 EMC IP Holding Company LLC Recovery of tree data in a geographically distributed environment
US10684780B1 (en) 2017-07-27 2020-06-16 EMC IP Holding Company LLC Time sensitive data convolution and de-convolution
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
US10817374B2 (en) 2018-04-12 2020-10-27 EMC IP Holding Company LLC Meta chunks
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US11252119B2 (en) * 2018-06-04 2022-02-15 Salesforce.Com, Inc. Message logging using two-stage message logging mechanisms
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US10936196B2 (en) 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US10719250B2 (en) 2018-06-29 2020-07-21 EMC IP Holding Company LLC System and method for combining erasure-coded protection sets
US10901951B2 (en) * 2018-07-17 2021-01-26 International Business Machines Corporation Memory compaction for append-only formatted data in a distributed storage network
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US10901635B2 (en) 2018-12-04 2021-01-26 EMC IP Holding Company LLC Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns
US11119683B2 (en) 2018-12-20 2021-09-14 EMC IP Holding Company LLC Logical compaction of a degraded chunk in a geographically diverse data storage system
US10931777B2 (en) * 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
US10892782B2 (en) 2018-12-21 2021-01-12 EMC IP Holding Company LLC Flexible system and method for combining erasure-coded protection sets
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10768840B2 (en) 2019-01-04 2020-09-08 EMC IP Holding Company LLC Updating protection sets in a geographically distributed storage environment
US10942827B2 (en) 2019-01-22 2021-03-09 EMC IP Holding Company LLC Replication of data in a geographically distributed storage environment
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US10942825B2 (en) 2019-01-29 2021-03-09 EMC IP Holding Company LLC Mitigating real node failure in a mapped redundant array of independent nodes
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
US11029865B2 (en) 2019-04-03 2021-06-08 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes
US10944826B2 (en) 2019-04-03 2021-03-09 EMC IP Holding Company LLC Selective instantiation of a storage service for a mapped redundant array of independent nodes
US11113146B2 (en) 2019-04-30 2021-09-07 EMC IP Holding Company LLC Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
US11119686B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Preservation of data during scaling of a geographically diverse data storage system
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
CN111886591A (zh) 2019-09-12 2020-11-03 创新先进技术有限公司 日志结构存储系统
EP3682340A4 (en) * 2019-09-12 2020-12-02 Advanced New Technologies Co., Ltd. LOG-STRUCTURED STORAGE SYSTEMS
US11228322B2 (en) 2019-09-13 2022-01-18 EMC IP Holding Company LLC Rebalancing in a geographically diverse storage system employing erasure coding
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage environment
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11288139B2 (en) 2019-10-31 2022-03-29 EMC IP Holding Company LLC Two-step recovery employing erasure coding in a geographically diverse data storage system
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11144220B2 (en) 2019-12-24 2021-10-12 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes
US11580110B2 (en) 2019-12-31 2023-02-14 Huawei Cloud Computing Technologies Co., Ltd. Methods and apparatuses for generating redo records for cloud-based database
US11231860B2 (en) 2020-01-17 2022-01-25 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage with high performance
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847100B2 (en) 2020-11-19 2023-12-19 Alibaba Group Holding Limited Distributed file system servicing random-access operations
US11657066B2 (en) 2020-11-30 2023-05-23 Huawei Cloud Computing Technologies Co., Ltd. Method, apparatus and medium for data synchronization between cloud database nodes
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11714794B2 (en) 2021-03-31 2023-08-01 Huawei Cloud Computing Technologies Co., Ltd. Method and apparatus for reading data maintained in a tree data structure
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003150A (ja) 2008-06-20 2010-01-07 Nec Personal Products Co Ltd メモリコントローラおよびフラッシュメモリのデータ管理方法
JP2016522942A (ja) 2013-05-13 2016-08-04 クアルコム,インコーポレイテッド 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法
JP2017126334A (ja) 2016-01-15 2017-07-20 三星電子株式会社Samsung Electronics Co.,Ltd. 記憶装置及びその動作方法並びにシステム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101251788A (zh) * 2008-03-07 2008-08-27 威盛电子股份有限公司 储存单元管理方法及系统
US9165021B2 (en) 2009-04-14 2015-10-20 International Business Machines Corporation Managing database object placement on multiple storage devices
US8161241B2 (en) 2010-01-12 2012-04-17 International Business Machines Corporation Temperature-aware buffered caching for solid state storage
US9507841B2 (en) * 2011-06-16 2016-11-29 Sap Se Consistent backup of a distributed database system
US9645758B2 (en) * 2011-07-22 2017-05-09 Sandisk Technologies Llc Apparatus, system, and method for indexing data of an append-only, log-based structure
CN103514095B (zh) 2012-06-18 2016-08-03 记忆科技(深圳)有限公司 一种数据库写入ssd 的方法和系统
JP2014127015A (ja) * 2012-12-26 2014-07-07 Toshiba Corp 情報処理装置、分散データベースシステム、およびバックアップ方法
US11030055B2 (en) * 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US9514007B2 (en) 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US9842031B1 (en) * 2014-12-08 2017-12-12 Amazon Technologies, Inc. Incremental updates to user transaction state at read-only nodes of a distributed database
US20160321010A1 (en) * 2015-04-28 2016-11-03 Kabushiki Kaisha Toshiba Storage system having a host directly manage physical data locations of storage device
CN105117415B (zh) 2015-07-30 2018-07-03 西安交通大学 一种优化的ssd数据更新方法
US10083203B2 (en) * 2015-08-11 2018-09-25 International Business Machines Corporation Reducing the cost of update, delete, and append-only insert operations in a database

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003150A (ja) 2008-06-20 2010-01-07 Nec Personal Products Co Ltd メモリコントローラおよびフラッシュメモリのデータ管理方法
JP2016522942A (ja) 2013-05-13 2016-08-04 クアルコム,インコーポレイテッド 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法
JP2017126334A (ja) 2016-01-15 2017-07-20 三星電子株式会社Samsung Electronics Co.,Ltd. 記憶装置及びその動作方法並びにシステム

Also Published As

Publication number Publication date
WO2019128820A1 (en) 2019-07-04
US11461296B2 (en) 2022-10-04
EP3724770A4 (en) 2020-10-21
US20230053707A1 (en) 2023-02-23
US11921684B2 (en) 2024-03-05
EP3724770B1 (en) 2022-04-06
JP2021508879A (ja) 2021-03-11
US20190205437A1 (en) 2019-07-04
EP3724770A1 (en) 2020-10-21
CN111936977A (zh) 2020-11-13
US20200364197A1 (en) 2020-11-19
US10725983B2 (en) 2020-07-28

Similar Documents

Publication Publication Date Title
JP7329518B2 (ja) 追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法
US11449239B2 (en) Write-ahead log maintenance and recovery
US10579610B2 (en) Replicated database startup for common database storage
US8499121B2 (en) Methods and apparatus to access data in non-volatile memory
US8694469B2 (en) Cloud synthetic backups
JP6046260B2 (ja) MapReduceシステムのためのテーブル・フォーマット
US8484161B2 (en) Live file system migration
US9519664B1 (en) Index structure navigation using page versions for read-only nodes
WO2017190604A1 (zh) 数据库系统中事务恢复的方法与数据库管理系统
US10089320B2 (en) Method and apparatus for maintaining data consistency in an in-place-update file system with data deduplication
US11644978B2 (en) Read and write load sharing in a storage array via partitioned ownership of data blocks
WO2022063059A1 (zh) 键值存储系统的数据管理方法及其装置
US20230146076A1 (en) Backing file system with cloud object store
US10210067B1 (en) Space accounting in presence of data storage pre-mapper
WO2021135210A1 (en) Methods and apparatuses for generating redo records for cloud-based database
US11681631B2 (en) Write-behind optimization of covering cache
CN117950597B (zh) 数据修改写方法、数据修改写装置以及计算机存储介质
US11099948B2 (en) Persistent storage segment caching for data recovery

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200804

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211012

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20220318

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220914

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220914

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220927

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20221004

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20221202

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20221206

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230124

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230314

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230807

R150 Certificate of patent or registration of utility model

Ref document number: 7329518

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150