JP2017503277A - データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置 - Google Patents

データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置 Download PDF

Info

Publication number
JP2017503277A
JP2017503277A JP2016544396A JP2016544396A JP2017503277A JP 2017503277 A JP2017503277 A JP 2017503277A JP 2016544396 A JP2016544396 A JP 2016544396A JP 2016544396 A JP2016544396 A JP 2016544396A JP 2017503277 A JP2017503277 A JP 2017503277A
Authority
JP
Japan
Prior art keywords
page
child
address
modified
child process
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
JP2016544396A
Other languages
English (en)
Other versions
JP6336090B2 (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 JP2017503277A publication Critical patent/JP2017503277A/ja
Application granted granted Critical
Publication of JP6336090B2 publication Critical patent/JP6336090B2/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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • 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
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

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

Abstract

本発明の実施形態は、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置を開示する。方法は、メインプロセス内の変更されたページを追跡するステップと、変更されたページを、オンライン分析処理のための子プロセスに同期するステップとを含む。オンライン分析処理のためのデータを維持する方法および装置では、変更されたページは追跡され、次いで、子プロセスは変更されたページと同期される。従って、周期的なフォーキングが回避され、従来技術における周期的なフォーキングによるフォークのオーバヘッドが取り除かれ、変更されたページのみが同期されるため同期はより高速であり、オンラインデータ処理のパフォーマンスが向上する。

Description

本発明は、データ処理技術の分野に関し、詳細には、オンライン分析処理のためのデータを維持する方法および装置に関する。
オンライントランザクション処理(OLTP)およびオンライン分析処理(OLAP)は、データベースシステムの2つのタイプのアプリケーションである。OLTPシステムは、トランザクションを管理および処理するために使用される。そのようなトランザクション処理システムの典型的な例は、販売注文エントリまたは銀行取引処理である。OLAPシステムは、データを分析して、ビジネスアナリストのためのレポートを生成するために使用される。典型的なレポートは、地理的領域によって、または製品カテゴリによって、または顧客類別によって等で分類される集計販売統計を含む。
オペレーショナルOLTPデータベースに対してOLAPクエリを実行する最初の試みは、OLAPクエリ処理がリソース競合をもたらしたとともに、ミッションクリティカルなトランザクション処理を深刻に害したため、却下された。従って、トランザクション処理が専用OLTPデータベースシステム上で実行される、データステージング・アーキテクチャが考え出された。加えて、OLAPクエリ処理のために個別のデータウェアハウス・システムがインストールされる。周期的に、例えば、夜間に、OLTPデータベースの変更が抽出され、データウェアハウス・スキーマのレイアウトに変換され、データウェアハウスにロードされる。このデータステージングとその関連ETL(抽出-変換-ロード)は、ETLプロセスは周期的にのみ実行されることができるため、データの古さという課題を明らかに招く。
リアルタイム/オペレーショナル・ビジネスインテリジェンスは、トランザクショナルOLTPデータの現在の、最新の状態でOLAPクエリを実行することを要求する。解決手段として、ハードウェア支援型レプリケーション機構を使用することによって、OLTPおよびOLAPの両方を同時に扱い、トランザクショナルデータの一貫性があるスナップショットを維持するために、メインメモリデータベースを有する既存のハイブリッドシステムが提案される。システムは、OLAPクエリセッションを、同じ、任意に現在のおよび一貫性があるスナップショット上で実行する。これらのスナップショットは、OLTPプロセスをフォークし、且つ、それによって、一貫性がある仮想メモリスナップショットを作成することによって作成される。システムは、新しいスナップショットを周期的にフォークし、且つ、従って、新しいOLAPクエリセッションプロセスを開始することによって任意に現在のスナップショットを可能にする。
既存のハイブリッドシステムは有望に見えるが、以下の技術的課題をもたらす。大きなプロセスのフォーキングは、典型的には、ミリ秒オーダーで時間を消費する。これは、多数のページ・テーブル・エントリ(PTE)が複製されなければならないためである。データの1つの基準384Mごとに、約100Kページを含む。従って、周期的なフォーキングは、オンラインデータ処理のパフォーマンスに影響を及ぼす。加えて、フォーキングは、PETの爆発的なコピーを行い、コピーを変更されている可能性がある小さいデルタに最適化しない。
本発明の実施形態は、周期的なフォーキングを回避するとともにオンラインデータ処理のパフォーマンスを向上させるために、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置を提供する。
第1の態様によると、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法は、
データベースシステム内で動作するとともにオンライントランザクションを実行するメインプロセスによって変更されたページを、オペレーティング・システム・カーネルによって追跡するステップと、
オペレーティング・システム・カーネルによって、変更されたページを、データベースシステム内で動作するとともにオンライン分析処理を実行する子プロセスに同期するステップと、
を含む。
第1の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の第1の可能な実施形態では、変更されたページを追跡するステップは、コピーオンライト・ページおよび/または新しいページを追跡するステップを含む。
第1の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の第2の可能な実施形態では、方法は、追跡されるべきメモリのアドレス範囲を格納するステップをさらに含み、ここで、変更されたページを追跡するステップは、データをページに書き込むことがページフォールトという結果になる場合、ページは変更されたページであると決定し、且つ、変更されたページの物理ページアドレスがアドレス範囲内にある場合、次いで、物理ページアドレスを第1のデータ構造内に格納するステップを含む。
第1の態様の第2の可能な実施形態による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の第3の可能な実施形態では、変更されたページを子プロセスに同期するステップは、
メインプロセスから格納された物理ページアドレスを取得するステップと、
子プロセス内で、格納された物理ページアドレスを指す仮想ページアドレスを見つけるステップと、
仮想ページアドレスが存在する場合、仮想ページアドレスのページ・テーブル・エントリを格納された物理ページアドレスで更新し、対応する仮想ページアドレスが存在しない場合、新しい仮想ページアドレスを格納された物理ページアドレスにマッピングする新しいページ・テーブル・エントリが作成される、ステップと、
共有ページ数をインクリメントして、格納された物理ページアドレスに対応するページフラグを書き込み可能に設定するステップと
を含む。
第1の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の第4の可能な実施形態では、変更されたページを子プロセスに同期するステップは、事前に決定された同期時点で、変更されたページを子プロセスに同期するステップを含む。
第1の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の第5の可能な実施形態では、変更されたページを追跡する前に、方法は、メインプロセスに対する子である子プロセスをフォークするステップをさらに含む。
第1の態様の第5の可能な実施形態による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の第6の可能な実施形態では、子プロセスをフォークするステップは、メインプロセスに対する子である中間プロセスをフォークするステップと、中間プロセスに対する子である子プロセスをフォークするステップとを含み、ここで、変更されたページを子プロセスに同期するステップは、変更されたページを中間プロセスに同期するステップと、子プロセスを中間プロセスと同期するステップとを含む。
第1の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の第7の可能な実施形態では、複数の子プロセスが存在するとともに、変更されたページは、複数の子プロセスのうちの少なくとも1つの子プロセスに同期され、且つ、複数の子プロセスの他の子プロセスは、変更されたページが同期された少なくとも1つの子プロセスと同期される。
第1の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の第8の可能な実施形態では、同期時刻に達したとき、オンライントランザクション処理は、子プロセスが同期されるまでブロックされ、且つ、変更されたページは子プロセスから共有されるように、且つ書き込み可能に設定される。
第1の態様の第2の可能な実施形態による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の第9の可能な実施形態では、同期時刻に達したとき、変更されたページは書き込み可能に設定され、子プロセスは、第1のデータ構造に従って、変更されたページと同期され、新たな変更されたページが追跡されるとともに新たな変更されたページのページアドレスが第2のデータ構造内に格納される。
第2の態様によると、オンライン分析処理のためのデータを維持する装置は、
データベースシステム内で動作するとともにオンライントランザクション処理を実行するメインプロセスによって変更されたページを追跡するように構成される追跡ユニットと、
変更されたページを、データベースシステム内で動作するとともにオンライン分析処理を実行する子プロセスに同期するように構成される同期ユニットと、
を含む。
第2の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の第1の可能な実施形態では、追跡ユニットは、具体的には、コピーオンライト・ページおよび/または新しいページを追跡するように構成される。
第2の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の第2の可能な実施形態では、装置は、追跡されるべきメモリのアドレス範囲を格納するように構成される第1の格納ユニットと、変更されたページの物理ページアドレスを格納するように構成される第2の格納ユニットとをさらに含み、ここで、追跡ユニットは、具体的には、データをページに書き込むことがページフォールトという結果になり、且つ、ページの物理ページアドレスがアドレス範囲内にある場合、物理ページアドレスを第2の格納ユニット内に格納するように構成される。
第2の態様の第2の可能な実施形態による、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の第3の可能な実施形態では、同期ユニットは、具体的には、
第2の格納ユニットから物理ページアドレスを取得し、
子プロセス内で、物理ページアドレスを指す仮想ページアドレスを見つけ、
仮想ページアドレスが存在する場合、仮想ページアドレスのページ・テーブル・エントリを、第2の格納ユニットから取得された物理ページアドレスで更新し、そうでなければ、子プロセス内の新しい仮想ページアドレスを、第2の格納ユニットから取得された物理ページアドレスにマッピングする新しいページ・テーブル・エントリを作成し、
共有ページ数をインクリメントして、取得された物理ページアドレスに対応するページフラグを書き込み可能に設定するように構成される。
第2の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の第4の可能な実施形態では、装置は、データベースシステムによって要求されるメモリが割り当てられたとき、オンライン分析処理のための子プロセスをフォークするように構成されるフォークユニットをさらに含む。
第2の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の第5の可能な実施形態では、同期ユニットは、具体的には、事前に決定された同期時刻で、変更されたページを子プロセスに同期するように構成される。
第2の態様の第4の可能な実施形態による、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の第6の可能な実施形態では、フォークユニットは、具体的には、中間プロセスおよび子プロセスをフォークするように構成され、ここで、中間プロセスはメインプロセスに対する子であるとともに、子プロセスは中間プロセスに対する子であり、同期ユニットは、具体的には、変更されたページを中間プロセスに同期し、且つ、子プロセスを中間プロセスと同期するように構成される。
第2の態様による、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の第7の可能な実施形態では、複数の子プロセスが存在するとともに、同期ユニットは、具体的には、変更されたページを複数の子プロセスのうちの少なくとも1つの子プロセスに同期し、且つ、複数の子プロセスの他の子プロセスを、変更されたページが同期された少なくとも1つの子プロセスと同期するように構成される。
第3の態様によると、オンライン分析処理のためのデータを維持する装置は、
データベースを格納するためのメモリと、
プロセッサと、
プロセッサに接続され、実行されるとき、プロセッサに上述の方法を実行させる命令を格納するストレージとを含む。
データベースにおけるオンライン分析処理のためのデータを維持する方法および装置では、データベースシステム内で動作するとともにオンライントランザクションを実行するメインプロセスによって変更されたページが追跡され、次いで、変更されたページは、データベースシステム内で動作するとともにオンライン分析処理を実行する子プロセスに同期される。トランザクショナルデータの一貫性があるスナップショットを維持するために子プロセスを周期的にフォークする解決手段と比較すると、変更されたページは追跡され、次いで、子プロセスに同期され、従って、周期的なフォーキングが回避され、従来技術における周期的なフォーキングによるフォークのオーバヘッドが取り除かれ、変更されたページのみが同期されるため同期はより高速であり、オンラインデータ処理のパフォーマンスが向上する。
図1は、本発明の実施形態に係るデータベースシステム・トポロジの概略図である。 図2は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法のフローチャートである。 図3は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法のフローチャートである。 図4は、本発明の実施形態に係る、同期時点を示す概略図である。 図5は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法における、変更されたページを追跡するプロセスのフローチャートである。 図6は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法における、変更されたページを子プロセスに同期するプロセスのフローチャートである。 図7は、本発明の実施形態に係る、データベースシステム・トポロジの概略図である。 図8は、本発明の別の実施形態に係る、データベースシステム・トポロジの概略図である。 図9は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の概略ブロック図である。 図10は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の概略ブロック図である。 図11は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の概略ブロック図である。
本発明の実施形態における技術的解決手段が、添付図面を参照して以下に詳述される。明らかに、以下に説明される実施形態は、本発明の全ての実施形態を包含することなく、例示的な目的のみのためのものである。当業者は、創造的努力を行うことなく、本明細書で与えられる実施形態から他の実施形態を導出することができ、且つ、全てのそのような実施形態は、本発明の保護範囲内に包含される。
本発明は、OLTPの作業負荷およびOLAPの作業負荷を管理するために複数のプロセスを使用するとともに、リアルタイムOLAPデータベースを実現するために協調プロセス同期を使用する。
図1に示されるように、データベースシステム100には、OLTPを担当する、メインプロセス110と称される1つのマルチスレッド・プロセスが存在する。メインプロセス110は、データベースシステム100内の、書き込み可能な唯一のプロセスである。加えて、データベースシステム100は、メインプロセス110に対する子であるとともにOLAPクエリのために使用される、少なくとも1つの読み出し専用マルチスレッド・プロセス120を含む。本発明は、メインプロセス110に対するデルタ変化を追跡すること、およびこれらの変化を周期的なフォーキングなしに子プロセス120に同期することに依存する。
図2は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法のフローチャートを示す。実施形態は、オペレーティングシステム(OS)を用いて、メインプロセスと少なくとも1つの子プロセスとの間の協調によって動作する。協調は、メモリデータの共有およびまた実行制御に関する。方法は、以下のステップを含む。
ステップ201、データベースシステム内で動作するとともにオンライントランザクション処理を実行するメインプロセスによって変更されたページを、OSカーネルによって追跡する。
ステップ202、OSカーネルによって、変更されたページを、データベースシステム内で動作するとともにオンライン分析処理を実行する子プロセスに同期する。
データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の実施形態では、変更されたページが追跡され、次いで、オンライン分析処理のための子プロセスが変更されたページと同期される。トランザクショナルデータの一貫性があるスナップショットを維持するために子プロセスを周期的にフォークする解決手段と比較すると、本実施形態は、変更されたページを既存の子プロセスに同期し、従って、周期的なフォーキングが回避され、周期的なフォーキングによるフォークのオーバヘッドが取り除かれ、変更されたページのみが同期されるため同期はより高速であり、オンラインデータ処理のパフォーマンスが向上する。
図3は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法のフローチャートを示す。方法は以下のステップを含む。
ステップ301、オンライン分析処理のための読み出し専用子プロセスをフォークする。
テーブル空間、制御メモリ等のような、データベースシステムによって要求されるメモリが事前に割り当てられているとき、オンライン分析処理のための子プロセスは一度にフォークされる。実施形態では、メインプロセスは、Linux(登録商標)システムコールfork()を介して子プロセスをフォークするようにOSに通知する。
ステップ302、変更されたページを追跡する。
メインプロセスは、追跡および同期されるべきメモリのアドレス範囲を知っているとともに、変更のために追跡されるべきメモリのアドレス範囲についてOSに通知する。OSはプロセスのアドレス空間内に追跡されるべきアドレス範囲を格納することができる。デルタ変化のこの追跡は、OSカーネルによって行われる。
OSは、ページテーブル内に、仮想アドレスの物理アドレスへのそのマッピングを格納する。各マッピングはまた、ページ・テーブル・エントリ(PTE)として知られている。各PTEは、仮想アドレスおよびその対応する物理アドレスを含む。
実施形態では、全てのコピーオンライト(CoW)・ページおよび新しいページが追跡され、次いで、子プロセスのPTEが変更されたページのちょうど最新の物理アドレスと同期される。
追跡は、データベースデータの関連メモリに対して行われるべきである。メインメモリデータベースについては、全てのデータページおよびトランザクショナルページ、制御ページのような全てのデータベースのメタデータ情報およびデータベース情報を含む全てのグローバルデータ構造が追跡されるべきメモリに包含される。
追跡されるメモリは、ヒープまたはプライベート共有メモリ上に割り当てられることができる。発明は、2つのケース間を区別しない。
ステップ303、変更されたページを子プロセスに同期する。
このステップでは、子プロセスは変更されたページを同期するようにOSに通知する。
実施形態では、同期時点は、メインプロセス内で事前に決定されることができ、次いで、子プロセスは、メインプロセスによって、毎同期時点で同期を実行するように通知される。同期を実行するための信号を受信すると、子プロセスはOSに通知し、且つ、OSカーネルは変更されたページを子プロセスに同期する。
例えば、図4に示されるように、初めに、子プロセス1、子プロセス2および子プロセス3がフォークされ、次いで、同期時点1から5の毎同期時点で、メインプロセスは同期するように子プロセス1、2および3に通知する。同期時点1から5は、メインプロセス内で事前に決定されることができる。メインプロセスはまた、実際のOLTPの状況に基づいて、同期するように子プロセスに通知するときを決定することができる。例えば、同期時点に達したが、最後の同期時点からページが修正されていない場合、そのときメインプロセスは同期するように子プロセスに通知しない。次の同期時点に達しないが、変更されたページ数がある値を超過した場合、そのときメインプロセスは、次の同期時点の前に、同期するように子プロセスに通知してよい。
データベースシステムにおけるオンライン分析処理のためのデータを維持する方法の実施形態では、オンライン分析処理のための子プロセスがフォークされ、変更されたページが追跡され、次いで、子プロセスが変更されたページと同期される。トランザクショナルデータの一貫性があるスナップショットを維持するために子プロセスを周期的にフォークする解決手段と比較すると、本実施形態は、変更されたページを既存の子プロセスに同期し、従って、周期的なフォーキングが回避され、周期的なフォーキングによるフォークのオーバヘッドが取り除かれ、変更されたページのみが同期されるため同期はより高速であり、オンラインデータ処理のパフォーマンスが向上する。
加えて、従来技術における周期的なフォーキング解決手段と比較すると、本発明の実施形態では、多くの他のデータコピーおよびプロセスの設定もまた低減される。子プロセスは、関連ページが変更されなかった場合に変わらないままである、ロードされたキャッシュエントリおよび変換索引バッファ(TLB)エントリを有する。従って、データはホットのままであり、且つ、キャッシュミスが低減され、従って、子プロセスのパフォーマンスもまたより良い。
従来技術における周期的なフォーキング解決手段では、いくつかの時点で、システム内に多くの子プロセスが存在することができ、従って、メモリおよびCPUを消費する。しかしながら、本発明の実施形態では、子プロセスの数は固定且つ制御される。従って、あまりに多くのシステムリソース消費という問題がない。
さらに、多くのメインメモリデータベースは埋め込みモードで使用され、すなわち、アプリケーションからのクエリの実行は、データベースに対するアプリケーション・プログラム・インタフェース(API)のコールを介して行われる。埋め込みモードでは、従来技術における周期的なフォーキング解決手段は、アプリケーションリンクの損失をもたらす。対照的に、本発明の実施形態では、古い子プロセスを周期的に強制終了するとともに新しい子プロセスをフォークする代わりに、子プロセスが最初に作成されるとともに子プロセスは生きたままであるため、埋め込みモードにおけるアプリケーションリンクは保持され、従って、埋め込みモードにおけるアプリケーションリンクの損失は回避される。
図5は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法における、変更されたページを追跡するプロセスのフローチャートを示す。図5に示されるように、変更されたページを追跡するプロセスは以下のステップを含む。
ステップ501、データをページに書き込むことがページフォールト上のコピーオンライト(CoW)という結果になり、次いで、ページは変更されたページであると決定する。
ステップ502、このページの物理ページアドレスが追跡されたアドレス範囲内にあるかどうかチェックし、「はい」の場合、ステップ503を実行する。追跡されるべきアドレス範囲は、プロセスのアドレス空間内に格納されることができる。
ステップ503、物理ページアドレスを格納する。同じように、全てのCoWページアドレスが格納される。物理ページアドレスはいくつかのデータ構造内、例えば、メインプロセスのデータ構造内に格納されることができる。
変更されたページの物理ページアドレスのみが格納されるため、子プロセスは、変更されたページのみと同期される。従って、PETコピーは、変更されている可能性がある小さいデルタに最適化され、且つ、同期はより高速である。
メインプロセスから同期するための信号を受信すると、子プロセスは、同期するようにOSに通知しなければいけない。図6は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法における、変更されたページを子プロセスに同期するプロセスのフローチャートを示し、以下のステップを含む。
ステップ601、格納された物理ページアドレス(1つまたは複数)を取得する。
OSは変更されたページの物理ページアドレスのリストを受け取る。実施形態では、変更されたページの物理ページアドレスがメインプロセス構造内に格納されるとき、OSはメインプロセス構造を受け取るとともに、変更されたページの物理ページアドレスのリストを受け取る。
ステップ602、同期されるべき物理ページアドレスが存在するかどうか判断し、「はい」の場合、ステップ603を実行し、そうでなければ、プロセスを終了する。
ステップ603、物理ページアドレスを受け取るとともに、子プロセス内で、物理ページアドレスを指す仮想ページアドレスを見つける。
子プロセス内の格納された物理ページアドレスを指す仮想ページアドレスは、OS特定方法を使用することによって、例えば、関数find_vmaを呼び出すことを介して見つかることができる。
ステップ604、仮想ページアドレスが存在するかどうか判断し、「はい」の場合、ステップ605を実行し、そうでなければ、ステップ606を実行する。
ステップ605、仮想ページアドレスのPTEを物理ページアドレスで更新し、ステップ607を実行する。
OSは、ページテーブル内に、仮想アドレスの物理アドレスへのそのマッピングを格納する。各マッピングはまた、ページ・テーブル・エントリ(PTE)として知られている。各PTEは、仮想アドレスおよびその対応する物理アドレスを含む。
ステップ606、新しい仮想ページアドレスを物理ページアドレスにマッピングする新しいPTEを作成する。
ステップ607、共有ページ数をインクリメントして、物理ページアドレスに対応するページフラグを書き込み可能に設定し、次いで、ステップ602に戻る。ページは、CoWをトリガするために、メインプロセスおよび子プロセスの両方に対してMAYWRITEに設定される。共有ページ数は、このページを共有するプロセス数を追跡するためにOSによって維持されるカウンタである。共有ページ数が1より大きい場合、そのときこのページにおけるデータ変更はCoWをトリガする。
実施形態では、関連PTE、すなわちデルタ変化のみが同期される。1%のデータ変更との同期のサンプルケースを取ると、99%のPTEコピーが低減される。従って、同期は周期的なフォーキングよりもはるかに高速である。
同期は、以下の2つの異なるモードで実施されることができる。
同期モード
同期時点に達したとき、メインプロセス上の動作は、全ての子プロセスが同期されるまでブロックされる。メインプロセスは全ての子プロセスに信号を送信するとともに、子プロセスが同期を完了するのを待つ。メインプロセス内の変更されたページは、同期が開始されると、MAYWRITEに設定され、すなわち、変更されたページを全ての子プロセスから共有されるように、且つ書き込み可能に設定する。共有ページ数もまた、CoWをトリガするために各子プロセスによってインクリメントされる。
非同期モード
同期時点に達したとき、メインプロセスは、最初に、CoWをトリガするために全てのその変更されたページをMAYWRITEに設定し、次いで、同期を実行するように子プロセスに通知するとともに、同期が完了するまで待つ代わりに、以下の動作を続ける。このモードでは、任意の新しい変更が追跡されるとともに新しいデータ構造内に格納される。古いデータ構造は、全ての子プロセスが同期を完了した後ドロップされることができる。変更されたページの物理ページアドレスを格納するためのデータ構造は、毎同期時点で切り替えられることができる。例えば、変更されたページの物理ページアドレスを格納するための2つのデータ構造、第1のデータ構造および第2のデータ構造が存在する。初めに、物理ページアドレスは第1のデータ構造内に格納される。同期時点に達したとき、メインプロセスは、第1のデータ構造内に格納された物理ページアドレスに従って同期するように、子プロセスに通知し、且つ、新たな変更されたページのページアドレスが第2のデータ構造内に格納される。そしてその後、次の同期時点に達したとき、2つのデータ構造が切り替えられ、すなわち、第2のデータ構造に従って子プロセスを同期し、且つ、新たな変更されたページの物理ページアドレスが第1のデータ構造内に格納される。
図7は、本発明の別の実施形態に係る、データベースシステム・トポロジの概略図を示す。図1に示されるトポロジと比較すると、このデータベースシステム700は、OLTPのためのメインプロセス710とOLAPのための子プロセス720との間に中間プロセス730を有する。中間プロセス730は、子プロセス720の要求された番号をフォークするとともに子プロセス720を同期することを担当する。メインプロセス710は、中間プロセス730のみを変更されたページと直接同期するとともに、他の子の同期をこの中間プロセス730に委任する。そしてその後、他の子プロセス720は、中間プロセス730と同期する。この実施形態は、メインプロセス上のロードを低減する。このことは、多くの子プロセスが存在するか、または子プロセスが同期するのが遅い場合に役立つ。
図8は、本発明の別の実施形態に係る、データベースシステム・トポロジの概略図を示す。このデータベースシステム800では、子プロセス820-1、820-2および820-3間にピア・ツー・ピアの同期が存在することができる。メインプロセス810は、どれがフリーであるかまたは最小作業負荷を有するかに応じて、子プロセスのいずれか1つを同期する。次いで、他の子プロセスは、ピア同期された子プロセスを使用して同期され、すなわち、メインプロセスから直接同期された子プロセスと同期される。例えば、同期時点に達したとき、メインプロセス810は、子プロセス820-1、820-2および820-3の中で子プロセス820-1がフリーであるかまたは最小作業負荷を有すると決定し、次いで、メインプロセス810は、メインプロセス810と同期するように子プロセス820-1に通知するとともに、子プロセス820-1と同期するように、子プロセス820-2および820-3に通知する。この実施形態は、メインプロセスと子プロセスとの間の同期をより高速にする。これは、子プロセスの数があまり多くないときに好ましい実施形態である。
図9は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の概略ブロック図を示す。装置は、追跡ユニット910および同期ユニット920を含む。追跡ユニット910は、データベースシステム内で動作するとともにオンライントランザクション処理を実行するメインプロセスによって変更されたページを追跡するように構成される。同期ユニット920は、変更されたページを、データベースシステム内で動作するとともにオンライン分析処理を実行する子プロセスに同期するように構成される。
データベースシステムにおけるオンライン分析処理のための装置の実施形態では、変更されたページが追跡され、次いで、オンライン分析処理のための子プロセスが変更されたページと同期される。トランザクショナルデータの一貫性があるスナップショットを維持するために子プロセスを周期的にフォークする解決手段と比較すると、本実施形態は、変更されたページを既存の子プロセスに同期し、従って、周期的なフォーキングが回避され、周期的なフォーキングによるフォークのオーバヘッドが取り除かれ、変更されたページのみが同期されるため同期はより高速であり、オンラインデータ処理のパフォーマンスが向上する。
図10は、本発明の実施形態に係る、データベースシステムにおけるオンライン分析処理のためのデータを維持する装置の概略ブロック図を示す。図9に示されるオンライン分析処理の装置と比較すると、図18の装置は、フォークユニット1030、第1の格納ユニット1040および第2の格納ユニット1050をさらに含む。フォークユニット1030は、オンライン分析処理のための子プロセスをフォークするように構成される。データベースシステムによって要求されるメモリが割り当てられたとき、フォークユニット1030は子プロセスを一度にフォークする。第1の格納ユニット1040は、追跡されるべきメモリのアドレス範囲を格納するように構成される。第2の格納ユニット1050は、変更されたページの物理ページアドレスを格納するように構成される。
追跡ユニット1010は、コピーオンライト・ページおよび/または新しいページを追跡する。データをページに書き込むことがページフォールトという結果になるとき、追跡ユニット1010は、ページの物理ページアドレスが第1の格納ユニット1040内に格納されたアドレス範囲内にあるかどうかチェックする。物理ページアドレスがアドレス範囲内にある場合、追跡ユニット1010は、変更されたページの物理ページアドレスを第2の格納ユニット1050内に格納する。変更されたページの物理ページアドレスのみが格納されるため、子プロセスは、変更されたページのみと同期される。従って、PETコピーは、変更されている可能性がある小さいデルタに最適化され、且つ、同期はより高速である。
同期ユニット1020は、第2の格納ユニット1050から物理ページアドレスを取得するとともに、子プロセス内で、取得された物理ページアドレスを指す仮想ページアドレスを見つける。仮想ページアドレスが存在する場合、同期ユニット1020は、仮想ページアドレスのPTEを第2の格納ユニット1050から取得された物理ページアドレスで更新する。仮想ページアドレスが存在しない場合、同期ユニット1020は、子プロセス内の新しい仮想ページアドレスを物理ページアドレスにマッピングする、新しいPTEを作成する。次いで、同期ユニット1020は、共有ページ数をインクリメントして、取得されたページアドレスに対応するページフラグを書き込み可能、すなわちMAYWRITEに設定する。
実施形態では、同期のための時点、すなわち同期時点は事前に決定され、且つ、同期ユニット1020は、事前に決定された同期時点で、変更されたページを子プロセスに同期する。
実施形態では、フォークユニット1030は、具体的には、中間プロセスおよびオンライン分析処理のための子プロセスをフォークするように構成され、ここで、オンライン分析処理のための子プロセスは、中間子プロセスの子である。同期ユニット1020は、具体的には、最初に変更されたページを中間プロセスに同期し、次いで、オンライン分析処理のための子プロセスを中間プロセスと同期するように構成される。
実施形態では、子プロセス間にピア・ツー・ピアの同期が存在することができる。同期ユニット1020は、具体的には、変更されたページを子プロセスのうちの1つに同期し、次いで、他の子プロセスを、メインプロセスから直接同期された子プロセスと同期するように構成される。変更されたページと直接同期された子プロセスは、どれがフリーであるかまたは最小作業負荷を有するかに応じて決定されることができる。
データベースシステムにおけるオンライン分析処理のための装置の実施形態では、オンライン分析処理のための子プロセスがフォークされ、変更されたページが追跡され、次いで、フォークされた子プロセスが変更されたページと同期される。トランザクショナルデータの一貫性があるスナップショットを維持するために子プロセスを周期的にフォークする解決手段と比較すると、実施形態は、変更されたページを既存の子プロセスに同期し、従って、周期的なフォーキングが回避され、周期的なフォーキングによるフォークのオーバヘッドが取り除かれ、変更されたページのみが同期されるため同期はより高速であり、オンラインデータ処理のパフォーマンスが向上する。
加えて、従来技術における周期的なフォーキング解決手段と比較すると、本発明の実施形態では、多くの他のデータコピーおよびプロセスの設定もまた低減される。子プロセスは、関連ページが変更されなかった場合に変わらないままである、ロードされたキャッシュエントリおよびTLBエントリを有する。従って、データはホットのままであり、且つ、キャッシュミスが低減され、従って、子プロセスのパフォーマンスもまたより良い。
従来技術における周期的なフォーキング解決手段では、いくつかの時点で、システム内に多くの子プロセスが存在することができ、従って、メモリおよびCPUを消費する。しかしながら、本発明の実施形態では、子プロセスの数は固定且つ制御される。従って、あまりに多くのシステムリソース消費という問題がない。
さらに、多くのメインメモリデータベースは埋め込みモードで使用され、すなわち、アプリケーションからのクエリの実行は、データベースに対するAPIのコールを介して行われる。埋め込みモードでは、従来技術における周期的なフォーキング解決手段は、アプリケーションリンクの損失をもたらす。対照的に、本発明の実施形態では、古い子プロセスを周期的に強制終了するとともに新しい子プロセスをフォークする代わりに、子プロセスが最初に作成されるとともに子プロセスは生きたままであるため、埋め込みモードにおけるアプリケーションリンクは保持され、従って、埋め込みモードにおけるアプリケーションリンクの損失は回避される。
図11は、本発明の実施形態に係る、オンライン分析処理のためのデータを維持する装置の概略ブロック図を示す。データベースシステムにおけるオンライン分析処理のためのデータを維持する装置は、データベースを格納するためのメモリ1110と、プロセッサ1120と、プロセッサ1120に接続され、プロセッサ1120によって実行されるとき、プロセッサ1120に、本発明の実施形態による、データベースシステムにおけるオンライン分析処理のためのデータを維持する方法を実行させる命令を格納する、ストレージ1130とを含む。
メモリ1110は、高速RAMを含むことができ、また、不揮発性メモリを含むことができる。
プロセッサ1120は、中央処理装置(CPU)または特定用途向け集積回路(ASIC)または本発明の実施形態を実施するように構成される1つ以上の集積回路であることができる。
あるいは、特定の実施においては、メモリ1110、プロセッサ1120およびストレージ1130が個別に実装される場合、そのときメモリ1110、プロセッサ1120およびストレージ1130はバスを介して通信することができる。バスは業界標準アーキテクチャ(ISA)バス、周辺コンポーネント相互接続(PCI)バスまたは拡張業界標準アーキテクチャ(EISA)バス等であることができる。バスはアドレスバス、データバスおよび制御バス等に分割されることができる。便利な表現のために、バスは単一の太線によって表されているだけであるが、1つだけのバス、または1種類だけのバスが存在することを意味してはいない。
あるいは、特定の実施においては、メモリ1110、プロセッサ1120およびストレージ1130が単一のチップに集積される場合、そのときメモリ1110、プロセッサ1120およびストレージ1130は内部インタフェースを介して通信することができる。
上述の実施形態の方法におけるステップの全てまたは一部は、プログラムの命令下で関連ハードウェアによって完了されてよく、且つ、プログラムはコンピュータ可読記憶媒体内に格納されてよく、プログラムが実行されるとき、上述の方法の実施形態のステップが実行されることは、当業者によって理解されるべきである。記憶媒体は、読み出し専用メモリ(ROM)/ランダム・アクセス・メモリ(RAM)、フロッピーディスクまたは光ディスク等であってよい。
上述の実施形態は単に、本発明の技術的解決手段を説明するために提供されるが、本発明を限定するものではないことは留意されるべきである。本発明は、前述の実施形態を参照して詳細に説明されたが、そのような変更または置換が、対応する技術的解決手段の本質を本発明の範囲から逸脱させない限り、前述の実施形態で説明された技術的解決手段に対して変更が行われることができ、または、技術的解決手段におけるいくつかの技術的特徴に対して同等置換が行われることができることは当業者によって理解されるべきである。
100 データベースシステム
110 メインプロセス
120 子プロセス
700 データベースシステム
710 メインプロセス
720 子プロセス
730 中間プロセス
800 データベースシステム
810 メインプロセス
820−1 子プロセス
820−2 子プロセス
820−3 子プロセス
910 追跡ユニット
920 同期ユニット
1010 追跡ユニット
1020 同期ユニット
1030 フォークユニット
1040 第1の格納ユニット
1050 第2の格納ユニット
1110 メモリ
1120 プロセッサ
1130 ストレージ
オンライントランザクション処理(OLTP)およびオンライン分析処理(OLAP)は、2つのタイプのデータベースシステムである。OLTPシステムは、トランザクションを管理および処理するために使用される。そのようなトランザクション処理システムの典型的な例は、販売注文エントリまたは銀行取引処理システムである。OLAPシステムは、データを分析して、ビジネスアナリストのためのレポートを生成するために使用される。典型的なレポートは、地理的領域によって、または製品カテゴリによって、または顧客類別によって等で分類される集計販売統計を含む。
ステップ602、同期されるべき物理ページアドレスが存在する場合、ステップ603を実行し、そうでなければ、プロセスを終了する。
ステップ604、仮想ページアドレスが存在する場合、ステップ605を実行し、そうでなければ、ステップ606を実行する。
図8は、本発明の別の実施形態に係る、データベースシステム・トポロジの概略図を示す。このデータベースシステム800では、子プロセス820-1、820-2および820-3間にピア・ツー・ピアの同期が存在することができる。メインプロセス810は、どれがフリーであるかまたは最小作業負荷を有するかに応じて、子プロセスのいずれか1つを同期する。次いで、他の子プロセスは、ピア同期された子プロセスを使用して同期され、すなわち、メインプロセスから直接同期された子プロセスと同期される。例えば、同期時点に達したとき、メインプロセス810は、子プロセス820-1、820-2および820-3の中で子プロセス820-1がフリーであるかまたは最小作業負荷を有すると決定し、次いで、メインプロセス810は、メインプロセス810と同期するように子プロセス820-1に通知するとともに、子プロセス820-1と同期するように、子プロセス820-2および820-3に通知する。この実施形態は、メインプロセスと子プロセスとの間の同期をより高速にする

Claims (19)

  1. データベースシステムにおけるオンライン分析処理のためのデータを維持する方法であって、
    前記データベースシステム内で動作するとともにオンライントランザクション処理を実行するメインプロセスによって変更されたページを、オペレーティング・システム・カーネルによって追跡するステップと、
    前記オペレーティング・システム・カーネルによって、前記変更されたページを、前記データベースシステム内で動作するとともにオンライン分析処理を実行する子プロセスに同期するステップと、
    を含む方法。
  2. 前記変更されたページを追跡するステップは、コピーオンライト・ページおよび/または新しいページを追跡するステップを含む、請求項1に記載の方法。
  3. 追跡されるべきメモリのアドレス範囲を格納するステップをさらに含み、
    前記変更されたページを追跡するステップは、データをページに書き込むことがページフォールトという結果になる場合、前記ページは前記変更されたページであると決定し、且つ、前記変更されたページの物理ページアドレスが前記アドレス範囲内にある場合、次いで、前記物理ページアドレスを第1のデータ構造内に格納するステップを含む、
    請求項1に記載の方法。
  4. 前記変更されたページを前記子プロセスに同期するステップは、
    前記メインプロセスから前記格納された物理ページアドレスを取得するステップと、
    前記子プロセス内で、前記格納された物理ページアドレスを指す仮想ページアドレスを見つけるステップと、
    前記仮想ページアドレスが存在する場合、前記仮想ページアドレスのページ・テーブル・エントリを前記格納された物理ページアドレスで更新し、対応する仮想ページアドレスが存在しない場合、新しい仮想ページアドレスを前記格納された物理ページアドレスにマッピングする新しいページ・テーブル・エントリが作成される、ステップと、
    共有ページ数をインクリメントして、前記格納された物理ページアドレスに対応するページフラグを書き込み可能に設定するステップと、
    を含む、請求項3に記載の方法。
  5. 前記変更されたページを前記子プロセスに同期するステップは、事前に決定された同期時点で、前記変更されたページを前記子プロセスに同期するステップを含む、請求項1に記載の方法。
  6. 前記変更されたページを追跡する前に、前記方法は、前記メインプロセスに対する子である前記子プロセスをフォークするステップをさらに含む、請求項1に記載の方法。
  7. 前記子プロセスをフォークするステップは、前記メインプロセスに対する子である中間プロセスをフォークするステップと、前記中間プロセスに対する子である前記子プロセスをフォークするステップとを含み、
    前記変更されたページを前記子プロセスに同期するステップは、
    前記変更されたページを前記中間プロセスに同期するステップと、
    前記子プロセスを前記中間プロセスと同期するステップと、
    を含む、請求項6に記載の方法。
  8. 複数の子プロセスが存在するとともに、前記変更されたページは、前記複数の子プロセスのうちの少なくとも1つの子プロセスに同期され、且つ、前記複数の子プロセスの他の子プロセスは、前記変更されたページが同期された前記少なくとも1つの子プロセスと同期される、請求項1に記載の方法。
  9. 同期時刻に達したとき、オンライントランザクション処理は、前記子プロセスが同期されるまでブロックされ、且つ、前記変更されたページは前記子プロセスから共有されるように、且つ書き込み可能に設定される、請求項1に記載の方法。
  10. 同期時刻に達したとき、前記変更されたページは書き込み可能に設定され、前記子プロセスは、前記第1のデータ構造に従って、前記変更されたページと同期され、新たな変更されたページが追跡されるとともに前記新たな変更されたページのページアドレスが第2のデータ構造内に格納される、請求項3に記載の方法。
  11. オンライン分析処理のためのデータを維持する装置であって、
    前記データベースシステム内で動作するとともにオンライントランザクション処理を実行するメインプロセスによって変更されたページを追跡するように構成される追跡ユニットと、
    前記変更されたページを、前記データベースシステム内で動作するとともにオンライン分析処理を実行する子プロセスに同期するように構成される同期ユニットと、
    を含む装置。
  12. 前記追跡ユニットは、具体的には、コピーオンライト・ページおよび/または新しいページを追跡するように構成される、請求項11に記載の装置。
  13. 追跡されるべきメモリのアドレス範囲を格納するように構成される第1の格納ユニットと、
    前記変更されたページの物理ページアドレスを格納するように構成される第2の格納ユニットと、
    をさらに含み、前記追跡ユニットは、具体的には、データをページに書き込むことがページフォールトという結果になり、且つ、前記ページの物理ページアドレスが前記アドレス範囲内にある場合、前記物理ページアドレスを前記第2の格納ユニット内に格納するように構成される、請求項11に記載の装置。
  14. 前記同期ユニットは、具体的には、
    前記第2の格納ユニットから前記物理ページアドレスを取得し、
    前記子プロセス内で、前記物理ページアドレスを指す仮想ページアドレスを見つけ、
    前記仮想ページアドレスが存在する場合、前記仮想ページアドレスのページ・テーブル・エントリを、前記第2の格納ユニットから取得された前記物理ページアドレスで更新し、そうでなければ、前記子プロセス内の新しい仮想ページアドレスを、前記第2の格納ユニットから取得された前記物理ページアドレスにマッピングする新しいページ・テーブル・エントリを作成し、
    共有ページ数をインクリメントして、前記取得された物理ページアドレスに対応するページフラグを書き込み可能に設定するように構成される、請求項13に記載の装置。
  15. 前記データベースシステムによって要求されるメモリが割り当てられたとき、前記オンライン分析処理のための前記子プロセスをフォークするように構成されるフォークユニットをさらに含む、請求項11に記載の方法。
  16. 前記同期ユニットは、具体的には、事前に決定された同期時刻で、前記変更されたページを前記子プロセスに同期するように構成される、請求項11に記載の装置。
  17. 前記フォークユニットは、具体的には、中間プロセスおよび前記子プロセスをフォークするように構成され、前記中間プロセスは前記メインプロセスに対する子であるとともに、前記子プロセスは前記中間プロセスに対する子であり、
    前記同期ユニットは、具体的には、前記変更されたページを前記中間プロセスに同期し、且つ、前記子プロセスを前記中間プロセスと同期するように構成される、請求項15に記載の装置。
  18. 複数の子プロセスが存在するとともに、前記同期ユニットは、具体的には、前記変更されたページを前記複数の子プロセスのうちの少なくとも1つの子プロセスに同期し、且つ、前記複数の子プロセスの他の子プロセスを、前記変更されたページが同期された前記少なくとも1つの子プロセスと同期するように構成される、請求項11に記載の装置。
  19. オンライン分析処理のためのデータを維持する装置であって、
    データベースを格納するためのメモリと、
    プロセッサと、
    前記プロセッサに接続され、実行されるとき、前記プロセッサに請求項1乃至10のいずれか1項に記載の方法を実行させる命令を格納するストレージとを含む、装置。
JP2016544396A 2014-01-02 2014-01-02 データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置 Active JP6336090B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/070031 WO2015100718A1 (en) 2014-01-02 2014-01-02 Method and apparatus of maintaining data for online analytical processing in a database system

Publications (2)

Publication Number Publication Date
JP2017503277A true JP2017503277A (ja) 2017-01-26
JP6336090B2 JP6336090B2 (ja) 2018-06-06

Family

ID=53493029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016544396A Active JP6336090B2 (ja) 2014-01-02 2014-01-02 データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置

Country Status (6)

Country Link
US (1) US9922105B2 (ja)
EP (1) EP3069276B1 (ja)
JP (1) JP6336090B2 (ja)
KR (1) KR101805561B1 (ja)
CN (1) CN105830061B (ja)
WO (1) WO2015100718A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3093773B1 (en) 2015-05-13 2019-07-10 Huawei Technologies Co., Ltd. System and method for creating selective snapshots of a database
EP3291103B1 (en) 2016-09-01 2019-11-06 Huawei Technologies Co., Ltd. System and method for creating a snapshot of a subset of a database
KR102610058B1 (ko) * 2017-01-10 2023-12-06 삼성전자주식회사 프로세스의 권한 상승을 검출하는 전자 장치 및 저장 매체
US11249856B2 (en) * 2018-10-25 2022-02-15 EMC IP Holding Company LLC Application consistent snapshots as a sidecar of a containerized application
CN109635042B (zh) * 2018-12-07 2022-06-14 厦门铅笔头信息科技有限公司 Oltp与olap一体化的汽车金融大数据系统
CN110209354B (zh) * 2019-05-24 2022-04-19 北京百度网讯科技有限公司 用于处理数据的方法、装置、设备和介质
KR102294926B1 (ko) * 2019-08-09 2021-08-27 한국디지털포렌식센터 주식회사 원본 데이터의 자동 추출을 통한 분석 데이터 자동 형성 시스템
KR102432530B1 (ko) * 2020-02-17 2022-08-16 한국디지털포렌식센터 주식회사 대상 디스크의 데이터 선별 수집을 통한 전자증거목록 리포팅 시스템
CN113377543A (zh) * 2021-06-28 2021-09-10 上海商汤科技开发有限公司 任务处理系统、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0444140A (ja) * 1990-06-11 1992-02-13 Hitachi Ltd 仮想メモリ制御方法
JPH09305631A (ja) * 1996-05-15 1997-11-28 Nec Corp データベース管理装置及びそのサーバプロセスの起動方法
JP2007207250A (ja) * 2006-02-01 2007-08-16 Avaya Technology Llc ソフトウェア複製
US20120036334A1 (en) * 2010-08-05 2012-02-09 Horman Neil R T Access to shared memory segments by multiple application processes
JP2013531835A (ja) * 2010-05-17 2013-08-08 テクニッシュ ウニヴェルジテート ミュンヘン ハイブリッドoltp及びolap高性能データベースシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4812981A (en) * 1985-10-24 1989-03-14 Prime Computer, Inc. Memory management system improving the efficiency of fork operations
US7269581B2 (en) * 2003-03-28 2007-09-11 Microsoft Corporation Systems and methods for proactive caching utilizing OLAP variants
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
US7395278B2 (en) 2003-06-30 2008-07-01 Microsoft Corporation Transaction consistent copy-on-write database
DE602004024293D1 (de) * 2004-06-23 2010-01-07 Sap Ag System und Verfahren zur Datenverarbeitung
US8195722B1 (en) * 2008-12-15 2012-06-05 Open Invention Network, Llc Method and system for providing storage checkpointing to a group of independent computer applications
US8443166B2 (en) * 2009-03-06 2013-05-14 Vmware, Inc. Method for tracking changes in virtual disks
US9959330B2 (en) * 2011-09-20 2018-05-01 Oracle International Corporation Mechanism for updating OLAP system structure and OLTP system structure
KR101651204B1 (ko) 2010-06-15 2016-08-26 삼성전자주식회사 스냅샷 이미지의 동기화 장치 및 방법
US8170981B1 (en) * 2010-12-08 2012-05-01 Dassault Systemes Enovia Corporation Computer method and system for combining OLTP database and OLAP database environments

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0444140A (ja) * 1990-06-11 1992-02-13 Hitachi Ltd 仮想メモリ制御方法
JPH09305631A (ja) * 1996-05-15 1997-11-28 Nec Corp データベース管理装置及びそのサーバプロセスの起動方法
JP2007207250A (ja) * 2006-02-01 2007-08-16 Avaya Technology Llc ソフトウェア複製
JP2013531835A (ja) * 2010-05-17 2013-08-08 テクニッシュ ウニヴェルジテート ミュンヘン ハイブリッドoltp及びolap高性能データベースシステム
US20120036334A1 (en) * 2010-08-05 2012-02-09 Horman Neil R T Access to shared memory segments by multiple application processes

Also Published As

Publication number Publication date
CN105830061B (zh) 2019-06-28
KR20160097362A (ko) 2016-08-17
EP3069276A1 (en) 2016-09-21
WO2015100718A1 (en) 2015-07-09
JP6336090B2 (ja) 2018-06-06
EP3069276A4 (en) 2016-10-05
US20160314177A1 (en) 2016-10-27
CN105830061A (zh) 2016-08-03
KR101805561B1 (ko) 2017-12-07
EP3069276B1 (en) 2019-03-13
US9922105B2 (en) 2018-03-20

Similar Documents

Publication Publication Date Title
JP6336090B2 (ja) データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置
US10180946B2 (en) Consistent execution of partial queries in hybrid DBMS
EP3213230B1 (en) Efficient maintenance of column store indexes on memory-optimized tables
US9734223B2 (en) Difference determination in a database environment
EP3170109B1 (en) Method and system for adaptively building and updating column store database from row store database based on query demands
US10572508B2 (en) Consistent query execution in hybrid DBMS
US20130080388A1 (en) Database caching utilizing asynchronous log-based replication
US10176210B2 (en) System and method for minimizing lock contention
CN109690522B (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
EP3394759B1 (en) Method for flash-friendly caching for cdm workloads
US9690832B2 (en) Enterprise reporting capabilities in storage management systems
WO2015043376A1 (zh) 一种页的访问方法和页的访问装置、服务器
US20170337256A1 (en) System and method for memory synchronization of a multi-core system
US11921704B2 (en) Version control interface for accessing data lakes
Ghandeharizadeh et al. CPR: client-side processing of range predicates
Meng et al. SwingDB: An embedded in-memory DBMS enabling instant snapshot sharing
JP2016194826A (ja) データベースの処理制御方法、処理制御プロラム及びデータベースサーバ
Zou et al. Elastic database replication in the cloud
Sul et al. Towards Sustainable High-Performance Transaction Processing in Cloud-based DBMS: Design considerations and optimization for transaction processing performance in service-oriented DBMS organization
Choi et al. Concurrency control method to provide transactional processing for cloud data management system
Bortnikov et al. Reconciling transactional and non-transactional operations in distributed key-value stores
CN118193560A (zh) 一种数据分析方法及相关设备
Korotkevitch et al. Transaction Processing in In-Memory OLTP

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180501

R150 Certificate of patent or registration of utility model

Ref document number: 6336090

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250