JP2012118987A - メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) - Google Patents

メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) Download PDF

Info

Publication number
JP2012118987A
JP2012118987A JP2011260077A JP2011260077A JP2012118987A JP 2012118987 A JP2012118987 A JP 2012118987A JP 2011260077 A JP2011260077 A JP 2011260077A JP 2011260077 A JP2011260077 A JP 2011260077A JP 2012118987 A JP2012118987 A JP 2012118987A
Authority
JP
Japan
Prior art keywords
query
memory
execution
computer
compression
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
JP2011260077A
Other languages
English (en)
Other versions
JP5744707B2 (ja
Inventor
Laurence Basnas Eric
エリック・ローレンス・バースネス
M Santososso John
ジョン・エム・サントスオッソ
Stuart Nelsestuen Paul
ポール・スチュワート・ネルセストゥエン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012118987A publication Critical patent/JP2012118987A/ja
Application granted granted Critical
Publication of JP5744707B2 publication Critical patent/JP5744707B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24547Optimisations to support specific applications; Extensibility of optimisers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

【課題】メモリ圧縮を使用し、メモリ使用量に基づいて照会実行を管理するための技法を提供する。
【解決手段】諸実施形態は、要求側エンティティから照会を受信し、照会の実行に必要なメモリの量を推定することができる。照会の実行が許容を超える量のメモリを消費することになると判別すると、諸実施形態は、照会の実行で使用されるメモリ圧縮量を調整することによって、照会を最適化することができる。その後、最適化された照会を実行して、照会結果のセットを生成した後、これを要求側エンティティに戻すことができる。
【選択図】 図2

Description

本発明は、一般にデータベース管理に関し、より具体的には、照会ガバナ(query governor)を使用した照会のメモリ使用量の管理に関する。
データベースは、コンピュータ化された情報の格納および取り出しシステムである。関係データベース管理システムは、データを格納および取り出すために関係技法を使用する、コンピュータ・データベース管理システム(DBMS)である。オブジェクト指向プログラミング・データベースは、オブジェクトのクラスおよびサブクラスで定義されたデータと一致するデータベースである。
特定のアーキテクチャに関係なく、DBMS内の要求側エンティティ(たとえばアプリケーションまたはオペレーティング・システム)は、データベース・アクセス要求を発行することによって、指定されたデータベースへのアクセスを要求する。こうした要求は、たとえば、単純なカタログ検索の要求またはトランザクション、ならびに、データベース内の指定された記録の読み取り、変更、および追加のために動作するトランザクションの組み合わせを含むことができる。これらの要求(すなわち照会)は、しばしば、構造化照会言語(SQL)などの高水準照会言語を使用して作成される。こうした要求を受信すると、DBMSは対応するデータベースに対して要求を実行し、実行の任意の結果を要求側エンティティに戻すことができる。
データベースのサイズおよび作業負荷が大きくなるにつれて、特定の照会または要求は、実行するためにかなりの時間がかかる可能性がある。したがってデータベース管理者は、データベース・システム上のメモリがどのように使用されるかを制御することを望む場合がある。
本発明の諸実施形態は、照会実行を管理するための方法、製品、およびシステムを提供する。この方法、製品、およびシステムは、要求元エンティティから照会を受信することを含む。方法、製品、およびシステムは、照会を受信すると、受信した照会を実行するための推定メモリ使用量値を計算することを含む。推定メモリ使用量値は、以前に処理された照会からのメモリ使用量履歴データに少なくとも部分的に基づいて計算される。加えて、方法、製品、およびシステムは、推定メモリ使用量値と所定のメモリしきい値量とを比較することにより、照会の実行がメモリ消費条件を満たすものであるかどうかを決定することを含む。方法、製品、およびシステムは、照会の実行がメモリ消費条件を満たさないものと決定すると、照会の実行で使用されるメモリの量を削減するように照会を最適化することを含む。
前述の諸態様が達成され、詳細に理解できるように、上記で簡単に概説した本発明について、添付の図面を参照しながらさらに具体的に説明する。
しかしながら、添付の図面は、本発明の典型的な諸実施形態を単に例示するものであるため、その範囲を制限するものとはみなされず、本発明について、他の等しく効果的な諸実施形態を認めることが可能であることに留意されたい。
本発明の諸実施形態に従った、メモリ使用量照会ガバナを実行するように構成されたシステムを示す、ブロック図である。 本発明の諸実施形態に従った、メモリ使用量照会ガバナを実行するように構成されたシステムを示す、ブロック図である。 本発明の一実施形態に従った、メモリ圧縮の効果を示すブロック図である。 本発明の一実施形態に従った、照会のメモリ使用量を管理するための方法を示す流れ図である。 本発明の一実施形態に従った、照会のメモリ使用量を管理するための方法を示す流れ図である。 本発明の一実施形態に従った、照会のメモリ使用量を管理するための方法を示す流れ図である。
多くのコンピュータの有する、内部でプログラムを実行するためのランダム・アクセス・メモリ(「RAM」)の量が限定されていることから、これらの限定されたリソースが効果的に使用されることを保証するためには、適切なメモリ管理が重要である。そのため、データベース・システムでは、データベース管理者が、実行時に特定の照会が消費できるメモリの量を制限することを望む可能性がある。すなわち、特定の照会の実行が大量のシステム・メモリを消費し、そのシステム上での他の照会およびタスクの実行を妨げる場合、データベース管理者は、その照会の実行を拒否することを望む可能性がある。こうした拒否は確定的(たとえば、要求側エンティティに対して、照会の処理が拒否されたことを説明するメッセージが戻される場合がある)であるとするか、または、実行が他の時点まで遅延される(たとえば、システム・リソースがアイドル状態になると、システムは照会を処理できる)ものとすることができる。これにより、単一のデータベース照会がシステムのリソースを独占できないことが保証される。
コンピュータのメモリ・リソースは固定されている可能性があるが、メモリ・リソースを効果的に増加させるための技法の1つは、内部に格納されているデータを圧縮することによるものである。たとえば、ある特定のファイルが100メガバイトのストレージ・サイズを有すると想定する。この特定ファイルがシステム・メモリに読み取られた場合、メモリ内の100メガバイト容量を消費することになるが、特定ファイルが50%の圧縮率で圧縮された場合、圧縮ファイルはメモリ内の50メガバイト容量のみを消費することになる。こうしたメモリ圧縮技法の一例が、インターナショナル・ビジネス・マシーンズ社(「IBM」)によるPOWER7(TM)プラットフォームで使用可能な、Active Memory(TM) Expansionコンポーネントである。こうした技法は、圧縮データを使用する要求を処理するのに必要な時間が増える可能性はあるが、データの圧縮および圧縮解除に追加の処理リソースが使用されるため、多くの場合、メモリ容量における利得が処理コストを上回る可能性がある。
本発明の諸実施形態は、要求側エンティティからの処理に関する照会を受信し、この照会の受信に応答して、照会を実行するための推定メモリ使用量値を計算することができる。推定されたメモリ使用量値は、通常、照会の実行に使用されることになるおおよそのシステム・メモリの量を反映する。さらに諸実施形態は、以前の照会の処理から収集されたメモリ使用量履歴データを使用して、この値を推定することができる。次に諸実施形態は、推定メモリ使用量値と所定のメモリしきい値量とを比較することによって、受信した照会を処理するかどうかを決定することができる。推定メモリ使用量値が所定のしきい値量を超えるものと決定すると、諸実施形態は、照会の実行で使用されるメモリ量を削減するように照会を最適化することができる。一実施形態では、最適化は、照会の処理で使用されるメモリ圧縮量を調整することを含む。他の実施形態では、照会に関する複数の実行プランが生成され、それぞれの実行プランについて推定メモリ使用量値が計算される。次に、選択された実行プランに関するそれぞれの推定メモリ使用量値に少なくとも部分的に基づいて、照会の実行で使用する実行プランが選択される。照会が最適化されると、照会が実行されて照会結果が生成され、その後これが要求側エンティティに戻されることが可能である。
以下で、本発明の諸実施形態について言及する。しかしながら、本発明が特定の説明される諸実施形態に限定されるものではないことを理解されたい。代わって、様々な実施形態に関するか否かに関わらず、本発明の実装および実施のための以下の特徴および要素の任意の組み合わせが企図される。さらに、本発明の諸実施形態は、他の可能なソリューション全体、あるいは従来技術全体、またはその両方にわたって、利点を達成できるが、所与の実施形態によって特定の利点が達成されるか否かが本発明を制限することはない。したがって、以下の諸々の態様、特徴、実施形態、および利点は単なる例示的なものであり、特許請求の範囲に明示されている場合を除き、添付の特許請求の範囲の要素または制限とはみなされない。同様に、「本発明」という言及は、本明細書で開示されたいかなる発明的主題の概括として解釈されるべきではなく、特許請求の範囲に明示されている場合を除き、添付の特許請求の範囲要素または制限とみなされるべきでもない。
当業者であれば理解されるように、本発明の諸態様は、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって、本発明の諸態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、本明細書ではすべてを全体として「回路」、「モジュール」、または「システム」と呼ぶことが可能なソフトウェアおよびハードウェアの態様を組み合わせた諸実施形態の形を取ることができる。さらに、本発明の諸態様は、具体化されたコンピュータ読み取り可能プログラム・コードを有する、1つまたは複数のコンピュータ読み取り可能媒体で具体化される、コンピュータ・プログラム製品の形を取ることができる。
1つまたは複数のコンピュータ読み取り可能媒体の任意の組み合わせが使用可能である。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能ストレージ媒体とすることができる。たとえば、コンピュータ読み取り可能ストレージ媒体は、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記の任意の好適な組み合わせとすることができるが、これらに限定されるものではない。コンピュータ読み取り可能ストレージ媒体のより特定の例(非網羅的リスト)は、1本または複数本の線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、または、上記の任意の好適な組み合わせを含む。本明細書との関連において、コンピュータ読み取り可能ストレージ媒体は、命令実行システム、装置、またはデバイスによって、またはそれらに関して使用するためのプログラムを含むかまたは格納することが可能な、任意の有形媒体とすることができる。
コンピュータ読み取り可能信号媒体は、たとえばベースバンド内または搬送波の一部として、内部にコンピュータ読み取り可能プログラム・コードが具体化された伝搬データ信号を含むことができる。こうした伝搬信号は、電磁、電気、またはそれらの任意の好適な組み合わせを含むがこれらに限定されない、任意の多様な形を取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能ストレージ媒体ではなく、命令実行のシステム、装置、またはデバイスによって、あるいはそれらに関して使用するためのプログラムを、通信、伝搬、または移送可能な、任意のコンピュータ読み取り可能媒体とすることができる。
コンピュータ読み取り可能媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバー・ケーブル、RFなど、または上記の任意の好適な組み合わせを含むが、これらに限定されない、任意の適切な媒体を使用して伝送することができる。
本発明の諸態様に関する諸動作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、あるいは、「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで作成可能である。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェア・パッケージとして、一部はユーザのコンピュータ上および一部はリモート・コンピュータ上で、または、完全にリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオでは、リモート・コンピュータを、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介して、ユーザのコンピュータに接続することが可能であるか、または、外部コンピュータに(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)接続することが可能である。
本発明の諸態様について、本発明の諸実施形態に従った方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方を参照しながら、以下で説明する。流れ図あるいはブロック図またはその両方の各ブロック、および流れ図あるいはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特定用途向けコンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供し、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、流れ図あるいはブロック図またはその両方の1つまたは複数のブロック内に指定された機能/動作を実施するための手段を作成するように、マシンを製造できることを理解されよう。
これらのコンピュータ・プログラム命令は、コンピュータ読み取り可能媒体内に格納された命令が、流れ図あるいはブロック図またはその両方の1つまたは複数のブロック内に指定された機能/動作を実施する命令を含む製品を製造するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対して、特定の様式で機能するよう命令することが可能な、コンピュータ読み取り可能媒体内に格納することもできる。
コンピュータ・プログラム命令は、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上で、一連の動作ステップを実行させるために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードし、コンピュータまたは他のプログラム可能装置上で実行する命令が、流れ図あるいはブロック図またはその両方の1つまたは複数のブロック内に指定された機能/動作を実施するためのプロセスを提供するような、コンピュータ実施プロセスを生成することもできる。
本発明の諸実施形態は、クラウド・コンピューティング・インフラストラクチャを通じて、エンド・ユーザに提供することができる。クラウド・コンピューティングは、一般に、ネットワークを介したサービスとしてスケーラブルなコンピューティング・リソースを提供することを言い表す。より正式に言えば、クラウド・コンピューティングは、コンピューティング・リソースとその基礎となる技術的なアーキテクチャ(たとえば、サーバ、ストレージ、ネットワーク)との間に抽象化を提供し、最小限の管理努力またはサービス・プロバイダ対話を迅速に提供および解除することが可能な構成可能コンピューティング・リソースの共有プールへの、便利なオンデマンド・ネットワーク・アクセスを可能にする、コンピューティング機能として定義することができる。したがって、クラウド・コンピューティングは、ユーザが、「クラウド」内の仮想コンピューティング・リソース(たとえば、ストレージ、データ、アプリケーション、さらには完全な仮想化コンピューティング・システム)へと、コンピューティング・リソースを提供するために使用される基礎となる物理システム(またはそれらのシステムの位置)に関係なく、アクセスできるようにする。
典型的には、クラウド・コンピューティング・リソースは、ユーザが実際に使用したコンピューティング・リソース(たとえば、ユーザによって消費されたストレージ容量、またはユーザによってインスタンス生成された仮想化システムの数)についてのみ課金される、ペイ・パー・ユーズ・ベース(pay-per-use basis)で提供される。ユーザは、いつでも、およびインターネットを介していずれの場所からでも、クラウド内に常駐する任意のリソースにアクセスすることができる。本発明との関連において、ユーザは、クラウド内で使用可能なアプリケーション(たとえば、データベース管理システムすなわち「DBMS」)または関係データにアクセスすることができる。たとえばDBMSは、クラウド内のコンピューティング・システム上で実行し、DBMSによって管理される1つまたは複数のデータベースに関連する照会を受信することができる。こうしたケースでは、メモリ使用量照会ガバナ182は、着信する照会を監視し、各照会について、照会を実行するための推定メモリ使用量を計算することができる。メモリ使用照会ガバナ182が、特定の照会に関する推定メモリ使用量がメモリしきい値量を超えるものと判別した場合、メモリ使用量照会ガバナ182は、照会の実行に使用されるメモリ圧縮量を調整することによって、照会を最適化することができる。このように実行することにより、クラウドに接続されたネットワーク(たとえばインターネット)に接続された任意のコンピューティング・システムから、ユーザに照会をサブミットさせることが可能であり、単一の照会によって実行中に許容を超える量のメモリが消費されることのないように保証するのに役立つ。
次に図1〜図2を参照すると、図1〜図2は、本発明の諸実施形態に従った、メモリ使用照会ガバナを実行するように構成されたシステムを示すブロック図である。より具体的に言えば、図1は、照会処理のためのメモリ使用量を推定および管理するための、ネットワーク化されたシステムを示す。図に示されるように、システム100は、ネットワーク150によって接続された、クライアント・システム120およびデータベース・サーバ170を含む。一般に、クライアント・システム120は、ネットワーク150を介して、データベース・サーバ170上で実行されているDBMSへ、要求(すなわち照会)をサブミットすることができる。「照会」という用語は、格納されたデータベースからデータを取り出すためのコマンド・セットを示す。照会は、構造化照会言語(SQL)などのコマンド言語の形を取ることが可能であり、プログラマおよびプログラムが、データベース内のデータの位置を選択、挿入、更新、および決定できるようにするものである。
概して、いずれの要求側エンティティ(すなわち様々な照会タイプ)も、データベース内のデータに対して照会を発行することができる。たとえば、ソフトウェア・アプリケーション(クライアント・システム120上で実行されているアプリケーションなどによる)、オペレーティング・システム、および最上位でのユーザは、データベースに照会をサブミットすることができる。これらの照会は、事前に定義する(すなわち、アプリケーションの一部としてハード・コーディングする)か、または入力(たとえばユーザ入力)に応答して生成することができる。要求を受信すると、データベース・サーバ170上のDBMSは、要求内に指定されたデータベース上で要求を実行した後、実行された要求の結果を戻すことができる。
本発明の一実施形態によれば、処理のための照会を受信すると、照会ガバナ・システム170上の照会ガバナは、受信した照会に関する推定メモリ消費値を計算することができる。推定メモリ消費値は、一般に、受信した照会の実行に使用されることになるシステム・メモリの量(たとえばメガバイト単位)を反映する。照会ガバナは、以前の照会の処理から収集したメモリ使用量履歴データを使用して、推定メモリ消費値を計算することができる。例として、実行時に、15メガバイト、20メガバイト、および25メガバイトのメモリを消費した、ある特定のデータベース・テーブルに関するSELECTステートメントを含む、3つの事前照会があるものと想定する。照会ガバナ・システム170が、その特定のデータベース・テーブルに関するSELECTステートメントを含む別の照会を受信すると、照会ガバナは、その照会が実行時に20メガバイトのメモリ(すなわち、3つの事前値の平均)を消費することになるものと推定することができる。
推定メモリ消費値が計算されると、照会ガバナは、その照会が実行された場合、許容を超える量のメモリを消費することになるかどうかを判別することができる。照会ガバナは、推定メモリ消費値と所定のメモリしきい値量とを比較することによって、これを判別することができる。推定メモリ消費値がメモリしきい値量を超える場合、照会ガバナは、その照会が許容を超える量のメモリを消費することになるものと判別することができる。こうしたシナリオでは、照会ガバナは、照会に関する諸動作の最適化を実行して、照会の実行に使用されるメモリ圧縮量を調整することができる。メモリ圧縮が使用できない状況では、こうした調整は、少なくとも照会の処理のためにメモリ圧縮を実行可能にすることを含むことができる。メモリ圧縮がすでに実行可能な状況では、調節は、照会の処理で使用される圧縮率を上げる(すなわち、データはさらに圧縮されることになる)ことを含むことができる。照会ガバナが、推定メモリ消費値がしきい値を超えないものと判別した場合、照会ガバナは、照会に関する諸動作の最適化を実行せずに、受信した照会を実行することができる。いかなるイベントでも、照会が実行されると、その照会の実行から生成されたすべての結果を、照会の受信元であった要求側エンティティへと戻すことができる。
他の実施形態では、推定メモリ消費値がメモリしきい値量を超えることが判別されると、照会ガバナは、照会の実行に使用するための複数の実行プランを決定することができる。各実行プランは、一般に、実行された場合、照会によって指定されたアクションを完了するという、1つまたは複数のデータベース動作を含むことができる。複数の実行プランを計算すると、さらに諸実施形態は、各実行プランについて推定メモリ消費値を計算することができる。その後、諸実施形態は、選択された実行プランについて計算された推定メモリ消費値に基づいて、照会の実行に使用するための実行プランのうちの1つを選択することができる。一般に諸実施形態は、推定メモリ消費値が比較的低い実行プランを選択することができるが、他の要素も同様に考慮することができる。たとえば諸実施形態は、推定メモリ消費値に加えて、各実行プランについての推定実行時間を考慮することができる。一例として、諸実施形態が、2つの実行プランがメモリしきい値量を超えない推定メモリ消費値を有するが、第1の実行プランは第2の実行プランの2倍の実行時間がかかるものと判別した場合、諸実施形態は、照会の実行に使用するために第2の実行プランを選択することができる。もちろんこうした例には制限がなく、また単なる例示を目的としており、より一般的に言えば、本明細書で説明された機能と一致するいかなる要素も、前述の例で与えられた推定実行時間に加えて、またはこれに代わって、考慮することができる。
有利なことに本発明の諸実施形態は、これを実行することによって、個々の照会がデータベース・システム上で消費可能なメモリの量を管理することができる。これを実行することにより、諸実施形態は、特定の照会がデータベース・システム上の他の照会およびタスクに損害を与えるほど、システム・メモリのかなりの部分を消費する状況を防ぐことができる。さらに本発明の諸実施形態は、照会の処理を単純に拒否しないように、照会実行を管理することができる。むしろ、本発明の諸実施形態は、照会の処理で使用されるメモリの量を削減するためにメモリの圧縮を使用することによって、その推定メモリ使用量がしきい値を超える照会を依然として処理することができる。他の実施形態では、照会メモリ使用量要件を満たす照会実行プランを選択することができる。諸実施形態は、これを実行することにより、依然としてメモリ使用量制限に従いながらも、受信した照会を処理する。
図2は、本発明の一実施形態に従った、メモリ使用照会ガバナを実行するように構成されたシステムを示すブロック図である。図に示されるように、システム110はクライアント・システム120およびデータベース・サーバ170を含む。クライアント・システム120は、コンピュータ・プロセッサ122、ストレージ・メディア124、I/Oデバイス126、メモリ128、およびネットワーク・インターフェース・カード134を含む。コンピュータ・プロセッサ122は、本明細書で説明される諸機能を実行することが可能な、任意のプロセッサとすることができる。クライアント・システム120は、ネットワーク・インターフェース・カード134を使用して、ネットワーク150に接続することができる。さらに、当業者であれば理解されるように、本明細書で説明される諸機能を実行することが可能な任意のコンピュータ・システムを使用することができる。
例示されているように、メモリ128はクライアント・アプリケーション130およびオペレーティング・システム132を含む。メモリ128は単一のエンティティとして示されているが、メモリ128は、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュ・メモリ、または他のタイプの揮発性あるいは不揮発性またはその両方のメモリなどの、物理アドレスに関連付けられたメモリのブロックを有する1つまたは複数のメモリ・デバイスを含むことができる。クライアント・アプリケーション130は、一般に、データベース照会を生成することができる。クライアント・アプリケーション130が照会を生成すると、その照会は、ネットワーク150を使用して実行のためにサーバ(たとえばDBMS180)にサブミットされることが可能である。オペレーティング・システム132は、本明細書で説明される諸機能を実行することが可能な任意のオペレーティング・システムとすることができる。
データベース・サーバ170は、コンピュータ・プロセッサ172、ストレージ・メディア174、I/Oデバイス176、メモリ178、およびネットワーク・インターフェース186を含む。コンピュータ・プロセッサ172は、本明細書で説明される諸機能を実行することが可能な任意のプロセッサとすることができる。図に示されるように、ストレージ・メディア174はデータ・ページ175を含む。データ・ページ175は、一般に、1行または複数行のデータを含む。本発明の一実施形態では、データ・ページ175に含まれるデータは、データベース184内の1つまたは複数のキー値に関連付けられる。I/Oデバイス176は、キーボード、マウス、ビジュアル・ディスプレイ、プリンタなどを含む、多彩な入力および出力のデバイスを表すことができる。データベース・サーバ170は、ネットワーク・インターフェース・カード186を使用して、ネットワーク150に接続することができる。さらに、当業者であれば理解されるように、本明細書で説明される諸機能を実行することが可能な任意のコンピュータ・システムを使用することができる。
図示された実施形態では、メモリ178はオペレーティング・システム185およびデータベース管理システム(以下、「DBMS」)180を含む。メモリ178は単一のエンティティとして示されているが、メモリ178は、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュ・メモリ、または他のタイプの揮発性あるいは不揮発性またはその両方のメモリなどの、物理アドレスに関連付けられたメモリのブロックを有する、1つまたは複数のメモリ・デバイスを含むことができる。DBMS180は、メモリ使用量照会ガバナ182およびデータベース184を含む。オペレーティング・システム185は、本明細書で説明される諸機能を実行することが可能な任意のオペレーティング・システムとすることができる。
前述のように、DBMS180が処理する照会を受信した場合、照会ガバナ182は照会の処理に関するメモリ消費値を推定する。こうしたメモリ消費値は、たとえばDBMS180が、照会に関連付けられた動作実行の一部として、ストレージ174内のデータ・ページ175からどれだけのデータをメモリ178へと取り出すことになるかを反映することができる。その後照会ガバナ182は、推定されたメモリ消費値を使用して、さらに最適化することなく照会を実行するかどうかを判別することができる。照会ガバナ182は、たとえばメモリ消費値と所定のメモリしきい値量とを比較することによって、これを判別することができる。
推定されたメモリ消費値がしきい値を超える場合、照会ガバナ182は、照会を最適化して照会の実行で使用されるメモリ圧縮量を調整することができる。こうした最適化は、メモリ圧縮が実行不可である場合、照会を処理するためのメモリ圧縮を実行可能にすることを含むか、または照会の処理で使用される圧縮率を上げることを含むことができる。照会が最適化されると、DBMS180は、データベース184に対して照会を実行し、照会結果のセットを生成することができる。その後DBMS180は、照会結果のセットを、照会の受信元であった要求側エンティティへと戻すことができる。
一実施形態では、照会ガバナ182は、照会の処理で消費されるメモリの量がしきい値量またはしきい値量近くとなるように、照会を最適化する。これを実行することによって、照会ガバナ182は、照会の処理におけるいかなる不要な遅延も避けながら、照会が許容可能な量のメモリ使用を実行することを保証することができる。すなわち、メモリ圧縮を追加すると、結果としてアクティビティが追加される可能性があるため、高いメモリ圧縮量を使用して実行される照会は、低いメモリ圧縮量を使用するかまたは圧縮を使用せずに実行される照会よりも、長時間かかる可能性がある。したがって、照会の実行がしきい値量またはしきい値量の近似を使用するように照会を最適化することにより、照会ガバナ182は、照会処理のいかなる遅延も最小限にしながら、メモリ使用量ポリシーを強化することができる。
一実施形態では、照会ガバナ182は、照会の処理で使用可能なメモリしきい値量を決定する場合に、他の要素を考慮することができる。こうした要素は、制限なしに、照会の発信元、照会に関連付けられた優先度値、および照会のクラスを含むことができる。たとえば、優先度値の高いミッション・クリティカルな(mission-critical)リアルタイム・アプリケーションと、優先度値の低いデータベース統計値収集のためのロギング・アプリケーションという、照会をDBMS180にサブミットする2つのアプリケーションが存在すると想定する。こうした例では、照会ガバナ182は、優先度の高いミッション・クリティカル・アプリケーションから受信した照会を処理する際に低いメモリ圧縮を使用し、それに応じてこれらの照会の処理を促進するために、ミッション・クリティカル・アプリケーションから受信した照会が、ロギング・アプリケーションから受信した照会よりも多くのメモリを消費できるようにすることが可能である。すなわち、メモリ圧縮の使用により、照会ガバナ・システム170上で追加の処理リソースを消費することができるため、より多くのメモリ圧縮量を使用して処理される照会は、より少ないメモリ圧縮量を使用するかまたは使用しないで処理される照会よりも、処理に長い時間がかかる可能性がある。したがって、より多くのシステム・メモリを使用するために、高優先度アプリケーションから受信した照会の処理を実行可能にすることによって、照会ガバナ182はこれらの照会をより迅速に処理することができる。同時に照会ガバナ182は、照会の実行時にメモリ圧縮技法を使用することを通じて、たとえ低優先度アプリケーションから受信した照会が許容を超える量のメモリを消費することになる場合であっても、こうした照会の処理を実行可能にする。
図3は、本発明の一実施形態に従った、メモリ圧縮の効果を示すブロック図である。示された例では、メモリ圧縮が実行可能化されていないメモリ178は、メモリ圧縮が実行可能化されたメモリ178と同じ物理データ・ストレージ容量を有することに留意されたい。図に示されるように、メモリ178は、未圧縮メモリ部分210と未使用メモリ部分240とを含む。メモリの未圧縮部分210は、圧縮されていない1つまたは複数のアプリケーションによって使用されるデータを格納することができる。ここで未使用プール240は、現在はいずれのデータも格納されていないメモリ178の未使用データ容量を表す。
これに対してメモリ178は、メモリの未圧縮部分210、圧縮部分220、拡張部分230、および未使用部分240を含む。この例では、メモリ178はメモリ178と同じデータを効果的に含むが、メモリ圧縮を使用する。したがって、示された例では、未圧縮メモリ210は、未圧縮メモリ部分210に関係する。同様に、圧縮メモリ220は、残りの未圧縮メモリ部分210に関係する。すなわち、メモリ圧縮の使用により、組み合わされた場合、未圧縮メモリ210よりもサイズの小さい、未圧縮メモリ210および圧縮メモリ220に、未圧縮メモリ210からのデータ格納することが可能である。
有利なことに本発明の諸実施形態は、メモリ圧縮を使用することによって拡張メモリ・プール230を効果的に作成し、これを使用して圧縮済みまたは未圧縮のいずれの追加のデータも格納することができる。たとえばDBMSは、拡張メモリ230を使用して、フェッチ中に追加のデータをストレージ・メディア174に格納することができる。加えて、こうしたメモリ圧縮は、使用可能なメモリを拡張するだけではなく、拡張メモリ230が他の目的に使用可能であるため、結果としてデータベース・システム上のページングを減らすことも可能である。有利なことに、ページングはしばしば、データの圧縮および圧縮解除よりも大きな遅延につながるため、メモリ圧縮がデータベース・システムの性能を向上させることもできる。さらに、図3はメモリの様々な部分が連続しているように示されているが、実際にはプールに割り振られるメモリ領域は断片化可能である。しかしながら当業者であれば、この例では、不可欠な各部分によって占有されたメモリの量178であることを理解されよう。
図4は、本発明の一実施形態に従った、照会のメモリ使用量を管理するための方法を示す流れ図である。図に示されるように、方法300はステップ310で開始され、ここで照会ガバナ182は、受信した照会に関する推定メモリ使用量値を計算する。前述のように、推定メモリ使用量値は、一般に、照会の処理で使用されることになるシステム・メモリ(たとえばメモリ178)の量を概算する。さらに照会ガバナ182は、以前に処理された照会から収集されたメモリ使用量履歴データに基づいて、この値を計算することができる。
推定メモリ使用量値が計算されると、照会ガバナ182は、メモリ使用量値がメモリしきい値量を超えるかどうかを判別する(ステップ320)。一般にこのしきい値量は、特定の照会の実行がどの程度のメモリ量を消費可能であるかを定義する。こうしたしきい値量は、たとえばデータベース管理者によって設定可能であり、こうした量の値はデータベース環境を反映するものとする。しきい値量が固定値(たとえば10メガバイトのメモリ)である実施形態では、この値は一般に、データベース・システム内の合計メモリ(たとえば、照会ガバナ・システム170におけるメモリ178のサイズ)に比例するものとする。他の実施形態では、しきい値量はシステム・メモリのパーセント値(たとえばメモリ178のサイズの10%)とすることができる。しきい値量は、データベース・システムの作業負荷に基づいて定義することもできる。たとえば、固定された期間内にデータベースに対して比較的多数の照会が発行されるシステムでは、いずれかの単一照会によるデータベース・システムのメモリ・リソースの過消費を避けるために、データベース管理者は比較的低いメモリしきい値を設定することができる。第2の例として、同じ固定された期間内にデータベースに対して比較的少数の照会が発行されるシステムでは、データベース管理者は比較的高いメモリしきい値を設定することができる。すなわち、この例では、システム・メモリを消費する照会実行動作がより少ないため、各照会実行動作はシステム・メモリのより大きな部分を使用することができる。
加えて、しきい値量は、照会をサブミットする要求側エンティティの識別などの、1つまたは複数の他の要素に依存して変更することができる。たとえばある特定の環境は、高優先度アプリケーションおよび低優先度アプリケーションという、DBMSに照会をサブミットする2つのアプリケーションを含むことができる。こうした環境では、高優先度アプリケーションによってサブミットされた照会に関するメモリしきい値量は、低優先度アプリケーションによってサブミットされた照会に関するメモリしきい値量よりも大きい可能性がある。これを実行することによって、諸実施形態は、高優先度アプリケーションから受信した照会が比較的迅速に処理されること、およびメモリ圧縮の使用により最小限の遅延で処理されることを保証することができる。すなわち、システム・メモリ内の値の圧縮および圧縮解除が追加の処理リソースを消費するため、こうした追加の処理が、結果としてメモリ圧縮を使用して処理される照会に関して処理時間を長くする可能性がある。したがって、高優先度アプリケーションから受信した照会に対してより高いメモリしきい値量を割り振ることによって、諸実施形態は、これらの照会がより迅速に処理されることを保証するために、これらの照会の処理に使用されるメモリ圧縮量を削減することができる。
DBMSによって受信された照会は、優先度値に関連付けることもできる。優先度値は、一般に、比較的短い時間内に照会を処理する優先度を示す。一実施形態では、照会自体が、照会に関する優先度値を(たとえば、照会内の特定のSQLタグを使用して)明示的に指定することができる。他の実施形態では、照会ガバナ182は、照会の処理でどのデータベース構造がアクセスされるか、および照会のタイプなどの、1つまたは複数の要素に基づいて、特定の照会に関する優先度値を導出することができる。例として、照会がデータベース内の特定のテーブルを参照する場合、照会ガバナ182は、照会が比較的高い優先度の照会であるものと決定することができる。
その後、こうした優先度値を使用して、照会の処理で使用されるメモリ圧縮量を調整するかどうかを決定することができる。たとえば、前述の高優先度照会に関して計算された推定メモリ使用量値は、メモリしきい値量を超える場合があるが、それにもかかわらず照会ガバナ182は、照会が比較的短い時間で実行することを保証するために、照会がメモリ圧縮なしに実行できるようにすることが可能である。第2の例として、照会ガバナ182は、照会の実行で使用されるメモリ圧縮量を調整することができるが、照会の高優先度値により、照会の実行時に依然として少ないメモリ圧縮を使用することができる。これを実行することによって、諸実施形態は、照会の処理におけるいかなる遅延も軽減させながら、依然としてデータベース・システム上のメモリ管理ポリシーを強化することができる。
本発明の一実施形態では、さらに照会ガバナ182は、照会に関連付けられた優先度値とメモリしきい値量との間の相対的な優先度を考慮することができる。すなわち、こうした実施形態では、優先度値およびメモリしきい値量に、それぞれの相対的重要度を示す可変重みを割り当てることができる。優先度値がメモリしきい値量よりも重要であるとみなされる一例として、照会ガバナ182は、たとえその照会に関する推定メモリ使用量値がしきい値量を大幅に超える場合であっても、メモリ圧縮を使用せずに高優先度照会を実行すべきであるものと決定することができる。優先度値と比較してより高い優先度がメモリしきい値量に与えられる第2の例として、高優先度照会に関する推定メモリ使用量値がメモリしきい値量をわずかな量だけ超える場合、それにもかかわらず照会ガバナ182は、しきい値量の方がかなり重要に取り扱われるため、メモリ圧縮を使用して照会を実行すべきであるものと決定することができる。もちろん前述の例は単なる例示であり、当業者であれば、これに代わって任意数の他の要素および要素の組み合わせを使用してしきい値量が決定できることを理解されよう。
推定メモリ使用量値がしきい値量を超えるものと判別されると、照会ガバナ182は、受信した照会の処理に関してメモリ圧縮が実行可能であるかどうかを判別する(ステップ325)。メモリ圧縮が実行不可であるものと判別されると、照会ガバナ182は、照会の処理に関してメモリ圧縮を実行可能にする(ステップ330)。メモリ圧縮が実行可能になると、方法300はステップ335〜345のループに入り、ここで照会ガバナ182は、一般に、メモリしきい値量内で照会が実行できるようになるまで、照会の実行に使用するメモリ圧縮率を調整する。次に照会ガバナは、照会の処理のためにメモリ圧縮を調整する(ステップ335)。初めに照会ガバナ182は、第1に圧縮率をデフォルトの初期値に設定することができる。しかしながらより一般的には、本明細書で説明される機能と一致する圧縮率を調整するための任意のアルゴリズムを使用することができる。
次に照会ガバナ182は、調整された圧縮率を使用して、照会に関する推定メモリ使用量値を計算する(ステップ340)。推定メモリ使用量値を計算すると、照会ガバナ182は、推定メモリ使用量値がメモリしきい値量を超えるかどうかを判別する(ステップ345)。照会ガバナ182が、推定メモリ使用量値が依然としてしきい値量を超えると判別した場合、ループはステップ335から再度開始され、照会ガバナ182は、照会の処理に使用されるメモリ圧縮率を上げる。この代わりに、照会ガバナ182が、推定メモリ使用量値がしきい値を超えないと判別した場合、DBMS180は、調整されたメモリ圧縮率を使用して照会を実行する(ステップ350)。同様に、ステップ320で、照会ガバナ182が、推定メモリ使用量値がしきい値量を超えないと判別した場合、DBMS180は、照会の処理でメモリ圧縮量を調整せずに照会を実行する(ステップ350)。DBMS180が照会を実行すると、方法300は終了する。
有利なことに方法300は、DBMS180によって実行される照会が、任意のメモリ使用制限を忠実に守り、データベース・システムのリソースを過消費しないことを保証するために役立つ。言い換えれば方法300は、個々の照会が他の処理に損害を与えるほど大量のシステム・メモリを消費するのを防ぐ。さらに諸実施形態は、照会をサブミットする要求側エンティティ(たとえば、高優先度ソフトウェア・アプリケーション)の識別などの要素を考慮することによって、ある種の照会の処理が他の照会の処理よりも多くのシステム・リソースを消費できるようにすることができる。これを実行することによって、諸実施形態は、特定の環境に適合し、環境内のアプリケーションまたはユーザ間の任意の異なる処置に対処するように、カスタマイズすることができる。
図5は、本発明の一実施形態に従った、照会のメモリ使用量を管理するための方法を示す流れ図である。図に示されるように、方法400はステップ420で開始され、ここでDBMSは、データベースに対する特定の照会の実行を開始する。照会実行が開始されると、照会ガバナ182は、照会の処理で使用されるメモリ量を決定するために、照会の実行を監視する(ステップ425)。次に照会ガバナ182は、照会の実行に使用される実際のメモリがメモリしきい値量を超えるかどうかを判別する(ステップ430)。照会ガバナ182が、実際のメモリ使用量がしきい値量を超えるものと判別した場合、照会ガバナ182は、照会の処理に関して現在メモリ圧縮が実行可能であるかどうかを判別する(ステップ435)。メモリ圧縮が未だ実行可能でない場合、照会ガバナ182はメモリ圧縮を実行可能にする(ステップ440)。照会の処理に関してメモリ圧縮が実行可能である場合、照会ガバナ182は、照会処理で使用される圧縮率を調整する(ステップ445)。一般に、照会ガバナ182は、圧縮率を計算された率に設定し、照会の実行で使用される実際のメモリ使用量をメモリしきい値量を下回る値まで削減するはずである。
圧縮率が調整されると、照会ガバナ182は、特定の照会が実行を完了したかどうかを判別する(ステップ450)。同様に、ステップ430で照会ガバナ182が、実際のメモリ使用量がしきい値を超えていないものと判別した場合、照会ガバナ182は、照会実行が完了したかどうかを判別する(ステップ450)。照会がまだ実行を完了していない場合、方法はステップ425へ戻り、照会ガバナ182は照会の実行の監視を続行する。この代わりに、照会が実行を完了した場合、DBMS180は照会の実行によって生じた任意の照会結果を、照会の発信元である要求側エンティティへと戻す(ステップ455)。照会結果が戻されると、方法400は終了する。
図6は、本発明の一実施形態に従った、照会のメモリ使用量を管理するための方法を示す流れ図である。方法500はステップ520で開始され、ここでDBMS180は、処理のための照会を受信する。照会を受信すると、照会ガバナ182は、照会処理で使用されることになる一時ストレージ(たとえばメモリ178)の量を推定し(ステップ525)、一時ストレージの推定量がメモリしきい値量を超えるかどうかを判別する(ステップ530)。照会ガバナ182が、一時ストレージの推定量がしきい値量を超えると判別した場合、照会ガバナ182は、しきい値量を満たすように照会が最適化可能であるかどうかを判別する(ステップ535)。一例として、照会の処理に関してメモリ圧縮がまだ実行可能でない場合、照会ガバナ182は、メモリ圧縮を実行可能にすることによってしきい値を満たすように照会を最適化できるものと判別することができる。
照会ガバナ182が、しきい値を満たすように照会を最適化できるものと判別した場合、照会ガバナ182は、照会の実行に使用されるメモリの量を減らすように照会を最適化する(ステップ540)。前述のように、照会最適化は、照会の処理で使用されるメモリ圧縮量を調整することを含むことができる。こうした調整は、メモリ圧縮が初期に実行不可であった場合、メモリ圧縮を実行可能にすることをさらに含み、照会の処理に関連付けられた圧縮率の調整も含むことができる。他の実施形態では、照会ガバナ182は、それぞれが照会を実行するように実行可能なデータベースの諸動作の異なるセットを指定する、照会の複数の実行プランを生成することによって、実行のために照会を最適化することが可能である。一般に、少なくとも1つの実行プランは、照会の処理において何らかのメモリ圧縮量を使用することになる。照会ガバナ182は、それぞれの実行プランに従って、照会を実行するための推定メモリ使用量値を計算することができる。推定メモリ使用量値が計算されると、照会ガバナ182は、計算された推定メモリ使用量値に基づいて、照会の実行に使用するための実行プランのうちの1つを選択することができる。
照会が最適化されると、DBMS180は最適化された照会を実行する(ステップ545)。複数の実行プランのうちの1つを選択することによって照会が最適化されるイベントでは、DBMS180は、選択された実行プランに従って照会を実行する。次に照会ガバナ182は、照会の実行に使用される実際のメモリ量がしきい値量を侵害しないことを保証するために、照会の実行を監視することができる(ステップ555)。本発明の一実施形態では、こうした監視は図5に示された前述の方法400に従って実施される。
同様に、メモリ圧縮が実行可能であり、それ以上圧縮率を上げられない場合、照会ガバナ182は、メモリしきい値を満たすように照会が最適化できないものと判別することができる。しきい値を満たすように照会が最適化できない場合、照会ガバナ182は処理のための照会を拒否する(ステップ550)。こうした拒否は、照会の発信元である要求側エンティティに通知を送信することを含むことができる。この通知は、処理のための照会が拒否された旨のインジケーションを含むことが可能であり、照会が拒否された理由の説明をさらに含むことができる。
図面内の流れ図およびブロック図は、本発明の様々な諸実施形態に従ったシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この点において、流れ図またはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、またはコードの一部を表すことができる。いくつかの代替実施では、ブロック内に示された諸機能が図内に示された順序以外で実行可能であることも留意されたい。たとえば、連続して示された2つのブロックを、実際にはほぼ同時に実行することが可能であるか、または関連する機能に応じて、時にはこのブロックを逆の順序で実行することができる。ブロック図あるいは流れ図またはその両方の各ブロック、ならびに、ブロック図あるいは流れ図またはその両方のブロックの組み合わせが、指定された機能または動作を実行する特定用途向けのハードウェア・ベース・システム、あるいは特定用途向けハードウェアとコンピュータ命令との組み合わせによって、実施可能であることも留意されよう。
前述の内容は本発明の諸実施形態を対象にしたものであるが、本発明の他の諸実施形態はその基本範囲を逸脱することなく考案可能であり、その範囲は以下の特許請求の範囲によって決定される。
110 システム
120 クライアント・システム
122、172 コンピュータ・プロセッサ
124、174 ストレージ
126、176 入力/出力デバイス
128、178 メモリ
130 クライアント・アプリケーション
132、185 オペレーティング・システム
134、186 ネットワーク・インターフェース・カード
150 ネットワーク
170 照会ガバナ・システム
175 データ・ページ
180 データベース管理システム
182 メモリ使用量照会ガバナ
184 データベース

Claims (25)

  1. 照会実行を管理するためのコンピュータ実装方法であって、
    要求元エンティティから照会を受信すること、
    以前に処理された照会からのメモリ使用量履歴データに少なくとも部分的に基づいて、前記受信した照会を実行するために推定メモリ使用量値を計算すること、
    前記推定メモリ使用量値と所定のメモリしきい値量とを比較することにより、前記照会の実行がメモリ消費条件を満たすものであるかどうかを判別すること、および
    前記照会の実行が前記メモリ消費条件を満たさないものと判別すると、さらに1つまたは複数のコンピュータ・プロセッサの動作によって、前記照会の実行で使用されるメモリの量を削減するように前記照会を最適化すること、
    を含む、コンピュータ実装方法。
  2. 前記照会を最適化すると、
    照会結果の第1のセットを生成するために、前記最適化された照会を実行すること、および
    前記照会結果の第1のセットを前記要求側エンティティに戻すこと、ならびに
    前記照会の実行が前記メモリ消費条件を満たすものと判別すると、
    照会結果の第2のセットを生成するために、前記照会を実行すること、および
    前記照会結果の第2のセットを前記要求側エンティティに戻すこと、
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  3. 前記照会の最適化が、
    前記照会の実行に使用されるメモリ圧縮量を調整すること
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  4. 前記照会の最適化が、
    前記照会の実行に関してメモリ圧縮が実行可能であるかどうかを判別すること、および
    メモリ圧縮が実行不可であると判別すると、少なくとも前記受信した照会の前記実行に関してメモリ圧縮を実行可能にすること、
    をさらに含む、請求項3に記載のコンピュータ実装方法。
  5. 前記照会の最適化が、
    前記受信した照会の実行に関連付けられた圧縮率を、第1の圧縮率から第2の圧縮率へと上げることであって、前記第2の圧縮率は、前記照会の実行に関連付けられたデータを前記第1の圧縮率に対してさらに圧縮すべきであることを指定する、上げること、
    をさらに含む、請求項3に記載のコンピュータ実装方法。
  6. 前記照会の実行においてどの程度の遅延が受け入れ可能であるかを記述する、前記受信した照会に関連付けられた優先度値を決定すること、
    をさらに含み、
    前記照会の実行が前記メモリ消費を満たすかどうかを判別することが、前記受信した照会に関連付けられた前記決定された優先度値にさらに基づくものである、
    請求項1に記載のコンピュータ実装方法。
  7. 前記照会の実行が前記メモリ消費条件を満たすかどうかを判別することが、前記所定のメモリしきい値量と前記受信した照会に関連付けられた前記決定された優先度値との間の、相対的優先度にさらに基づくものである、請求項6に記載のコンピュータ実装方法。
  8. 前記照会の最適化が、
    前記受信した照会の実行に関する複数の照会実行プランを決定すること、
    前記複数の照会実行プランにおける各照会実行プランに関して、推定メモリ使用量値を計算すること、および
    前記照会の実行で使用するための特定の照会実行プランを、前記特定の照会実行プランに関する前記推定メモリ使用量値に基づいて選択すること、
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  9. 実際のメモリ使用量値を決定するために前記最適化された照会の前記実行を監視すること、および
    前記実際のメモリ使用量値が前記所定のメモリしきい値量を超えるものと判別すると、前記照会の実行で使用される前記メモリの量を削減するように前記照会の実行で使用されるメモリ圧縮量を調整すること、
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  10. 照会実行を管理するためのコンピュータ・プログラムであって、
    具体化されたコンピュータ読み取り可能プログラム・コードを有するコンピュータ読み取り可能ストレージ媒体を備え、前記コンピュータ読み取り可能プログラム・コードが、
    要求元エンティティから照会を受信するためのコンピュータ読み取り可能プログラム・コードと、
    以前に処理された照会からのメモリ使用量履歴データに少なくとも部分的に基づいて、前記受信した照会を実行するために推定メモリ使用量値を計算するためのコンピュータ読み取り可能プログラム・コードと、
    前記推定メモリ使用量値と所定のメモリしきい値量とを比較することにより、前記照会の実行がメモリ消費条件を満たすものであるかどうかを判別するためのコンピュータ読み取り可能プログラム・コードと、
    前記照会の実行が前記メモリ消費条件を満たさないものと判別すると、前記照会の実行で使用されるメモリの量を削減するように前記照会を最適化するためのコンピュータ読み取り可能プログラム・コードと、
    を含む、コンピュータ・プログラム。
  11. 前記照会を最適化すると、
    照会結果の第1のセットを生成するために、前記最適化された照会を実行するため、および
    前記照会結果の第1のセットを前記要求側エンティティに戻すため、ならびに
    前記照会の実行が前記メモリ消費条件を満たすものと判別すると、
    照会結果の第2のセットを生成するために、前記照会を実行するため、および
    前記照会結果の第2のセットを前記要求側エンティティに戻すための、
    コンピュータ読み取り可能プログラム・コードをさらに含む、請求項10に記載のコンピュータ・プログラム。
  12. 前記照会を最適化するための前記コンピュータ読み取り可能プログラム・コードが、
    前記照会の実行に使用されるメモリ圧縮量を調整するためのコンピュータ読み取り可能プログラム・コードをさらに含む、請求項10に記載のコンピュータ・プログラム。
  13. 前記照会を最適化するための前記コンピュータ読み取り可能プログラム・コードが、
    前記照会の実行に関してメモリ圧縮が実行可能であるかどうかを判別するためのコンピュータ読み取り可能プログラム・コードと、
    メモリ圧縮が実行不可であると判別すると、少なくとも前記受信した照会の前記実行に関してメモリ圧縮を実行可能にするためのコンピュータ読み取り可能プログラム・コードと、
    をさらに含む、請求項12に記載のコンピュータ・プログラム。
  14. 前記照会を最適化するための前記コンピュータ読み取り可能プログラム・コードが、
    前記受信した照会の実行に関連付けられた圧縮率を、第1の圧縮率から第2の圧縮率へと上げるためのコンピュータ読み取り可能プログラム・コードであって、前記第2の圧縮率は、前記照会の実行に関連付けられたデータを前記第1の圧縮率に対してさらに圧縮すべきであることを指定する、コンピュータ読み取り可能プログラム・コードを、
    さらに含む、請求項12に記載のコンピュータ・プログラム。
  15. 前記照会の実行においてどの程度の遅延が受け入れ可能であるかを記述する、前記受信した照会に関連付けられた優先度値を決定するためのコンピュータ読み取り可能プログラム・コードをさらに含み、
    前記照会の実行が前記メモリ消費を満たすかどうかを判別するための前記コンピュータ読み取り可能プログラム・コードが、
    前記受信した照会に関連付けられた前記決定された優先度値と、
    前記所定のメモリしきい値量と前記受信した照会に関連付けられた前記決定された優先度値との間の、相対的優先度とに、
    さらに基づくものである、請求項10に記載のコンピュータ・プログラム。
  16. 前記照会を最適化するための前記コンピュータ読み取り可能プログラム・コードが、
    前記受信した照会の実行に関する複数の照会実行プランを決定するためのコンピュータ読み取り可能プログラム・コードと、
    前記複数の照会実行プランにおける各照会実行プランに関して、推定メモリ使用量値を計算するためのコンピュータ読み取り可能プログラム・コードと
    前記照会の実行で使用するための特定の照会実行プランを、前記特定の照会実行プランに関する前記推定メモリ使用量値に基づいて選択するためのコンピュータ読み取り可能プログラム・コードと、
    をさらに含む、請求項10に記載のコンピュータ・プログラム。
  17. 実際のメモリ使用量値を決定するために前記最適化された照会の前記実行を監視するためのコンピュータ読み取り可能プログラム・コードと
    前記実際のメモリ使用量値が前記所定のメモリしきい値量を超えるものと判別すると、前記照会の実行で使用される前記メモリの量を削減するように前記照会の実行で使用されるメモリ圧縮量を調整するためのコンピュータ読み取り可能プログラム・コードと、
    をさらに含む、請求項10に記載のコンピュータ・プログラム。
  18. コンピュータ・プロセッサと、
    前記コンピュータ・プロセッサ上で実行された場合、
    要求元エンティティから照会を受信すること、
    以前に処理された照会からのメモリ使用量履歴データに少なくとも部分的に基づいて、前記受信した照会を実行するために推定メモリ使用量値を計算すること、
    前記推定メモリ使用量値と所定のメモリしきい値量とを比較することにより、前記照会の実行がメモリ消費条件を満たすものであるかどうかを判別すること、および
    前記照会の実行が前記メモリ消費条件を満たさないものと判別すると、さらに1つまたは複数のコンピュータ・プロセッサの動作によって、前記照会の実行で使用されるメモリの量を削減するように前記照会を最適化すること、
    を含む、照会実行を管理するための動作を実行する、プログラムを含むメモリと、
    を備える、システム。
  19. 前記動作が、
    前記照会を最適化すると、
    照会結果の第1のセットを生成するために、前記最適化された照会を実行すること、および
    前記照会結果の第1のセットを前記要求側エンティティに戻すこと、ならびに
    前記照会の実行が前記メモリ消費条件を満たすものと判別すると、
    照会結果の第2のセットを生成するために、前記照会を実行すること、および
    前記照会結果の第2のセットを前記要求側エンティティに戻すこと、
    をさらに含む、請求項18に記載のシステム。
  20. 前記照会の最適化が、
    前記照会の実行に使用されるメモリ圧縮量を調整すること
    をさらに含む、請求項19に記載のシステム。
  21. 前記照会の最適化が、
    前記照会の実行に関してメモリ圧縮が実行可能であるかどうかを判別すること、および
    メモリ圧縮が実行不可であると判別すると、少なくとも前記受信した照会の前記実行に関してメモリ圧縮を実行可能にすること、
    をさらに含む、請求項20に記載のシステム。
  22. 前記照会の最適化が、
    前記受信した照会の実行に関連付けられた圧縮率を、第1の圧縮率から第2の圧縮率へと上げることであって、前記第2の圧縮率は、前記照会の実行に関連付けられたデータを前記第1の圧縮率に対してさらに圧縮すべきであることを指定する、上げること、
    をさらに含む、請求項20に記載のシステム。
  23. 前記動作が、
    前記照会の実行においてどの程度の遅延が受け入れ可能であるかを記述する、前記受信した照会に関連付けられた優先度値を決定すること、
    をさらに含み、
    前記照会の実行が前記メモリ消費を満たすかどうかを判別することが、
    前記受信した照会に関連付けられた前記決定された優先度値と、
    前記所定のメモリしきい値量と前記受信した照会に関連付けられた前記決定された優先度値との間の、相対的優先度とに、
    さらに基づくものである、請求項18に記載のシステム。
  24. 前記照会の最適化が、
    前記受信した照会の実行に関する複数の照会実行プランを決定すること、
    前記複数の照会実行プランにおける各照会実行プランに関して、推定メモリ使用量値を計算すること、および
    前記照会の実行で使用するための特定の照会実行プランを、前記特定の照会実行プランに関する前記推定メモリ使用量値に基づいて選択すること、
    をさらに含む、請求項18に記載のシステム。
  25. 前記動作が、
    実際のメモリ使用量値を決定するために前記最適化された照会の前記実行を監視すること、および
    前記実際のメモリ使用量値が前記所定のメモリしきい値量を超えるものと判別すると、前記照会の実行で使用される前記メモリの量を削減するように前記照会の実行で使用されるメモリ圧縮量を調整すること、
    をさらに含む、請求項18に記載のシステム。
JP2011260077A 2010-11-30 2011-11-29 メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) Expired - Fee Related JP5744707B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/956745 2010-11-30
US12/956,745 US8818989B2 (en) 2010-11-30 2010-11-30 Memory usage query governor

