JP2013521579A - データベースサーバのためのバッファプール拡張 - Google Patents

データベースサーバのためのバッファプール拡張 Download PDF

Info

Publication number
JP2013521579A
JP2013521579A JP2012556228A JP2012556228A JP2013521579A JP 2013521579 A JP2013521579 A JP 2013521579A JP 2012556228 A JP2012556228 A JP 2012556228A JP 2012556228 A JP2012556228 A JP 2012556228A JP 2013521579 A JP2013521579 A JP 2013521579A
Authority
JP
Japan
Prior art keywords
page
memory
main memory
buffer pool
access
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
JP2012556228A
Other languages
English (en)
Other versions
JP2013521579A5 (ja
JP5722352B2 (ja
Inventor
チャン チェンリァン
クリシュナムルティ サダシバン
アイ.レイニャ ゲオルギー
バービットスキー アレクサンドル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013521579A publication Critical patent/JP2013521579A/ja
Publication of JP2013521579A5 publication Critical patent/JP2013521579A5/ja
Application granted granted Critical
Publication of JP5722352B2 publication Critical patent/JP5722352B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/061Improving I/O performance
    • 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/0653Monitoring storage devices or systems
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本明細書に記載される主題の態様は、データベースシステムのためのバッファプールに関する。態様においては、ソリッドステート記憶装置等の二次的メモリを使用して、データベースシステムのバッファプールを拡張する。ページのアクセス履歴に基づきページを分類するためのホット、ウォーム、コールド等の閾値を、サンプリングアルゴリズムを介して判定することができる。データベースシステムがメインメモリ内のバッファプールでスペースをフリーにする必要がある場合、ページの分類の方法および二次的メモリまたは他の記憶装置の状態に基づいて、二次的メモリまたは他の記憶装置内のバッファプールに、ページを退避させることができる。

Description

本発明は、データベースシステムに関する。
データベースでは、データベースページの作業用セット(working set)がメインメモリに保持されている時には、良好な性能を発揮する。残念ながら、大きなデータベースの多くがサイズの上で、作業用セットをメインメモリに保持することは実行可能ではない。大きなデータベースでは、これは、ほとんどの場合ディスク等の回転媒体(rotational media)を使用して構築される十分な容量を持つI/Oサブシステムに、データベースのデータページの大部分が存在するということを意味する。そのようなサブシステムは高価であり、かなりの量の空間を占め、かつかなりの量の電力を消費することになる。これらのサブシステムは、回転媒体の性能がメインメモリおよびプロセッサと同じ速さでは進歩していないため、データベースのボトルネックとなることが多い。
本明細書において特許請求される主題は、任意の問題を解決する実施形態または上述のような環境においてのみ動作する実施形態に限定されない。むしろ、この背景技術は、本明細書において記載されるいくつかの実施形態を実践することができる技術分野の一例を例示するために単に提供される。
簡潔には、本明細書に記載される主題の態様は、データベースシステムのためのバッファプールに関する。態様においては、ソリッドステート記憶装置等の二次的メモリを使用して、データベースシステムのバッファプールを拡張する。ページのアクセス履歴に基づきページを分類するためのホット、ウォーム、コールド等の閾値を、サンプリングアルゴリズムを介して判定することができる。データベースシステムがメインメモリ内のバッファプールでスペースをフリーにする必要がある場合、ページを分類する方法および二次的メモリまたは他の記憶装置の状態に基づき、二次的メモリまたは他の記憶装置内のバッファプールに、ページを退避させることができる。
この要約は、以下の詳細な説明でさらに述べる主題のいくつかの態様を簡単に確認するために提供される。この要約は、特許請求の主題の重要な特徴または主要な特徴を確認することを意図しておらず、特許請求の主題の範囲を制限するものとして使用されることも意図していない。
「本明細書に記載される主題」という句は、明白に文脈が別段に示さない限り、詳細な説明において記載される主題を指す。用語「態様」は、「少なくとも1つの態様」と読まれるべきである。詳細な説明に記載される主題の態様を確認することは、特許請求される主題の重要な特徴または主要な特徴を確認することを意図していない。
上述の態様および本明細書に記載される主題の他の態様は例として示され、同様の数字によって同様の要素が示される添付の図面において限定されない。
本明細書に記載される主題の態様を組み込むことができる例示の汎用コンピュータ環境を表すブロック図である。 本明細書に記載される主題の態様を実装することができる例示のシステムを概略的に表すブロック図である。 本明細書に記載される主題の態様に従ってデータベースをホストするシステムの構成要素を例示するブロック図である。 本明細書に記載される主題の態様に従って、閾値を判定するためにページをスキャンし、必要に応じてページを退避させる際に発生しうる、いくつかの例示の動作を概略的に表すフロー図である。 DBMSがアクセス要求を受け取り、かつバッファプールがフルである場合に発生するようないくつかの例示の動作を概略的に表すフロー図である。
定義
本明細書で使用される時、用語「含む(includes)」およびその変化形は、「を含むがこれに限定されない(includes, but in not limited to)」を意味する制約の無い用語として読まれるものである。用語「または」は、明白に文脈が別段に示さない限り、「および/または」として読まれるものである。用語「に基づき(based on)」は、「少なくとも部分的に基づき(based at least in part on)」として読まれるものである。用語「一実施形態」および「ある実施形態」は、「少なくとも1つの実施形態」として読まれるものである。用語「別の実施形態」は、「少なくとも1つの他の実施形態」として読まれるものである。他の定義は、明示的なものも暗黙的なものも、以下に含まれる。
例示の動作環境
図1は、本明細書に記載される主題の態様を実装することができる適切なコンピュータシステム環境100の例を例示する。コンピュータシステム環境100は適切なコンピュータ環境の単なる一例であり、本明細書に記載される主題の態様の使用または機能性の範囲について何ら制限を示唆することは意図されない。また、コンピュータ環境100は、例示の動作環境100内に例示される構成要素のうちの任意の1つまたは組み合わせに関するいずれの依存関係も要件も有するものとして解釈されるべきではない。
本明細書に記載される主題の態様は、多数の他の汎用もしくは専用のコンピュータシステム環境または構成で動作可能である。本明細書に記載される主題の態様と共に使用するのに適した周知のコンピュータシステム、環境、または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マイクロプロセッサシステム、マイクロコントローラベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯情報端末(PDA)、ゲーム機、プリンタ、セットトップやメディアセンタを含む電化製品または他の電化製品、自動車に埋め込むまたは取り付けるコンピュータ装置、他の自動車用装置、上記のシステムまたは装置のいずれかを含む分散コンピュータ環境、などが含まれる。
本明細書に記載される主題の態様は、プログラムモジュール等のコンピュータにより実行可能なコンピュータ実行可能命令の一般的文脈で記載することができる。一般的に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、などが含まれ、これらは特定のタスクを実行または特定の抽象データ型を実装する。本明細書に記載される主題の態様はまた、通信ネットワークを介してリンクされるリモート処理装置によりタスクが実行される分散コンピュータ環境において実践することができる。分散コンピュータ環境において、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートのコンピュータ記憶媒体のどちらにも配置することができる。
図1を参照すると、本明細書に記載される主題の態様を実装するための例示のシステムには、コンピュータ110の形式で汎用コンピュータ装置が含まれる。コンピュータには、命令を実行することが可能な任意の電子デバイスを含むことができる。コンピュータ110の構成要素には、プロセシングユニット120、システムメモリ130、および、システムメモリを含む種々のシステム構成要素をプロセシングユニット120に連結させるシステムバス121を含むことができる。システムバス121は、メモリバスまたはメモリコントローラ、周辺機器用バス、および、様々なバスアーキテクチャの内のいずれかを使用するローカルバス、を含むいくつかのタイプのバス構造の内のいずれかとすることができる。制限ではなく例として、そのようなアーキテクチャには、ISA(Industry Standard Architecture)ばす、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、メザニンバスとしても既知のPCI(Peripheral Component Interconnect)バス、PCI−X(Peripheral Component Interconnect Extended)バス、AGP(Advanced Graphics Port)、およびPCIe(PCI express)、が含まれる。
コンピュータ110には典型的には、様々なコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、コンピュータ110によりアクセス可能であり、揮発性および不揮発性の媒体、ならびに、着脱可能および着脱不可能な媒体を含む、任意の利用可能な媒体とすることができる。制限ではなく例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含むことができる。
コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術において実装される、揮発性および不揮発性、着脱可能および着脱不可能な媒体の両方が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、DVD(digital versatile disc)もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、所望の情報を記憶するために使用可能かつコンピュータ110によりアクセス可能な任意の他の媒体が含まれる。
通信媒体は典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波もしくは他の移送機構などの変調データ信号内の他のデータを具現化し、任意の情報配信媒体を含む。用語「変調データ信号」は、信号内の情報を符号化するような様式で設定または変更された信号の特徴の内の1つまたは複数を有する信号を意味する。制限ではなく例として、通信媒体には、有線ネットワークまたは直接配線の接続などの有線媒体、ならびに、音響、無線周波数、赤外線および他の無線媒体などの無線媒体が含まれる。上記の内のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
システムメモリ130には、ROM(read only memory)131およびRAM(random access memory)132などの揮発性および/または不揮発性のメモリの形式のコンピュータ記憶媒体が含まれる。基本入出力システム133(BIOS)は、起動中などにコンピュータ110内の要素間での情報の伝達を支援する基本ルーチンを含み、典型的には、ROM131に格納される。RAM132は典型的には、プロセシングユニット120が直ちにアクセス可能および/またはプロセシングユニット120により現在操作されている、データおよび/またはプログラムモジュールを含む。制限ではなく例として、図1では、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136およびプログラムデータ137を例示する。
コンピュータ110はまた、他の着脱可能/着脱不可能、揮発性/不揮発性コンピュータ記憶媒体を含むことができる。単なる例として、図1は、着脱不可能、不揮発性磁気媒体に対して読み書きするハードディスクドライブ141、着脱可能、不揮発性磁気ディスク152に対して読み書きする磁気ディスクドライブ151、および、CD−ROMまたは他の光媒体などの着脱可能、不揮発性光ディスク156に対して読み書きする光ディスクドライブ155を例示する。例示の動作環境において使用可能な他の着脱可能/着脱不可能、揮発性/不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、DVD、他の光ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ141は典型的には、インターフェース140などの着脱不可能メモリインターフェースを介してシステムバス121に対して接続され、磁気ディスクドライブ151および光ディスクドライブ155は典型的には、インターフェース150などの着脱可能メモリインターフェースによりシステムバス121に対して接続される。
ドライブおよびその関連するコンピュータ記憶媒体は、上記で検討され図1に例示されたが、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ110のための他のデータの記憶装置を提供する。図1において、例えば、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146およびプログラムデータ147を記憶するものとして例示される。なお、これらの構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136およびプログラムデータ137、と同じでも良く異なっていても良い。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146およびプログラムデータ147には、本明細書においては異なる番号が与えられて、少なくともそれらが異なるものであることを例示する。
ユーザは、キーボード162、および、一般的にはマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス161などの入力装置を介してコマンドおよび情報をコンピュータ110に入力する。他の入力装置(図示せず)には、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ、タッチスクリーン、ライティングタブレット、などを含むことができる。これらおよび他の入力装置は、システムバスに連結されるユーザ入力インターフェース160を介してプロセシングユニット120に対して接続されることが多いが、パラレルポート、ゲームポートまたはUSB(universal serial bus)などの他のインターフェースおよびバス構造により接続されても良い。
モニタ191または他のタイプのディスプレイ装置も、ビデオインターフェース190などのインターフェースを介してシステムバス121に対して接続される。モニタに加えて、コンピュータは、スピーカ197およびプリンタ196などの他の周辺出力装置を含むこともでき、これらは、出力周辺インターフェース195を介して接続することができる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータに対する論理接続を使用して、ネットワーク環境において動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置または他の一般的なネットワークノードとすることができ、また、典型的には、コンピュータ110に関して上述した要素の多くまたは全てを含むが、図1にはメモリ記憶装置181のみが例示されている。図1に示す論理接続には、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173が含まれるが、他のネットワークを含むこともできる。そのようなネットワーク環境は、事務所、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的なものである。
LANネットワーク環境において使用される場合、コンピュータ110はネットワークインターフェースまたはアダプタ170を介してLAN171に対して接続される。WANネットワーク環境において使用される場合、コンピュータ110には、モデム172、またはインターネット等のWAN173上で通信を確立するための他の手段を含むことができる。モデム172は、内蔵でも外付けも良く、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に対して接続することができる。ネットワーク環境において、コンピュータ110に関して示されるプログラムモジュールまたはその一部は、リモートメモリ記憶装置に記憶させることができる。制限ではなく例として、図1では、メモリ装置181上に常駐するものとしてリモートアプリケーションプログラム185が例示される。図示されるネットワーク通信は例であり、コンピュータ間の通信リンクを確立するための他の手段を使用することができることは理解されるであろう。
データベースバッファプール
上述のように、I/Oサブシステムはデータベースのボトルネックになることが多い。図2は、本明細書に記載される主題の態様を実装することができる例示のシステムを概略的に表すブロック図である。システム200には、1つまたは複数のプロセッサ202、データベース管理システム(DBMS)205、回転媒体(rotational media)210、211を含むことができ、また、他の構成要素を含んでも良い。DBMS205はバッファプール215内のページを管理することができる。バッファプール215を、メインメモリ220およびソリッドステート記憶装置225(以下では、SSS225と称することもある)内に保持することができる。
システム200は、コンピュータ110などの1つまたは複数のコンピュータを使用して実装することができ、また、1つまたは複数のデーベースを実装することができる。システムのプロセッサ202は、図1のプロセシングユニット120に対応し、同じコンピュータ上に備えても良く、または、複数のコンピュータに分散させても良い。プロセッサ202は、DBMS205に対応する命令を実行してデータベースを提供する。
データベースには、リレーショナルデータベース、オブジェクト指向データベース、階層型データベース、ネットワークデータベース、他のタイプのデータベース、上記の組み合わせまたは拡張、などを含むことができる。データベースに記憶されるデータは、テーブル、レコード、オブジェクト、他のデータ構造などの形式で組織化することができる。データベースに記憶されるデータは、専用データベースファイル、専用ハードドライブパーティション、HTMLファイル、XMLファイル、スプレーッドシート、フラットファイル、文書ファイル、構成ファイル、他のファイルなどに記憶させることができる。
データベース内のデータには、DBMS205などのDBMSを介してアクセスすることができる。DBMS205は、データベースのデータの組織、記憶、管理および検索を管理する1つまたは複数のプログラムを含むことができる。DBMS205は、要求を受け取りデータベース内のデータにアクセスすることができ、また、このアクセスに必要とされる動作を実行することができる。本明細書で使用される時、アクセスには、データの読み込み、データの書き込み、データの削除、データのアップデート、これらの内の2つ以上の組み合わせなどが含まれる。
本明細書に記載される主題の態様の説明において、便宜上、リレーショナルデータベースに関連する専門用語を本明細書においては使用することがある。リレーショナルデータベースの専門用語を本明細書において使用することがあるが、本明細書の技術は上述したものを含む他のタイプのデータベースにも適用することができる。
DBMS205は、メインメモリおよび二次的メモリのバッファプール内のページを管理するべく、かつ、ページが少なくとも3つの分類に対応するアクセスを有するかどうかの判定に基づきページを退避させるべく、動作可能である。これについては以下でより詳細に説明されるが、簡略的には、ページへのアクセスがパーセンタイルの第1の範囲内にある場合、そのページが第1の分類(例えば「ホット」)にあると考えられる。ページがパーセンタイルの第2の範囲内にアクセスを有する場合、そのページが第2の分類(例えば「ウォーム」)にあると考えられる。ページがパーセンタイルの第3の範囲内にアクセスを有する場合、そのページが第3の分類(例えば「コールド」)にあると考えられる。ページの分類を使用して、メインメモリ220および/またはSSS225からページを退避させることができる。
効率、性能、または他の理由のため、データベースは、テーブル、インデックス、または他のデータベースデータに対応するデータを回転媒体210などの記憶装置の1つのセット上に、また、ログに対応するデータを回転媒体211などの記憶装置の別のセット上に、配置することができる。あるデータベースでは、記憶装置の1つのセットのみを使用してテーブルとログを記憶することができる。
バッファプール215には、より早いメモリ(回転媒体210、211に関する)内にある1つまたは複数のデータベースの一部が含まれる。1つまたは複数のデータベースの一部はページと呼ばれることがある。バッファプール215のメモリ(例えばメインメモリ220)のいくつかを揮発性とすることができる。すなわち、メモリへの電源が切られると、メモリに記憶されているどのデータも失われる。メインメモリ220は、RAM、キャッシュ、プロセッサメモリ、または他の揮発性高速メモリとして実装することができる。バッファプール215の他のメモリ(例えばSSS225)を不揮発性とすることができる。すなわち、不揮発性メモリへの電源が切られると、メモリに記憶されているどのデータも保持される。
バッファプール215に割り当てられるSSS(または他のメモリ)の量は動的に変化させることができる。すなわち、バッファプール215に割り当てられるSSS(または他のメモリ)のバイト数の増加、減少、またはゼロへの設定を、自動的、半自動的、または手動で、DBMS205の実行の前、最中または後に行うことができる。
DBMS205は、バッファプール215に記憶されるデータベースのページに関するメタデータを保持することができる。各ページに対して、このメタデータには、例えば、ページ上のデータがアクセスされた最も新しい1つまたは2つの時間を記憶するための2つのタイプスタンプ、ページが修正されたかどうかを示すダーティフラグ、ページのコピーがSSS225に記憶されているかどうかを示すフラグ、ページがアクセスされた回数を示すカウンタ、より最近のアクセスに対してはより重みが付けられた、ページへのアクセスの頻度を示す重み値、ページに関する他の情報、などを含むことができる。このメタデータは、バッファプール215(例えばページとして)内に、または何らかの他の場所に記憶させることができる。
操作において、DBMS205が、データにアクセスする要求を受け取ると、DBMS205はまず、データがバッファプール215内にあるかどうかを判定することができる。バッファプール215内にデータが無い場合、DBMSは、回転媒体210からメインメモリ220にデータを読み込むためのスペースがメインメモリ220内にあるかどうかを判定することができる。メインメモリ220内にスペースが無い場合、DBMSは、回転媒体210からページを読み込むためのスペースを作るために、メインメモリ220から退避させることができるページを判定する。
上記のステップは、ある程度順次的に説明されたが、他の実装においては、これらのステップは異なる順番でまたは並行して行われても良い。例えば、一実施形態において、DBMS205は、メインメモリ220内のフリースペースのある部分を維持することを試みることができる。このために、周期的に、またはメインメモリ220内のフリースペースが閾値以下に減少しているとDBMS205が判定した時に、DBMS205は、メインメモリ220をスキャンして、どのページをメインメモリ220から退避させてスペースを解放するかを判定することができる。このようにして、DBMS205は、回転媒体210との間でページを読み書きする用途で使用するための、メインメモリ220内にあるスペースを確保することができる。
一実施形態において、メモリプレッシャがあると(例えば、バッファプール内のフリースペースが事前に定義、計算、選択された閾値または他の閾値を下回り、処理がより多くのメモリを要求する、または何らかの他のメモリプレッシャ条件がそろった場合)、DBMS205は、スキャンアルゴリズムを実行することができる。スキャンアルゴリズムは、ページを異なるカテゴリに分類するために使用することができる閾値を判定することができる。例えば、一実施形態において、スキャンアルゴリズムは閾値を判定して、ページをページに関するメタデータに基づきホット、ウォーム、コールドのカテゴリに分類することができる。
一実施形態において、スキャンアルゴリズムは、選択された数の無作為のページのメタデータのサンプリングを行うことにより閾値を判定することができる。サンプリングから、少なくとも2つの閾値を判定することができる。これらの閾値は、ページへのアクセスの頻度に関するパーセンタイルに対応し得る。2つの閾値の内の最低位の値よりも低いアクセス特性を有するページはコールドであると考えられる。最低位と上位の閾値の間のアクセス特性を有するページはウォームであると考えられる。上位の閾値よりも高いアクセス特性を有するページはホットであると考えられる。
用語「ホット」「ウォーム」「コールド」は、本明細書に記載される主題の態様に制限を課すことを意味しない。これらの用語の発想は、ページへのアクセスがパーセンタイル内に含まれるということである。パーセンタイルの高位の範囲に含まれるページはホットであると言うことができる。パーセンタイルの低位と含まれるページはウォームであると言うことができる。パーセンタイルの低位の範囲に含まれるページはコールドであると言うことができる。他の単語、番号、識別子、データ構造、などを、本明細書に記載される主題の態様の主旨または範囲から逸脱することなく、単語ホット、ウォーム、コールドの代わりに使用することができる。さらに、3つの名称が指定されているだけであるが、他の実施形態においては、3つより多くの名称を指定することができる。
ページの分類に使用することができる基準の一例は、ページへのアクセスの頻度である。ページの分類に使用することができる別の基準の例は、ページへのアクセスの履歴である。例えば、アクセス履歴には、ページがアクセスされた最後の1回または2回の時間を含むことができる。最後のアクセス時間のみを使用してページを分類する場合は、この基準はLRU(last recently used)アルゴリズムと呼ばれることがある。最後のアクセスの1回前のアクセス時間を使用してページを分類する場合、この基準はLRU−2アルゴリズムと呼ばれることがある。上記の例では、全てを包括または網羅することは意図されない。実際、本明細書の教示に基づき、当業者はページの分類に使用することができる多くの他の基準を認識するであろう。
一実施形態において、上記の閾値を判定するためのサンプリングをメインメモリ220内のページに対して行うことができ、一方、低位の閾値を判定するためのサンプリングをメインメモリ220およびSSS225内のページに対して行うことができる。
これらの閾値が判定された後、DBMS205がページを退避させてメインメモリ220にもっと多くのスペースを確保する必要がある時、DBMS205は、様々な順序、例えば、順次、ラウンドロビン方式、ランダム、LRU方式、局所性に基づく方式、別の順序などのいずれかでバッファプール内のページをスキャンすることができる。ページがコールド閾値より上でウォーム閾値より下にあり、SSS225内に利用可能なスペースがある場合、DBMS205は、ページをSSS225にコピーすること、または、(例えば、メインメモリ220からSSS225にコピーされるページのキューなどのデータ構造内のページにポインタを置くことにより)実行可能になり次第、ページがSSS225にコピーされることを示すこと、ができる。ページがSSS225にコピーされた後、メインメモリ220内でフリーにされたメモリを使用して別のページを記憶することができる。
ウォームおよびコールドであるページに使用できる十分なスペースがSSS225に無い場合、コールドであるページを、フラッシュするかキューに置くかしてディスクにフラッシュする(ダーティである場合)、または、利用可能であるとしてマークする(クリーンな場合)ことができる。ディスクにフラッシュするページは、メインメモリ220からのものでもSSS225からのものでも良い。この場合、一実施形態において、コールドのページをSSS225からフラッシュすることよりもコールドのページをメインメモリ220からフラッシュすることに優先度が与えられてもよい。例えば、1つまたは複数のデータ構造(例えば、1つまたは複数のキュー)を、コールドのページをメインメモリ220およびSSS225からフラッシュするために維持することができる。メインメモリ220からのコールドのページをディスクにフラッシュした後、SSD225からのコールドのページをディスクにフラッシュすることができる。別の実施形態において、メインメモリ220からのコールドのページのフラッシュを、SSS225からのコールドのページのフラッシュとインターリーブすることができる。ハードウェアサブシステムが適切な設備を提供する場合、コールドのページをメインメモリ220からディスクにフラッシュすること、およびコールドのページをSSS225からディスクにフラッシュすることを、並行して行うことができる。
適切なハードウェアが利用可能な場合(例えば、ダイレクトメモリアクセス(DMA)ハードウェアなど)、SSS225からディスクへのページのフラッシュは、ページをSSS225からメインメモリ220に読み込まずに実行することができる。そのようなハードウェアをSSS225に利用できない場合、SSS225からディスクへのページのフラッシュは、ページをメインメモリ220に読み込み、そのページをメインメモリ220からディスクにコピーすることにより行うことができる。
DBMS205が、メインメモリ220ではなくSSS225にあるページにアクセスする必要がある場合、そのページをSSS225からメインメモリ220にコピーすることができる。
バッファのページがSSS225に書き込まれると、可能であれば、複数の書き込みを単一の書き込みに組み合わせても良い。これにより、I/Oスループットを増加させること、また、SSS225の寿命期待値を増加させることができる。
SSS225のI/O閾値に到達すると、新しいI/Oはディスクに向けられうる。I/O閾値に到達するのは、SSS225へのアクセスが、SSS225の読み/書きの帯域幅または何らかの他の定義済みの帯域幅に達する時である。I/O閾値に到達したかどうかは、例えば、I/O応答時間、I/Oの回数、または何らかの他の要因によって判定することができる。例えば、アクセスの特定のパターンまたは頻度で、SSS225からRAM220にデータを転送するI/Oは、SSS225が利用可能な帯域幅を超えることがある。この場合、SSS225がより多くのI/Oに利用可能になるまで、後に続くI/Oを回転媒体210に送信することができる。
図3は、本明細書に記載される主題の態様に従ってデータベースをホストするシステムの構成要素を例示するブロック図である。構成要素300には、メタデータ305、メインメモリバッファページ310、SSSバッファページ315、および他の記憶装置320が含まれる。メタデータ305には、上述したようなページに関するデータが含まれる。メタデータ305は、メインメモリ、キャッシュ、または、何らかの他の高速メモリに記憶させることができる。メタデータ305は、ページがメインメモリおよび/またはSSSに記憶されることを示す場合がある。
メインメモリバッファページ310は、RAMまたは他の揮発性メモリなどのメインメモリ内に記憶させることができる。そのようなメモリには、機械的動作を伴わずにアクセスすることができる。換言すれば、そのようなメモリでは、主要部の任意の構成要素の物理的動作を伴わずに、データへのアクセスを提供することができる。そのようなメモリは、機械的なタイプの記憶装置より高速であることが多い。
メインメモリバッファページ310には、どの程度のスペースが利用可能であるかによって、ホットページ、ウォームページ、およびコールドページを含むことができる。例えば、メインメモリバッファページ310には、他の記憶装置320から最近検索された、いくつかのコールドページを含むことができる。いくつかのメインメモリバッファページ310のコピーを、SSSバッファページ315内に記憶させることができる。メインメモリバッファページ310内のいくつかのページが、SSSバッファ315にコピーされないこともある。さらに、SSSバッファページ315は、メインメモリバッファページ310内には無いページを含んでも良い。
SSSバッファページ315を、二次的メモリに記憶させることができる。性能向上を図るために、この二次的メモリは記憶装置320よりも性能が高くても良い(例えば、より速い応答時間、より広い帯域幅など)。何らかのメモリ(ソリッドステート記憶装置など)は、機械的動作を伴わずにアクセスすることができ、また不揮発性であっても良い。このメモリは記憶装置320よりも性能が高くても良いが、メインメモリよりも遅くても良い。
他の記憶装置320は、ハードディスク、テープ、他の不揮発性記憶装置などの不揮発性記憶装置を含むことができる。この他の記憶装置320は、移動するように(例えば、プラッタ上を前後に、回転、またはその他)動作可能であり、記憶装置320の記憶デバイス上のメモリへのアクセスを提供する構成要素(例えば、アーム、プラッタ、または他の媒体など)を含むことができる。安価な実装では、記憶装置320は、システム300のメインメモリおよびSSSよりもスループットが低くても良い。しかしながら、いくつかのシステムにおいては、共同して機能する多くの記憶デバイス(例えば、ディスク)を使用すると、記憶装置320のスループットがSSSのスループットに届くかまたはそれを超えることもあるが、応答時間は比較的大きくなりうる。
メタデータ305は、メインメモリバッファページ310およびSSSバッファページ315内のページに関する情報を記憶する。そのような情報には、図2に関連して上述したメタデータを含むことができる。
図2から図3に例示される構成要素は例であり、必要とされ得るまたは含まれ得る構成要素の全てを包含することを意味しない。他の実施形態において、図2から図3に関連して記載される構成要素および/または機能は、本明細書に記載される主題の態様の主旨または範囲から逸脱することなく、他の構成要素(図示されるもの、または図示されないもの)に含まれて良く、またはサブ構成要素内に配置されて良い。いくつかの実施形態において、図2から図3に関連して記載される構成要素および/または機能は、複数の装置に亘って分散させることができる。
図4から図5は、本明細書に記載される主題の態様に従って発生し得る動作を概略的に表すフロー図である。説明を簡略化するために、図4から図5に関連して記載される方法論は、一連の動作として示され記載される。本明細書に記載される主題の態様が、例示される動作によりおよび/または動作の順番により制限されないことは理解されかつ認められるべきである。一実施形態において、動作は以下に記載される順序で発生する。しかし、他の実施形態において、動作は並行して、別の順序でおよび/または本明細書に提示も記載もされない他の動作と共に発生することもある。さらに、本明細書に記載される主題の態様に従って方法論を実装するために、例示される全ての動作が要求されるわけではない。加えて、当業者であれば、方法論を、代替えとして状態図を介して相互に関連する一連の状態として、または一連の事象として、表すことができることを理解し分かるであろう。
図4は、本明細書に記載される主題の態様に従って、閾値を判定するためにページをスキャンし、必要に応じてページを退避させる際に発生しうる、いくつかの例示の動作を概略的に表すフロー図である。
ブロック410にて、ページをスキャンして閾値を判定する要求が受け取られる。例えば、図4を参照すると、メモリプレッシャに応じて、DBMS205は、ページをスキャンする要求をバッファプール構成要素に送信することができる。
ブロック415にて、ページのメタデータがアクセスされる。例えば、図3を参照すると、メタデータ305がアクセスされる。メタデータの全てにアクセスする代わりに、データベースのバッファプールのランダムに選択されたいくつかのページの、そのメタデータをサンプリングすることができる。一実施形態において、ページのメタデータのサンプリングには、ページのメタデータから、サンプリングされたそれぞれのページの1つまたは2つのタイムスタンプを取得することが含まれ、該1つまたは2つのタイムスタンプはサンプリングされたページがアクセスされた最後の時間に対応する。このメタデータを、ページへのアクセスに対応する値を生成する関数(例えば、分類関数)に与えることができる。サンプリングのメタデータに対するその関数によって生成された値を使用して、閾値を選択することができる。例えば、関数により値を取得した後、値について定義済みの異なるパーセンタイルに対応する閾値が選択される。パーセンタイルの範囲(例えば、0から5、5から25、25から100)をホット、ウォーム、コールドに対応させることができる。
ブロック420にて、コールド閾値をメタデータから判定することができる。例えば、コールド閾値は、0から25の間のパーセンタイルの範囲内のサンプリングされたページのアクセスの頻度に対応させることができる。コールド閾値が判定されると、上記の関数をページのメタデータにより表されるアクセスデータに適用して、コールド閾値以下の値が返される場合、ページはコールドであると判定することができる。
ブロック425にて、ウォーム閾値をメタデータから判定することができる。例えば、ウォーム閾値は、250から75の間のパーセンタイルの範囲内のサンプリングされたページのアクセスの頻度に対応させることができる。ウォーム閾値が判定されると、上記の関数をページのメタデータにより表されるアクセスデータに適用して、コールド閾値より大きくかつウォーム閾値以下の値が返される場合、ページはウォームであると判定することができる。
ブロック430にて、ページを退避させる要求が受け取られる。例えば、図2を参照すると、DBMS205の退避構成要素は、1つまたは複数の他のページのために、バッファプール215からフリースペースにページを退避させる要求を受け取ることができる。
ブロック435にて、バッファプール215のページは、退避を考慮して選択することができる。例えば、図3を参照すると、メインメモリバッファページ310の内の1つを、退避を考慮して選択することができる。選択は、退避に適したページを見つけるためのページを巡回するために使用されるアルゴリズム、キューまたは他のデータ構造などを使用して行われる。
ブロック440にて、ページが分類される。これは、値を得るために上述の関数をページのメタデータに適用することにより行われうる。次に、この値は上述した閾値と比較され、ページが、ホット、ウォーム、またはコールドであるかどうかが判定することができる。
ブロック445にて、適切である場合は、ページが退避される。例えば、ページがコールドであると判定される場合、ページはディスクから退避されても良い。ページがウォームである場合、SSSスループットのための閾値に達していなければ、ページをSSSにコピーすることができ、SSSスループットのための閾値に達している場合、ページはディスクから退避されて良い。ページがホットである場合、ページは退避せずにメインメモリ内に残すことができる。
ブロック450にて、他の動作があれば、それを実行させることができる。
図5は、本明細書に記載される主題の態様に従って、DBMSがアクセス要求を受け取り、かつバッファプールがフルである場合に発生するようないくつかの例示の動作を概略的に表すフロー図である。ブロック505にて、動作が開始される。
ブロック510にて、データベースのデータにアクセスする要求が受け取られる。例えば、図2を参照すると、DBMS205はデータベース内のデータにアクセスする要求を受け取ることができる。
ブロック515にて、DBMSは、データがメインメモリの外に存在すると判定する。例えば、図2を参照すると、DBMS205は、要求されたデータがSSS225または回転媒体210に存在すると判定することができる。
ブロック520にて、DBMSは、メインメモリ内のバッファプールがフルであると判定する。例えば、図2を参照すると、DBMS205は、メインメモリ220がページでフルになっており、ページを退避させてデータのためのスペースを作る必要がある、と判定する。
ブロック525にて、退避のためのページが選択される。退避用のページを選択することは、ページへのアクセスの頻度による少なくとも3つの分類(例えば、ホット、ウォームおよびコールド)に従って、ページを分類する関数(例えば、上述の分類関数)を使用することを含んでも良い。例えば、図2を参照すると、DBMS205は、メインメモリ220内の退避用のページを判定することができる。
ブロック530にて、ページが退避させられる。例えば、図2を参照すると、DBMS205は、選択されたページをSSS225または回転媒体210に退避させることができる。ページをSSS225に退避させることは、ページをSSS225にコピーすることを含んでも良い。これにより、ページはバッファプール215に保持され、バッファプールのメインメモリ220には無くなる。このようにして、SSS225はバッファプールを拡張させることができる(メインメモリ220から退避させられたページ用の別個のキャッシュとして動作するだけではない)。
ブロック535にて、他の動作があれば、それを実行させることができる。
上記の検討では、ソリッドステート記憶装置を使用してバッファプールを拡張することに言及したが、他の実施形態において、ソリッドステート記憶装置以外の記憶装置を使用してバッファプールを拡張することができる。他の記憶装置は、現在存在するものまたは開発中のものでも良い。本明細書に記載される主題の態様に従うと、他の記憶装置は、回転式の記憶装置よりも高いがメインメモリよりも低い、スループット、帯域幅、または何らかの他の特徴を有して良い。
前述の詳細な説明から分かるように、データシステムのためのバッファプールに関する態様が記載された。本明細書に記載される主題の態様が種々の修正および代替の構造の影響を受けやすい一方、特定の例示される実施形態が、図面において示され、上記で詳細に説明された。しかしながら、特許請求される主題の態様を開示される特定の形式に制限することは意図されず、逆に、本発明が本明細書に記載される主題の種々の態様の主旨および範囲内にある全ての修正、代替の構造および等価物に及ぶ、ことを理解されたい。

Claims (15)

  1. 少なくとも一部がコンピュータにより実装される方法であって、
    データベースバッファプールのページのメタデータにアクセスするステップであって、前記データベースバッファプールが、メインメモリに記憶されるページ、ソリッドステートメモリに記憶されるページ、およびメインメモリとソリッドステートメモリの両方に記憶されるページを潜在的に含む、ステップと、
    前記メタデータから、ページがコールドであるかどうかの判定に使用可能なコールド閾値を判定するステップであって、前記ページのメタデータにより表されるアクセスデータに関数を適用して、前記コールド閾値以下の値が返される場合、前記ページはコールドである、ステップと、
    前記メタデータから、ページがウォームであるかどうかの判定に使用可能なウォーム閾値を判定するステップであって、前記ページのメタデータにより表される前記アクセスデータに関数を適用して、前記コールド閾値より大きくかつ前記ウォーム閾値以下の値が返される場合、前記ページはウォームである、ステップと、
    ページを、1つまたは複数の他のページのために、前記メインメモリまたは前記ソリッドステートメモリからフリースペースに退避させるステップと
    を含むことを特徴とする方法。
  2. 前記データベースバッファプールのページのメタデータにアクセスするステップは、データベースバッファプールのランダムに選択されたいくつかのページのメタデータをサンプリングするステップを含み、その数は、データベースバッファプールの全てのページより小さいことを特徴とする請求項1に記載の方法。
  3. 前記データベースバッファプールのページのメタデータにアクセスするステップは、前記ページのメタデータから、サンプリングされたそれぞれのページの1つまたは2つのタイムスタンプを取得するステップを含み、前記1つまたは2つのタイムスタンプは、サンプリングされたページがアクセスされた直近の時間に対応し、前記関数は、前記1つまたは2つのタイムスタンプの少なくとも1つに対して作用して、ページがホット、ウォームまたはコールドであるかどうかを示す値を生成することを特徴とする請求項2に記載の方法。
  4. 前記ページを退避させるステップは、前記ソリッドステートメモリが利用可能なフリースペースを有する場合、かつ、コールドのページのコピーが前記ソリッドステートメモリ内に無い場合、前記コールドのページを前記ソリッドステートメモリにコピーするステップを含むことを特徴とする請求項1に記載の方法。
  5. 前記データベースバッファプールのために使用される前記ソリッドステート記憶装置の量を変更するステップをさらに含むことを特徴とする請求項1に記載の方法。
  6. 前記ソリッドステート記憶装置のI/O閾値に到達したかどうかを判定するステップと、
    到達した場合には、前記メインメモリおよび前記ソリッドステートメモリ以外の記憶装置にページをコピーするステップと、
    をさらに含むことを特徴とする請求項1に記載の方法。
  7. 前記ページをソリッドステートメモリから退避させるステップは、複数のページを前記メインメモリから前記ソリッドステートメモリに1回の書き込み操作でコピーするステップを含むことを特徴とする請求項1に記載の方法。
  8. コンピュータ環境におけるシステムであって
    移動するように動作可能であり前記記憶デバイスのデータへのアクセスを提供する構成要素を含む1つまたは複数の記憶デバイスのセットと、
    揮発性のメインメモリであって、自身のいずれの構成要素の物理的動作も伴わずに、記憶されるデータへのアクセスを提供するように動作可能であるメインメモリと、
    不揮発性の二次的メモリであって、自身のいずれの構成要素の物理的動作も伴わずに、記憶されるデータへのアクセスを提供するように動作可能である二次的メモリと、
    データベース管理システムに対応する命令を実行するように動作可能な1つまたは複数のプロセッサを備え、
    前記データベース管理システムは、前記メインメモリおよび前記二次的メモリ内のバッファプールのページを管理するように動作可能であり、かつ、ページが少なくとも3つの分類に対応するアクセスを有するかどうかの判定に基づき前記ページを退避させるべく動作可能であり、前記ページは、ページへのアクセスがパーセンタイルの第1の範囲にある場合は第1の前記分類に対応するアクセスを有し、ページへのアクセスがパーセンタイルの第2の範囲にある場合は第2の前記分類に対応するアクセスを有し、ページへのアクセスがパーセンタイルの第3の範囲にある場合は第3の前記分類に対応するアクセスを有する
    ことを特徴とするシステム。
  9. 前記1つまたは複数の記憶デバイスのセットが1つまたは複数のハードディスクを備え、前記メインメモリがランダムアクセスメモリを備え、前記二次的メモリがソリッドステートメモリを備えることを特徴とする請求項8に記載のシステム。
  10. 前記データベース管理システムが、バッファプール内のランダムに選択されるページのメタデータをスキャンして前記第1、第2、および第3の範囲を判定するようにさらに動作可能であり、前記メタデータは各ページがアクセスされた直近の時間を示すデータを含むことを特徴とする請求項8に記載のシステム。
  11. 前記ページを退避させるように動作可能なデータベース管理システムが、パーセンタイルの第2の範囲にあると判定されたページを、前記メインメモリから前記二次的メモリにコピーするように動作可能なデータベース管理システムを含むことを特徴とする請求項8に記載のシステム。
  12. 前記ページを退避させるように動作可能なデータベース管理システムが、パーセンタイルの第3の範囲にあると判定されて選択されたページを、前記選択されたページを1つまたは複数の記憶デバイスにコピーする前に、前記二次的メモリから前記メインメモリにコピーするように動作可能であるデータベース管理システムを含むことを特徴とする請求項8に記載のシステム。
  13. 前記パーセンタイルの第1の範囲が0パーセンタイルから5パーセンタイルであり、前記パーセンタイルの第2の範囲が5パーセンタイルから25パーセンタイルであり、前記パーセンタイルの第3の範囲が25パーセンタイルから100パーセンタイルであることを特徴とする請求項8に記載のシステム。
  14. コンピュータ実行可能命令を有するコンピュータ記憶媒体であって、実行される時に、
    データベースのデータを求める要求を受け取るステップと、
    データがメインメモリ以外の記憶装置内にあることを判定するステップと、
    前記メインメモリ内のバッファプールがフルであることを判定するステップと、
    退避対象の候補のページを、前記候補のページへのアクセスに応じた少なくとも3つの分類のうちの1つに従って前記候補のページを分類する関数に基づいて、前記メインメモリ内のバッファプールから選択するステップと、
    前記候補のページをメインメモリから退避させるステップと
    を含む動作を実行することを特徴とするコンピュータ記憶媒体。
  15. 退避対象の候補のページをメインメモリ内のバッファプールから選択するステップは、前記分類のうちの第3の分類にあるページを見つける動作を含み、前記分類のうちの第3の分類は、他の分類のいずれかのページよりもアクセスされる頻度が低いページを表すことを特徴とする請求項14に記載のコンピュータ記憶媒体。
JP2012556228A 2010-03-04 2011-03-02 データベースサーバのためのバッファプール拡張 Active JP5722352B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/717,139 US8712984B2 (en) 2010-03-04 2010-03-04 Buffer pool extension for database server
US12/717,139 2010-03-04
PCT/US2011/026930 WO2011109564A2 (en) 2010-03-04 2011-03-02 Buffer pool extension for database server

Publications (3)

Publication Number Publication Date
JP2013521579A true JP2013521579A (ja) 2013-06-10
JP2013521579A5 JP2013521579A5 (ja) 2014-05-08
JP5722352B2 JP5722352B2 (ja) 2015-05-20

Family

ID=44532279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012556228A Active JP5722352B2 (ja) 2010-03-04 2011-03-02 データベースサーバのためのバッファプール拡張

Country Status (5)

Country Link
US (2) US8712984B2 (ja)
EP (1) EP2542989B1 (ja)
JP (1) JP5722352B2 (ja)
CN (1) CN102782683B (ja)
WO (1) WO2011109564A2 (ja)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140724A1 (en) 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US9235531B2 (en) 2010-03-04 2016-01-12 Microsoft Technology Licensing, Llc Multi-level buffer pool extensions
US8712984B2 (en) 2010-03-04 2014-04-29 Microsoft Corporation Buffer pool extension for database server
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9514174B2 (en) 2012-06-30 2016-12-06 Microsoft Technology Licensing, Llc Classification of data in main memory database systems
CN103631528B (zh) * 2012-08-21 2016-05-18 苏州捷泰科信息技术有限公司 用固态硬盘作为缓存器的读写方法、系统及读写控制器
US8984240B2 (en) * 2012-08-30 2015-03-17 International Business Machines Corporation Reducing page faults in host OS following a live partition mobility event
US9330055B2 (en) * 2013-06-04 2016-05-03 International Business Machines Corporation Modular architecture for extreme-scale distributed processing applications
US9558080B2 (en) 2013-10-31 2017-01-31 Microsoft Technology Licensing, Llc Crash recovery using non-volatile memory
US9208086B1 (en) * 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
WO2015163898A1 (en) * 2014-04-24 2015-10-29 Hewlett-Packard Development Company, L.P. Structuring pages images in a memory
US9436601B2 (en) 2014-09-15 2016-09-06 International Business Machines Corporation Categorizing memory pages based on page residences
WO2016122549A1 (en) * 2015-01-29 2016-08-04 Hewlett Packard Enterprise Development Lp Read only bufferpool
US20160255169A1 (en) * 2015-02-27 2016-09-01 Futurewei Technologies, Inc. Method and system for smart object eviction for proxy cache
CN114528022A (zh) * 2015-04-24 2022-05-24 优创半导体科技有限公司 实现虚拟地址的预转换的计算机处理器
CN106682005A (zh) * 2015-11-05 2017-05-17 华为技术有限公司 一种确定数据库热页面的方法及装置
CN108139872B (zh) * 2016-01-06 2020-07-07 华为技术有限公司 一种缓存管理方法、缓存控制器以及计算机系统
KR102540765B1 (ko) * 2016-09-07 2023-06-08 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
WO2018067467A1 (en) 2016-10-03 2018-04-12 Ocient Llc Infrastructure improvements for use in a massively parallel database management system
US10706031B2 (en) 2016-12-14 2020-07-07 Ocient, Inc. Database management systems for managing data with data confidence
US10868863B1 (en) 2016-12-14 2020-12-15 Ocient Inc. System and method for designating a leader using a consensus protocol within a database management system
US10228864B1 (en) * 2016-12-30 2019-03-12 Parallels International Gmbh Pre-fetching data based on memory usage patterns
DE102017103018A1 (de) * 2017-02-15 2018-08-16 Sig Technology Ag Verpackungsanlagendatenvermittlung sowie Verfahren zum Betreiben einer Verpackungsanlagendatenvermittlung
US12099876B2 (en) 2017-04-03 2024-09-24 Ocient Inc. Coordinating main memory access of a plurality of sets of threads
US10754856B2 (en) 2017-05-30 2020-08-25 Ocient Inc. System and method for optimizing large database management systems using bloom filter
JP6974706B2 (ja) * 2017-08-14 2021-12-01 富士通株式会社 情報処理装置、ストレージシステムおよびプログラム
US11182125B2 (en) 2017-09-07 2021-11-23 Ocient Inc. Computing device sort function
US10942854B2 (en) * 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US20190354470A1 (en) * 2018-05-16 2019-11-21 Sap Se Reduced Database Backup Memory Usage
KR102549346B1 (ko) * 2018-07-24 2023-06-28 삼성전자주식회사 솔리드 스테이트 드라이브 및 그의 메타 데이터 액세스 방법
US11256696B2 (en) 2018-10-15 2022-02-22 Ocient Holdings LLC Data set compression within a database system
US11886436B2 (en) 2018-10-15 2024-01-30 Ocient Inc. Segmenting a partition of a data set based on a data storage coding scheme
US12050580B2 (en) 2018-10-15 2024-07-30 Ocient Inc. Data segment storing in a database system
US11880368B2 (en) 2018-10-15 2024-01-23 Ocient Holdings LLC Compressing data sets for storage in a database system
US11249916B2 (en) 2018-10-15 2022-02-15 Ocient Holdings LLC Single producer single consumer buffering in database systems
US11709835B2 (en) 2018-10-15 2023-07-25 Ocient Holdings LLC Re-ordered processing of read requests
US10877675B2 (en) * 2019-02-15 2020-12-29 Sap Se Locking based on categorical memory allocation
US10922159B2 (en) 2019-04-16 2021-02-16 International Business Machines Corporation Minimally disruptive data capture for segmented applications
US11093500B2 (en) 2019-10-28 2021-08-17 Ocient Holdings LLC Enforcement of minimum query cost rules required for access to a database system
US11106679B2 (en) 2019-10-30 2021-08-31 Ocient Holdings LLC Enforcement of sets of query rules for access to data supplied by a plurality of data providers
US11609911B2 (en) 2019-12-19 2023-03-21 Ocient Holdings LLC Selecting a normalized form for conversion of a query expression
CN111309251A (zh) * 2020-01-21 2020-06-19 青梧桐有限责任公司 数据存储方法、系统、电子设备及可读存储介质
US11061910B1 (en) 2020-01-31 2021-07-13 Ocient Holdings LLC Servicing concurrent queries via virtual segment recovery
US11853364B2 (en) 2020-01-31 2023-12-26 Ocient Holdings LLC Level-based queries in a database system and methods for use therewith
US11599463B2 (en) 2020-03-25 2023-03-07 Ocient Holdings LLC Servicing queries during data ingress
US11238041B2 (en) 2020-03-25 2022-02-01 Ocient Holdings LLC Facilitating query executions via dynamic data block routing
US11580102B2 (en) 2020-04-02 2023-02-14 Ocient Holdings LLC Implementing linear algebra functions via decentralized execution of query operator flows
US11294916B2 (en) 2020-05-20 2022-04-05 Ocient Holdings LLC Facilitating query executions via multiple modes of resultant correctness
US11775529B2 (en) 2020-07-06 2023-10-03 Ocient Holdings LLC Recursive functionality in relational database systems
US11880716B2 (en) 2020-08-05 2024-01-23 Ocient Holdings LLC Parallelized segment generation via key-based subdivision in database systems
US11321288B2 (en) 2020-08-05 2022-05-03 Ocient Holdings LLC Record deduplication in database systems
US11755589B2 (en) 2020-08-05 2023-09-12 Ocient Holdings LLC Delaying segment generation in database systems
US11762578B2 (en) * 2020-09-29 2023-09-19 International Business Machines Corporation Buffer pool contention optimization
US11822532B2 (en) 2020-10-14 2023-11-21 Ocient Holdings LLC Per-segment secondary indexing in database systems
US12099504B2 (en) 2020-10-19 2024-09-24 Ocient Holdings LLC Utilizing array field distribution data in database systems
US11507578B2 (en) 2020-10-19 2022-11-22 Ocient Holdings LLC Delaying exceptions in query execution
US11675757B2 (en) 2020-10-29 2023-06-13 Ocient Holdings LLC Maintaining row durability data in database systems
CN112579481B (zh) * 2020-12-07 2023-01-20 海光信息技术股份有限公司 数据处理方法、数据处理装置和计算装置
US11297123B1 (en) 2020-12-11 2022-04-05 Ocient Holdings LLC Fault-tolerant data stream processing
US11314743B1 (en) 2020-12-29 2022-04-26 Ocient Holdings LLC Storing records via multiple field-based storage mechanisms
US11734277B2 (en) * 2021-02-05 2023-08-22 International Business Machines Corporation Database buffer pool optimization
US11645273B2 (en) 2021-05-28 2023-05-09 Ocient Holdings LLC Query execution utilizing probabilistic indexing
US20230033029A1 (en) * 2021-07-22 2023-02-02 Vmware, Inc. Optimized memory tiering
US11803544B2 (en) 2021-10-06 2023-10-31 Ocient Holdings LLC Missing data-based indexing in database systems
US11983172B2 (en) 2021-12-07 2024-05-14 Ocient Holdings LLC Generation of a predictive model for selection of batch sizes in performing data format conversion
CN115905168B (zh) * 2022-11-15 2023-11-07 本原数据(北京)信息技术有限公司 基于数据库的自适应压缩方法和装置、设备、存储介质
CN115757438B (zh) * 2023-01-06 2023-05-12 本原数据(北京)信息技术有限公司 数据库的索引节点处理方法和装置、计算机设备及介质
US20240338324A1 (en) * 2023-04-05 2024-10-10 Samsung Electronics Co., Ltd. Hierarchical memory system
US12093254B1 (en) 2023-04-28 2024-09-17 Ocient Holdings LLC Query execution during storage formatting updates
US12072887B1 (en) 2023-05-01 2024-08-27 Ocient Holdings LLC Optimizing an operator flow for performing filtering based on new columns values via a database system
US12117986B1 (en) 2023-07-20 2024-10-15 Ocient Holdings LLC Structuring geospatial index data for access during query execution via a database system
US12093231B1 (en) 2023-07-28 2024-09-17 Ocient Holdings LLC Distributed generation of addendum part data for a segment stored via a database system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08153014A (ja) * 1994-11-30 1996-06-11 Hitachi Ltd クライアントサーバシステム
JPH08235042A (ja) * 1995-02-28 1996-09-13 N T T Data Tsushin Kk 複数ジャーナル一括取得方式
JP2001282617A (ja) * 2000-03-27 2001-10-12 Internatl Business Mach Corp <Ibm> 共有されたキャッシュを動的に区分するための方法及びシステム
JP2003216460A (ja) * 2002-01-21 2003-07-31 Hitachi Ltd 階層ストレージ装置及びその制御装置
JP2005173637A (ja) * 2003-12-05 2005-06-30 E-Storage Networks Inc ストレージキャッシング型コンピュータプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにストレージキャッシング型コンピュータ
JP2005539309A (ja) * 2002-09-16 2005-12-22 ティギ・コーポレイション 記憶システムアーキテクチャおよび多重キャッシュ装置
JP2006185169A (ja) * 2004-12-27 2006-07-13 Toshiba Corp キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680573A (en) 1994-07-12 1997-10-21 Sybase, Inc. Method of buffering data objects in a database
US5829038A (en) 1996-06-20 1998-10-27 Intel Corporation Backward inquiry to lower level caches prior to the eviction of a modified line from a higher level cache in a microprocessor hierarchical cache structure
US5897634A (en) 1997-05-09 1999-04-27 International Business Machines Corporation Optimized caching of SQL data in an object server system
US5940823A (en) * 1997-11-10 1999-08-17 International Business Machines Corporation System for the distribution and storage of electronic mail information
US6393415B1 (en) * 1999-03-31 2002-05-21 Verizon Laboratories Inc. Adaptive partitioning techniques in performing query requests and request routing
JP5220974B2 (ja) * 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
CA2312444A1 (en) 2000-06-20 2001-12-20 Ibm Canada Limited-Ibm Canada Limitee Memory management of data buffers incorporating hierarchical victim selection
US6754662B1 (en) * 2000-08-01 2004-06-22 Nortel Networks Limited Method and apparatus for fast and consistent packet classification via efficient hash-caching
WO2004016532A2 (en) * 2002-08-16 2004-02-26 Electro Scientific Industries, Inc. Modular belt carrier for electronic components
US6910106B2 (en) * 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
CA2408481C (en) 2002-10-17 2009-10-06 Ibm Canada Limited-Ibm Canada Limitee Autonomic reallocation of memory among buffer pools
US20040205297A1 (en) 2003-04-14 2004-10-14 Bearden Brian S. Method of cache collision avoidance in the presence of a periodic cache aging algorithm
US7080220B2 (en) 2003-07-03 2006-07-18 International Business Machines Corporation Page replacement with a re-reference indicator
CA2465065A1 (en) 2004-04-21 2005-10-21 Ibm Canada Limited - Ibm Canada Limitee Application cache pre-loading
US7383389B1 (en) * 2004-04-28 2008-06-03 Sybase, Inc. Cache management system providing improved page latching methodology
US8019735B2 (en) 2004-05-21 2011-09-13 Oracle International Corporation Systems and methods for query caching
US7689607B2 (en) * 2005-04-15 2010-03-30 Microsoft Corporation Database page mirroring
US8619452B2 (en) * 2005-09-02 2013-12-31 Google Inc. Methods and apparatus of stacking DRAMs
US7409504B2 (en) 2005-10-06 2008-08-05 International Business Machines Corporation Chained cache coherency states for sequential non-homogeneous access to a cache line with outstanding data response
US20070094450A1 (en) 2005-10-26 2007-04-26 International Business Machines Corporation Multi-level cache architecture having a selective victim cache
US7386673B2 (en) * 2005-11-30 2008-06-10 Red Hat, Inc. Method for tracking of non-resident pages
US20080040748A1 (en) * 2006-08-09 2008-02-14 Ken Miyaki Dynamic rating of content
US7596662B2 (en) 2006-08-31 2009-09-29 Intel Corporation Selective storage of data in levels of a cache memory
US8719501B2 (en) 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US20080147974A1 (en) 2006-12-18 2008-06-19 Yahoo! Inc. Multi-level caching system
JP5224706B2 (ja) * 2007-03-23 2013-07-03 キヤノン株式会社 記憶装置及び記憶装置の制御方法
US8055988B2 (en) 2007-03-30 2011-11-08 International Business Machines Corporation Multi-bit memory error detection and correction system and method
US8464024B2 (en) 2007-04-27 2013-06-11 Hewlett-Packard Development Company, L.P. Virtual address hashing
US7711905B2 (en) 2007-07-16 2010-05-04 International Business Machines Corporation Method and system for using upper cache history information to improve lower cache data replacement
CN100451976C (zh) 2007-07-23 2009-01-14 清华大学 基于海量数据分级存储系统的迁移管理方法
JP2009053820A (ja) 2007-08-24 2009-03-12 Nec Electronics Corp 階層型キャッシュメモリシステム
US8863091B2 (en) * 2007-10-19 2014-10-14 Oracle International Corporation Unified tracing service
CN101459726B (zh) * 2007-12-13 2011-05-11 中兴通讯股份有限公司 场景缓存更新方法及支持该方法的移动流媒体终端
US7912812B2 (en) 2008-01-07 2011-03-22 International Business Machines Corporation Smart data caching using data mining
US9805077B2 (en) 2008-02-19 2017-10-31 International Business Machines Corporation Method and system for optimizing data access in a database using multi-class objects
JP2009223442A (ja) * 2008-03-13 2009-10-01 Hitachi Ltd ストレージシステム
CN101320353A (zh) 2008-07-18 2008-12-10 四川长虹电器股份有限公司 嵌入式浏览器缓存设计方法
US8914567B2 (en) * 2008-09-15 2014-12-16 Vmware, Inc. Storage management system for virtual machines
US8375178B2 (en) * 2008-11-12 2013-02-12 Oracle International Corporation Memory page eviction based on present system operation
US8417891B2 (en) 2008-12-15 2013-04-09 Intel Corporation Shared cache memories for multi-core processors
US8250111B2 (en) * 2009-02-27 2012-08-21 International Business Machines Corporation Automatic detection and correction of hot pages in a database system
US8145859B2 (en) * 2009-03-02 2012-03-27 Oracle International Corporation Method and system for spilling from a queue to a persistent store
CN101615191B (zh) * 2009-07-28 2011-05-11 武汉大学 海量点云数据的存储与实时可视化方法
US8438337B1 (en) 2009-09-30 2013-05-07 Netlogic Microsystems, Inc. System and method for conditionally sending a request for data to a home node
US8161241B2 (en) * 2010-01-12 2012-04-17 International Business Machines Corporation Temperature-aware buffered caching for solid state storage
US8712984B2 (en) * 2010-03-04 2014-04-29 Microsoft Corporation Buffer pool extension for database server
US9235531B2 (en) 2010-03-04 2016-01-12 Microsoft Technology Licensing, Llc Multi-level buffer pool extensions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08153014A (ja) * 1994-11-30 1996-06-11 Hitachi Ltd クライアントサーバシステム
JPH08235042A (ja) * 1995-02-28 1996-09-13 N T T Data Tsushin Kk 複数ジャーナル一括取得方式
JP2001282617A (ja) * 2000-03-27 2001-10-12 Internatl Business Mach Corp <Ibm> 共有されたキャッシュを動的に区分するための方法及びシステム
JP2003216460A (ja) * 2002-01-21 2003-07-31 Hitachi Ltd 階層ストレージ装置及びその制御装置
JP2005539309A (ja) * 2002-09-16 2005-12-22 ティギ・コーポレイション 記憶システムアーキテクチャおよび多重キャッシュ装置
JP2005173637A (ja) * 2003-12-05 2005-06-30 E-Storage Networks Inc ストレージキャッシング型コンピュータプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにストレージキャッシング型コンピュータ
JP2006185169A (ja) * 2004-12-27 2006-07-13 Toshiba Corp キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Also Published As

Publication number Publication date
US20110219169A1 (en) 2011-09-08
WO2011109564A3 (en) 2012-01-19
WO2011109564A2 (en) 2011-09-09
US8712984B2 (en) 2014-04-29
US20140195750A1 (en) 2014-07-10
US9069484B2 (en) 2015-06-30
EP2542989B1 (en) 2017-08-23
EP2542989A2 (en) 2013-01-09
JP5722352B2 (ja) 2015-05-20
CN102782683B (zh) 2013-08-21
EP2542989A4 (en) 2015-01-14
CN102782683A (zh) 2012-11-14

Similar Documents

Publication Publication Date Title
JP5722352B2 (ja) データベースサーバのためのバッファプール拡張
CN108804031B (zh) 最佳记录查找
JP5425286B2 (ja) データ処理システムのメモリ使用状況を追跡する方法
US9471500B2 (en) Bucketized multi-index low-memory data structures
US9058123B2 (en) Systems, methods, and interfaces for adaptive persistence
US7424577B2 (en) Dynamic optimization of cache memory
US9177028B2 (en) Deduplicating storage with enhanced frequent-block detection
TWI483109B (zh) 半導體儲存裝置
US9779026B2 (en) Cache bypass utilizing a binary tree
US20160246724A1 (en) Cache controller for non-volatile memory
US20070027940A1 (en) Defragmenting one or more files based on an indicator
US11169968B2 (en) Region-integrated data deduplication implementing a multi-lifetime duplicate finder
CN112799595A (zh) 数据处理方法、设备及存储介质
US9189477B2 (en) Managing direct attached cache and remote shared cache
US20100161934A1 (en) Preselect list using hidden pages
Wu et al. CAGC: A content-aware garbage collection scheme for ultra-low latency flash-based SSDs
US11782854B2 (en) Cache architecture for a storage device
US7805471B2 (en) Method and apparatus to perform incremental truncates in a file system
CN115878025B (zh) 树结构节点压缩优先级
Doekemeijer TropoDB: Design, Implementation and Evaluation of an Optimised KV-Store for NVMe Zoned Namespace Devices
Liu et al. Hitchhike: An i/o scheduler enabling writeback for small synchronous writes
US20070121162A1 (en) Method, Apparatus, and Computer Program Product for Memory Paging
Gupta et al. Exploring Forensic Implications of the Fusion Drive

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130717

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150325

R150 Certificate of patent or registration of utility model

Ref document number: 5722352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

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