Publications (2)

Publication Number Publication Date
JP2012118987A true JP2012118987A (ja) 2012-06-21
JP5744707B2 JP5744707B2 (ja) 2015-07-08

Family

ID=46091900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011260077A Expired - Fee Related JP5744707B2 (ja) 2010-11-30 2011-11-29 メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ)

Country Status (3)

Country Link
US (1) US8818989B2 (ja)
JP (1) JP5744707B2 (ja)
CN (1) CN102479254B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877965B2 (en) 2016-12-22 2020-12-29 Nec Corporation Data search method, data search device, and data search program

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311105B2 (en) * 2010-12-28 2019-06-04 Microsoft Technology Licensing, Llc Filtering queried data on data stores
US9563663B2 (en) * 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9639573B2 (en) * 2013-07-22 2017-05-02 Mastercard International Incorporated Systems and methods for query queue optimization
US9990352B2 (en) * 2014-08-06 2018-06-05 Quest Software Inc. Chunk compression in a deduplication aware client environment
US10459886B2 (en) 2014-08-06 2019-10-29 Quest Software Inc. Client-side deduplication with local chunk caching
US9984093B2 (en) 2014-08-06 2018-05-29 Quest Software Inc. Technique selection in a deduplication aware client environment
US9917894B2 (en) 2014-08-06 2018-03-13 Quest Software Inc. Accelerating transfer protocols
US10289721B2 (en) * 2016-07-14 2019-05-14 International Business Machines Corporation Query management based on amount of data change
US10795887B1 (en) * 2016-11-06 2020-10-06 Tableau Software, Inc. Dynamic rebuilding of query execution trees and reselection of query execution operators
US10521430B1 (en) * 2016-11-06 2019-12-31 Tableau Software, Inc. Dynamic selection of query execution operators
US10740332B2 (en) * 2017-01-20 2020-08-11 Futurewei Technologies, Inc. Memory-aware plan negotiation in query concurrency control
US10496647B2 (en) * 2017-04-18 2019-12-03 Microsoft Technology Licensing, Llc Delay detection in query processing
US11055284B1 (en) 2017-06-30 2021-07-06 Tableau Software, Inc. Optimizing domain queries for relational databases
US10901990B1 (en) 2017-06-30 2021-01-26 Tableau Software, Inc. Elimination of common subexpressions in complex database queries
US10795888B2 (en) 2018-12-21 2020-10-06 Tableau Software, Inc. Elimination of query fragment duplication in complex database queries
US11650992B1 (en) * 2021-12-16 2023-05-16 WizRocket Inc. Method and system for scaling query processes elastically
CN116700602B (zh) * 2022-12-08 2024-04-12 荣耀终端有限公司 一种查询扩展内存寿命的方法及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278837A (ja) * 2001-02-13 2002-09-27 Internatl Business Mach Corp <Ibm> オペレーティング・システムにとってトランスペアレントなメモリ圧縮を管理するシステムおよび方法
JP2004304307A (ja) * 2003-03-28 2004-10-28 Sanyo Electric Co Ltd デジタル放送受信機およびデータ処理方法
JP2005165610A (ja) * 2003-12-02 2005-06-23 Nomura Research Institute Ltd トランザクション処理システムおよび方法
JP2005202646A (ja) * 2004-01-15 2005-07-28 Nec Corp 携帯通信端末
JP2007026064A (ja) * 2005-07-15 2007-02-01 Hitachi Ltd 計算機システム、管理計算機及びデータベース管理システムの制御方法
JP2007317176A (ja) * 2006-04-28 2007-12-06 Sharp Corp 端末装置
US20080065588A1 (en) * 2006-08-24 2008-03-13 Craig Stephen Aldrich Selectively Logging Query Data Based On Cost
JP2008152339A (ja) * 2006-12-14 2008-07-03 Nec Corp 情報処理装置および情報処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6879266B1 (en) * 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US7499960B2 (en) * 2001-10-01 2009-03-03 Oracle International Corporation Adaptive memory allocation
US20050192937A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Dynamic query optimization
US8127299B2 (en) * 2006-03-28 2012-02-28 Sap Ag Landscape reorganization algorithm for dynamic load balancing
WO2008034213A1 (en) * 2006-09-18 2008-03-27 Infobright Inc. A method and system for data compression in a relational database
JP5337447B2 (ja) * 2008-10-28 2013-11-06 株式会社日立製作所 ストリームデータ処理方法、及びシステム
CN101620526B (zh) * 2009-07-03 2011-06-15 中国人民解放军国防科学技术大学 一种减少流处理器片上指令存储器资源消耗的方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278837A (ja) * 2001-02-13 2002-09-27 Internatl Business Mach Corp <Ibm> オペレーティング・システムにとってトランスペアレントなメモリ圧縮を管理するシステムおよび方法
JP2004304307A (ja) * 2003-03-28 2004-10-28 Sanyo Electric Co Ltd デジタル放送受信機およびデータ処理方法
JP2005165610A (ja) * 2003-12-02 2005-06-23 Nomura Research Institute Ltd トランザクション処理システムおよび方法
JP2005202646A (ja) * 2004-01-15 2005-07-28 Nec Corp 携帯通信端末
JP2007026064A (ja) * 2005-07-15 2007-02-01 Hitachi Ltd 計算機システム、管理計算機及びデータベース管理システムの制御方法
JP2007317176A (ja) * 2006-04-28 2007-12-06 Sharp Corp 端末装置
US20080065588A1 (en) * 2006-08-24 2008-03-13 Craig Stephen Aldrich Selectively Logging Query Data Based On Cost
JP2008152339A (ja) * 2006-12-14 2008-07-03 Nec Corp 情報処理装置および情報処理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AIX バージョン7.1 パフォーマンス・マネージメント 第1版, vol. 第1版, JPN6015013659, September 2010 (2010-09-01), pages 391 - 402, ISSN: 0003045530 *
KALEN DELANEY, インサイドMICROSOFT SQL SERVER 2005 クエリチューニング&最適化編, vol. 第1版, JPN6015013662, 30 June 2008 (2008-06-30), JP, pages 145 - 159, ISSN: 0003045531 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877965B2 (en) 2016-12-22 2020-12-29 Nec Corporation Data search method, data search device, and data search program

Also Published As

Publication number Publication date
CN102479254B (zh) 2015-03-04
US8818989B2 (en) 2014-08-26
CN102479254A (zh) 2012-05-30
JP5744707B2 (ja) 2015-07-08
US20120136850A1 (en) 2012-05-31

Similar Documents

Publication Publication Date Title
JP5744707B2 (ja) メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ)
US9275102B2 (en) System load query governor
US8583608B2 (en) Maximum allowable runtime query governor
KR101885688B1 (ko) 낮은 지연속도 데이터 액세스를 위한 데이터 스트림의 분할
US8615552B2 (en) Sharing cloud data resources with social network associates
US8554747B2 (en) Active memory expansion in a database environment to query needed/uneeded results
US9870269B1 (en) Job allocation in a clustered environment
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US8918474B2 (en) Determining priorities for cached objects to order the transfer of modifications of cached objects based on measured network bandwidth
US20120215764A1 (en) Energy usage and performance query governor
US10318346B1 (en) Prioritized scheduling of data store access requests
US10972555B2 (en) Function based dynamic traffic management for network services
US10411977B2 (en) Visualization of workload distribution on server resources
CN111737168A (zh) 一种缓存***、缓存处理方法、装置、设备及介质
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
CN112600761A (zh) 一种资源分配的方法、装置及存储介质
Spivak et al. Data preloading and data placement for MapReduce performance improving
US20200042521A1 (en) Database management system and method
US11762860B1 (en) Dynamic concurrency level management for database queries
JP5692355B2 (ja) コンピュータシステム、制御システム、制御方法および制御プログラム
US20230137673A1 (en) Systems and methods for dynamically scaling remote resources
WO2018196459A1 (zh) 一种下载请求处理方法、装置、处理设备及介质
Hsu et al. Effective memory reusability based on user distributions in a cloud architecture to support manufacturing ubiquitous computing
US20240232196A1 (en) Intelligent query plan cache size management
US20160335321A1 (en) Database management system, computer, and database management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150319

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150430

R150 Certificate of patent or registration of utility model

Ref document number: 5744707

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees