IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7550849データベース操作の同時実行のための方法
<>
  • 特許-データベース操作の同時実行のための方法 図1
  • 特許-データベース操作の同時実行のための方法 図2
  • 特許-データベース操作の同時実行のための方法 図3
  • 特許-データベース操作の同時実行のための方法 図4
  • 特許-データベース操作の同時実行のための方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-05
(45)【発行日】2024-09-13
(54)【発明の名称】データベース操作の同時実行のための方法
(51)【国際特許分類】
   G06F 16/21 20190101AFI20240906BHJP
   G06F 16/25 20190101ALI20240906BHJP
【FI】
G06F16/21
G06F16/25
【請求項の数】 19
(21)【出願番号】P 2022517206
(86)(22)【出願日】2020-08-21
(65)【公表番号】
(43)【公表日】2022-11-24
(86)【国際出願番号】 IB2020057855
(87)【国際公開番号】W WO2021053432
(87)【国際公開日】2021-03-25
【審査請求日】2023-01-20
(31)【優先権主張番号】19197996.2
(32)【優先日】2019-09-18
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ベンデル、ピーター
(72)【発明者】
【氏名】ハーム、オリバー
(72)【発明者】
【氏名】ストルツェ、クヌート
(72)【発明者】
【氏名】ブロル、ビョルン
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2003-330765(JP,A)
【文献】特開2018-063470(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
プロセッサが、時間窓の間、データベース・システムにおけるデータベース操作を実行する方法であって、前記データベース操作が前記データベース・システムの記憶空間の記憶ユニットを使用するように構成され、前記プロセッサが実行する方法が、
少なくとも1つの第1のデータベース操作によって使用されるべき自由記憶ユニットの第1の使用速度、および第2のデータベース操作によって使用されるべき自由記憶ユニットの第2の使用速度を決定することと、
前記時間窓の間、前記第2のデータベース操作によって使用されるべき自由記憶ユニットの最大数を決定するために前記第1の使用速度および第2の使用速度を使用することと、
前記時間窓の間、前記最大数に従って前記第2のデータベース操作を実行することと、
前記第1のデータベース操作を実行することであって、前記時間窓の間における前記第1のデータベース操作の前記実行が前記記憶空間の前記記憶ユニットに限定される、前記第1のデータベース操作を実行することとを含む前記プロセッサが実行する方法。
【請求項2】
複数の前記記憶ユニットの個々の記憶ユニットが、前記記憶ユニットが前記第1のデータベース操作および第2のデータベース操作に割り振られているかどうかを示す状態値と関連付けられ、前記記憶空間が、前記第1のデータベース操作および第2のデータベース操作のために割り振られる記憶ユニットを備え、前記第2のデータベース操作による記憶ユニットの使用が、前記記憶ユニットが割り振られていないことを示すための前記状態値の変更を含む、請求項1に記載の前記プロセッサが実行する方法。
【請求項3】
前記決定が、前記第1のデータベース操作が、前記第2のデータベース操作によって使用される前記記憶ユニットの割振りを要求することなく、記憶ユニットに対して実施されるように実施される、請求項1または2に記載の前記プロセッサが実行する方法。
【請求項4】
前記時間窓の間、前記第1の使用速度に従って前記第1のデータベース操作によって使用され得る前記記憶空間の固定数の自由記憶ユニットを提供することと、
前記記憶空間の自由記憶ユニットの前記固定数と総数の差として第1の数を計算することと、
前記時間窓の間、前記第2の使用速度に従って前記第2のデータベース操作によって使用され得る自由記憶ユニットの第2の数を計算することと
をさらに含み、前記決定される最大数は、前記第1の数および第2の数のうちの最も小さい数である、請求項1ないし3のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項5】
前記固定数の自由記憶ユニットを備えるように構成されるバッファを提供することをさらに含み、前記バッファが異なる数の記憶ユニットを備えるように構成される、請求項4に記載の前記プロセッサが実行する方法。
【請求項6】
前記第1の使用速度と第2の使用速度の和として合計速度を決定することと、前記合計速度に存在する前記第2の使用速度の端数を決定することと、前記記憶空間における自由記憶ユニットの前記総数に前記端数を掛け合わせることとをさらに含み、前記決定される最大数は前記掛け合わせることの結果である、請求項に記載の前記プロセッサが実行する方法。
【請求項7】
前記第1のデータベース操作の実行は、前記第2のデータベース操作を開始する前に開始される、請求項1ないし6のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項8】
前記第1のデータベース操作の実行は、前記第2のデータベース操作と同時に、または前記第2のデータベース操作を開始した後に開始される、請求項1ないし7のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項9】
自由記憶ユニットの前記最大数の決定は、前記第1のデータベース操作を開始する前に実施される、請求項1ないし8のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項10】
自由記憶ユニットの前記最大数の決定は、前記第1のデータベース操作を実行している間に実施される、請求項1ないし9のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項11】
前記第1の使用速度および第2の使用速度の前記決定は、前記データベース・システムにおけるデータベース操作の処理履歴を示すデータの監視を使用して実施される、請求項1ないし10のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項12】
前記第1の使用速度は監視データからの決定済み使用速度の最高速度であり、また、前記第2の使用速度は前記監視データからの決定済み使用速度の最低速度である、請求項1ないし11のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項13】
前記記憶空間が前記第1のデータベース操作および第2のデータベース操作のために割り振られ、前記第1のデータベース操作が前記記憶空間にデータを記憶するデータベース操作であり、また、前記第2のデータベース操作が前記記憶空間の記憶ユニットを再割り振りするデータベース操作である、請求項1ないし12のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項14】
前記記憶空間が表空間であり、前記記憶ユニットがページであり、前記第1のデータベース操作がバルク・ロード挿入操作であり、前記第2のデータベース操作がページ再利用操作である、請求項1ないし13のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項15】
前記データベース・システムがLinux、UNIX(R)およびWindows(R)のDB2、DB2 LUWである、請求項1ないし14のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項16】
前記前記プロセッサが実行する方法が、前記第1のデータベース操作および第2のデータベース操作が前記時間窓の間における同時データベース操作であるという決定に応答して自動的に実施される、請求項1ないし15のいずれか一項に記載の前記プロセッサが実行する方法。
【請求項17】
プロセッサに、請求項1ないし16のいずれか一項に記載の方法を実行させるためのコンピュータ・プログラム。
【請求項18】
時間窓の間、データベース・システムにおけるデータベース操作を実行するためのコンピュータ・システムであって、前記データベース操作が前記データベース・システムの記憶空間の記憶ユニットを使用するように構成され、前記コンピュータ・システムが、
少なくとも1つの第1のデータベース操作によって使用されるべき自由記憶ユニットの第1の使用速度、および第2のデータベース操作によって使用されるべき自由記憶ユニットの第2の使用速度を決定することと、
前記時間窓の間、前記第2のデータベース操作によって使用されるべき自由記憶ユニットの最大数を決定するために前記第1の使用速度および第2の使用速度を使用することと、
前記時間窓の間、前記最大数に従って前記第2のデータベース操作を実行することと、
前記第1のデータベース操作を実行することであって、前記時間窓の間における前記第1のデータベース操作の実行が前記記憶空間の前記記憶ユニットに限定される、前記第1のデータベース操作を実行することと
を行うように構成される、コンピュータ・システム。
【請求項19】
前記データベース・システムに遠隔で接続されるか、または前記データベース・システムに含まれる、請求項18に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はデジタル・コンピュータ・システムの分野に関し、より詳細には、データベース・システムにおける同時データベース操作を実行するための方法に関する。
【背景技術】
【0002】
テナント(tenant)は、他のテナントと共有されるファイル・システムにおける空間を割り振ることができる。この割振りは、第1のテナントによってその時に使用されていない場合であっても、その空間を使用することができないテナントに影響を及ぼすことがあり得る。したがって自由空間を解放するプロセスを実行する必要があり得る。例えばテナントが空間のデータベースに表をドロップすると、割り振られた空間を解放してファイル・システムに戻さなければならない。システムは、その割り振られた空間を自動的に解放することはできず、その解放をトリガするためにいくつかのコマンド/ステートメントを実行しなければならない。しかしながら解放プロセスの実行は、その空間を使用している、同時に行われている他のワークロードとの衝突をもたらし得る。これは、多くの新しいページを極めて短い時間窓で必要とするバルク・ロードのような大量操作の場合、さらに深刻になる。
【発明の概要】
【0003】
様々な実施形態が、独立請求項の主題によって記述されているように、データベース・システムにおける同時データベース操作を実行するための方法、コンピュータ・システムおよびコンピュータ・プログラム製品を提供する。有利な実施形態は従属請求項に記述されている。本発明の実施形態は、それらが相互に排他的でない場合、互いに自由に組み合わせることができる。
【0004】
一態様では、本発明は、時間窓の間、データベース・システムにおける同時データベース操作を実行するための方法に関しており、データベース操作は、データベース・システムの記憶空間の記憶ユニットを使用するように構成される。方法は、少なくとも1つの第1のデータベース操作によって使用されるべき自由記憶ユニットの第1の使用速度、および第2のデータベース操作によって使用されるべき自由記憶ユニットの第2の使用速度を決定することと、時間窓の間、第2のデータベース操作によって使用されるべき自由記憶ユニットの最大数を決定するために第1の使用速度および第2の使用速度を使用することと、時間窓の間、その最大数に従って第2のデータベース操作を実行することと、第1のデータベース操作を実行することであって、時間窓の間におけるこの第1のデータベース操作の実行は記憶空間の記憶ユニットに限定される、第1のデータベース操作を実行することとを含む。
【0005】
別の態様では、本発明は、時間窓の間、データベース・システムにおける同時データベース操作を実行するためのコンピュータ・システムに関しており、データベース操作は、データベース・システムの記憶空間の記憶ユニットを使用するように構成される。コンピュータ・システムは、少なくとも1つの第1のデータベース操作によって使用されるべき自由記憶ユニットの第1の使用速度、および第2のデータベース操作によって使用されるべき自由記憶ユニットの第2の使用速度を決定することと、時間窓の間、第2のデータベース操作によって使用されるべき自由記憶ユニットの最大数を決定するために第1の使用速度および第2の使用速度を使用することと、時間窓の間、その最大数に従って第2のデータベース操作を実行することと、第1のデータベース操作を実行することであって、時間窓の間におけるこの第1のデータベース操作の実行は記憶空間の記憶ユニットに限定される、第1のデータベース操作を実行することとを行うように構成される。
【0006】
別の態様では、本発明は、コンピュータ可読プログラム・コードが中に具体化されたコンピュータ可読記憶媒体を備えるコンピュータ・プログラム製品に関しており、コンピュータ可読プログラム・コードは、上記実施形態による方法のすべてのステップを実現するように構成される。
【0007】
同時データベース操作は、記憶空間のそれぞれの数の自由記憶ユニットを使用するように構成することができる。例えば第1のデータベース操作は、時間窓の間、N1個の自由記憶ユニットを使用するように構成することができ、また、第2のデータベース操作は、時間窓の間、N2個の自由記憶ユニットを使用するように構成することができる。N1個の自由記憶ユニットのうちの少なくとも一部は、時間窓の間に作り出される自由ページであってもよい。作り出される自由ページは、時間窓の間、第1のデータベース操作によって使用され得る中間自由ページと呼ぶことができる。第1のデータベース操作は、第1のデータベース操作の他の要求によって使用されるよう、中間自由記憶ユニットを作り出す削除操作を含むことができる。時間窓の間、記憶空間がN2+N1個未満の自由記憶ユニットを備えると、第1のデータベース操作は、必要なN1個未満の自由記憶ユニットしか使用することができないことになり得る。本主題は、第2のデータベース操作によって使用され得る自由記憶ユニットの最大数を設定することによってこれを防止することができる。したがって本主題によれば、利用可能な記憶装置をデータベース・システムの異なるテナントの間で有効に使用することができる。本主題は、記憶資源を共有するデータベース操作の実行を最適化することができる。
【0008】
記憶空間におけるデータベース操作のタイプによっては、本主題によって激しい断片化を防止することができる。例えば第1のデータベース操作は、データを記憶空間に挿入するバルク・ロードを含むことができ、その一方で第2のデータベース操作によってその記憶空間のサイズを小さくすることができる。本主題によれば、空間再利用(reclamation)とバルク・ロードの間の衝突を回避することができる。この衝突回避により、性能低下を防止することができ(例えば解放された空間の分を記憶空間のために再割り振りする必要を回避することができる)、また、バルク・ロードの失敗を防止することができる。
【0009】
以下では、単なる一例として、本発明の実施形態が図面を参照してより詳細に説明される。
【図面の簡単な説明】
【0010】
図1】データ処理システムを示す図である。
図2】本開示の例による、データベース・システムにおける同時データベース操作を実行するための方法のフローチャートである。
図3】別のデータベース操作と同時に行われているデータベース操作によって使用され得る自由記憶ユニットの最大数を決定するための方法のフローチャートである。
図4】別のデータベース操作と同時に行われているデータベース操作によって使用され得る自由記憶ユニットの最大数を決定するための方法のフローチャートである。
図5】本開示に含まれている1つまたは複数の方法ステップを実現するために適したコンピュータ化システムを示す図である。
【発明を実施するための形態】
【0011】
本発明の様々な実施形態についての説明は、例証の目的のために提供されており、余すところのないものであること、あるいは開示されている実施形態に限定されることは意図されていない。当業者には、説明されている実施形態の範囲および思想を逸脱しない多くの修正および変更が明らかであろう。本明細書において使用されている専門用語は、実施形態の原理、実際的なアプリケーション、または市場で見出される技術に優る技術的改善を最も良好に説明するために、あるいは他の当業者による、本明細書において開示されている実施形態についての理解を可能にするために選択されている。
【0012】
データベース・システムは1つまたは複数のデータベースを備えることができる。複数のデータベースのうちの1つのデータベースは記憶空間を備えている。すなわちそれらの記憶空間はデータベースのために割り振られている。記憶空間は、データベースのデータベース・オブジェクトの基礎をなしている実際のデータを維持することができる記憶位置であってもよい。記憶空間は、データベースに記憶されるべきデータのための記憶装置を割り振るように働く。記憶空間は、例えばファイルなどのページの集合であってもよい。記憶空間は、表空間、索引空間または仮想メモリであってもよい。記憶ユニットは例えばページであってもよい。データベース操作は、例えばデータベースへのアクセスを可能にすることができる。記憶ユニットは、記憶ユニットの状態を示す状態値と関連付けることができる。記憶ユニットはデータを含むように構成することができる。記憶ユニットの状態は、その記憶ユニットが自由記憶ユニットであるかどうかを示す。自由記憶ユニットは、データベース操作によって使用されない記憶ユニットである。自由記憶ユニットは、空き記憶ユニット(例えば全く使用されていない)であるか、あるいは過去にデータベース操作によって書き込まれたデータを含んでいるが、そのデータは今はもう使用されていない記憶ユニットであり、例えばそのデータは定義済みの最大許容期間を超える時間期間にわたって使用されていない記憶ユニットのいずれかであってもよい。例えば記憶ユニットは記録を含むように構成することができる。これらの記録の各々は、データベース・システムのそれぞれのディスク・ブロックにマップすることができる。データ記録または記録は、名前、誕生日および特定のユーザのクラスなどの関連するデータ項目の集合である。データ記録は実体を表し、実体は、それに関する情報がデータ記録に記憶されるユーザ、オブジェクトまたは概念を意味する。
【0013】
データベース操作は、例えばユーザのアプリケーションによって開始することができ、あるいはデータベース操作はデータベース・システム起動データベース操作であってもよい。「ユーザ」という用語は、実体、例えば個人、コンピュータ、またはデータベース操作を開始するコンピュータ上で実行する、例えばデータ項目を挿入するように要求するためのアプリケーションを意味することができる。第1のデータベース操作は、例えばユーザ・アプリケーションによって開始することができる。第2のデータベース操作はデータベース・システムによって開始することができる。データベース操作は、例えば記憶空間の少なくとも1つのページを使用することができる。ページの使用には、例えばページの修正を含むことができる。ページの修正には、1つまたは複数の記録をページに挿入し、および/または1つまたは複数の記録をページから削除し、および/またはページ内の1つまたは複数の記録を変更し、および/またはページの状態を変更することを含む。データベース・システムは複数の記憶空間を備えることができ、これらの複数の記憶空間の個々の記憶空間は、それぞれの1つまたは複数のデータベース操作に割り振られる、すなわち割り当てられる。データベース操作は、そのデータベース操作に割り当てられた記憶空間の記憶ユニットを使用することができ、データベース操作によって使用されるべきその記憶空間に記憶ユニットが存在しない場合、データベース操作は、追加の記憶ユニットの割振りを要求することができる。しかしながらこのような追加の記憶ユニットの要求には長い時間を要することがあり、したがってデータベース操作の実行が遅くなり得る。
【0014】
本明細書において使用されている「第1の」および「第2の」という用語は、それらが先行する名詞のためのラベルを意味しており、そうであることが明確に定義されていない限り、何らかのタイプの順序(例えば空間的、時間的、論理的)を意味しているわけではない。一実施形態によれば、第1のデータベース操作は、第2のデータベース操作の開始に先立って開始することができる。これは、メンテナンス・データベース操作を定期的に行うデータベース・システムの場合に有利であり得る。例えば第2のデータベース操作は、データベース・システム上で定期的に実施されるメンテナンス・データベース操作であってもよく、例えば第2のデータベース操作を使用して自由ページを再利用することができる。第2のデータベース操作は定期的に実施されるため、第2のデータベース操作の実行は、メンテナンス期間の間、他のデータベース操作の実行と同時に起こり得る。メンテナンス操作は、第1のデータベース操作などの他のデータベース操作よりも頻繁に実行されるため、メンテナンス操作は、後でもう一度行われることになる際に所与の時間窓に限定され得る。したがって定期的に実行されるメンテナンス操作を限定することは、一度しか起こり得ない他のデータベース操作を限定することと比較すると有利であり得る。
【0015】
一実施形態によれば、第2のデータベース操作は第1のデータベース操作の開始と同時に、またはそれよりも前に開始することができる。早く開始することにより、第2のデータベース操作は、データベース・システムの資源を最初に使用する利点を有する。したがって時間窓の間、第2のデータベース操作を自由記憶ユニットの最大数に限定することにより、データベース操作同士の間で資源を最適に共有することができる。第2のデータベース操作は、第1のデータベース操作が開始する前にいくつかの資源を使用しているため、第1のデータベース操作が十分な資源を有することができるよう、時間窓の間、第2のデータベース操作が制限され得る。
【0016】
一例では、方法は、時間窓の間、第1のデータベース操作および第2のデータベース操作が同時に行われている、または同時に行われることになるという決定に応答して自動的に実施され得る。これにより、自律的に機能するデータベース・システムを可能にすることができる。これは、表空間のための空間再利用をより長い時間(数分)にわたって行わせることができ、また、新しいバルク・ロードがいつ生じるか未知であるため、とりわけ有利であり得る。この方法を自動的に実施することにより、バルク・ロードがいつ生じても、それを考慮することができる。
【0017】
一実施形態によれば、複数の記憶ユニットの個々の記憶ユニットは、その記憶ユニットが第1のデータベース操作および第2のデータベース操作に割り振られているかどうかを示す状態値と関連付けられる。記憶空間は、第1のデータベース操作および第2のデータベース操作のために割り振られる記憶ユニットを備え、第2のデータベース操作による記憶ユニットの使用は、記憶ユニットが第1のデータベース操作に割り振られていないことを示すための記憶ユニットの状態値の変更を含む。所与のデータベースにアクセスするデータベース操作が終了するか、あるいは完了すると、そのデータベース操作の割り振られた記憶ユニットは、もうそのデータベース操作に割り振ることはできず、その所与のデータベースにアクセスする別のデータベース操作のために割り振ることができる(例えばそれらが自由になると)。
【0018】
この実施形態は、以下の例示的理由により、有利に、また、円滑に既存のシステムに統合することができる。既存のシステムでは、データベース・アドミニストレータがメンテナンス・コマンドを一定の間隔で実行しており、例えば時間窓は、複数の間隔のうちの1つの間隔である。第2のデータベース操作はメンテナンス・コマンドによってトリガされ得る。このメンテナンス・コマンドは例えば自動的に実行することができる。これにより、メンテナンス・コマンドが第1のデータベース操作の他の1つまたは複数の能動ワークロードと同時に実行されることになり得る。例えばバルク・ロードは大量のデータを表空間に挿入することができ、その一方で、その表空間のサイズがメンテナンス・コマンドによって小さくなる。空間再利用とバルク・ロードの間の衝突はこの実施形態によって回避することができる。例えばこれにより、解放された空間の分に対する表空間のために再割振りを防止することができ、あるいはバルク操作の失敗を防止することができる。
【0019】
この実施形態は自由空間の使用を改善することができる。例えば1テラバイト(TB)のデータを有する10個の表の各々が記憶空間への第1のデータベース操作によって加えられ、それらの10個の表のうちの9個の表がドロップされると、9TBの自由空間が記憶空間に存在し、第1のデータベース操作によっては使用され得ない。本主題によれば、第2のデータベース操作の使用を利用可能にすることにより、ファイル・システム中の他のファイルがこの自由空間にアクセスすることができる。
【0020】
一実施形態によれば、最大数の決定は、第2のデータベース操作によって使用される記憶ユニットの割振りを要求することなく、第1のデータベース操作が記憶ユニットに対して実施されるように実施される。例えば第2のデータベース操作は必要なページを再割り振りすることができ、したがって第1のデータベース操作は、ページの再割振りを要求する必要なく、記憶空間のページ上で行うことができる。
【0021】
一実施形態によれば、方法は、時間窓の間、第1の使用速度に従って第1のデータベース操作によって使用され得る記憶空間の固定数の自由記憶ユニットを提供することと、第2のデータベース操作によって使用され得る記憶空間の自由記憶ユニットの固定数と総数の差として第1の数を計算することと、時間窓の間、第2の使用速度に従って第2のデータベース操作によって使用され得る自由記憶ユニットの第2の数を計算することであって、決定される数は第1の数および第2の数のうちの最も小さい数である、第2の数を計算することとをさらに含む。
【0022】
自由ページの固定数は、時間窓の間、第1のデータベース操作によって使用され得る自由ページの推定値であってもよい。それらの自由ページは、時間窓の間、それらの自由ページを第1のデータベース操作が使用しなければならないため、中間自由ページと呼ぶことができる。したがって第2のデータベース操作が再割り振りすることができるのは永久自由ページのみである。第1の数は、時間窓の間の永久自由ページの数の推定値であってもよい。
【0023】
この実施形態は、複数のデータベース操作を衝突することなく同時に行わせるための正確で、かつ、信頼性の高い方法を可能にすることができるため、有利であり得る。第1のデータベース操作を開始する前に、多数の記憶ユニットが第1のデータベース操作に割り当てられる。第1のデータベース操作は、例えば複数のロード要求および削除要求を含むことができる。第1のデータベース操作を実行している間、中間自由ページを作り出すことができる(例えば削除要求によって)が、第1のデータベース操作には、時間窓の間、それらの中間自由ページが必要である。ページの固定数は、それらの作り出された中間自由ページの推定値を含むことができ、したがって第2のデータベース操作が使用することができるのは永久自由ページのみである。例えば1日の間の典型的なワークロードは5000ロード操作を含むことができ、個々のロード操作は関連する削除操作によって補償され、また、全体として、必要空間は比較的一定を維持する。この場合、再利用操作がアクティブになり得るのは、削除要求の方が挿入要求よりも多くなった場合(およびいくつかのページが永久に自由にされることになる場合)のみである。
【0024】
一実施形態によれば、方法は、固定数の自由記憶ユニットを備えるバッファを提供することをさらに含み、バッファは異なる数の記憶ユニットを備えるように構成される。一例では、バッファは論理的に確保することができる。第2のデータベース操作は、記憶空間の自由ページの総数からバッファの自由ページの数を引くことによって第2のデータベース操作が使用することができる自由ページのページ数を決定するために、例えば第2のデータベース操作を開始する前にバッファを使用するように構成することができる。自由にされない、また、時間窓の間の挿入および削除(第1のデータベース操作に含まれている)の通常の変動をカバーするだけの十分な大きさのページのバッファを準備することにより、記憶装置サイズのジグザグ線挙動を回避することができる。例えばこの方法の別の反復のためにバッファの内容を変更することができ、例えば別の時間窓で同時に行われる第1のデータベース操作および第2のデータベース操作の別の対のために方法を繰り返す場合にバッファ・サイズを変更することができる。これは、この方法の体系的な実行を可能にし得る。
【0025】
一実施形態によれば、方法は、第1の使用速度と第2の使用速度の和として合計速度を決定することと、合計速度に存在する第2の使用速度の端数を決定することと、記憶空間における記憶ユニットの数にその端数を掛け合わせることとをさらに含み、決定される最大数はこの掛け合わせることの結果である。この実施形態は、複数のデータベース操作を衝突することなく同時に行わせるための正確で、かつ、信頼性の高い方法を可能にすることができる。
【0026】
一実施形態によれば、自由記憶ユニットの最大数の決定は、第1のデータベース操作を開始する前に実施される。これにより、同時データベース操作の最適実行を可能にすることができる。例えばこの実施形態は、時間窓の間に決定が実施される場合と比較すると、決定されている間に第2のデータベース操作がその最大を超過し得るため、第1のデータベース操作の実行を速めることができる。さらに、既に自由ページが記憶空間で利用可能である場合、そのページを使用する方が新しいページをファイル・システム・レベル上に割り振るよりも速い。
【0027】
一実施形態によれば、自由記憶ユニットの最大数の決定は、第1のデータベース操作を実行している間に実施される。これは、さもなければ第1のデータベース操作が開始していなくても、あるいは第1のデータベース操作が失敗しても、決定を実施するために必要になることになる処理資源を節約することができる。
【0028】
一実施形態によれば、第1の使用速度および第2の使用速度の決定は、データベース・システムにおけるデータベース操作の処理履歴を示すデータの監視を使用して実施される。この方法が実行される同じデータベース・システムからのデータを使用することにより、速度の正確で、かつ、信頼性の高い推定を可能にすることができる。
【0029】
一実施形態によれば、第1の使用速度は監視データからの決定済み使用速度の最高速度であり、また、第2の使用速度は監視データからの決定済み使用速度の最低速度である。
【0030】
第1のデータベース操作は、複数の挿入および/または削除および/または更新要求またはタスクを含むことができる。第1の使用速度は、例えば所与の時間窓で書き込むことができる新しいデータ・ページの量を示すことができる。第1の使用速度は、例えば第1のデータベース操作に含まれているすべてのバルク・ロード操作に対する最高速度であってもよい。第1の使用速度および第2の使用速度を決定するために使用される情報は、専用性能測定から入手することができ、あるいはデータベース・システムを常に監視し、スループットを集め、また、最大値または最小値を計算することによって入手することができる。
【0031】
第2の使用速度は、自由ページを再利用するための最低速度であってもよく、例えば少なくとも所与の時間窓で再利用されるページの量であってもよい。第2の使用速度は、記憶空間における自由ページの量および再利用することができる自由ページの量を決定することによって計算することができる。この方法によれば、空間を再利用するために必要な時間の間にバルク・ロードが満たすことができる量と少なくとも同量の利用可能な自由ページが残るよう、再利用されるページの数を制限することができる。
【0032】
一実施形態によれば、記憶空間は第1のデータベース操作および第2のデータベース操作のために割り振られる。第1のデータベース操作は記憶空間にデータを記憶するデータベース操作であり、また、第2のデータベース操作は記憶空間の記憶ユニットを再割り振りするデータベース操作である。これにより、同時ワークロードのために利用することができる資源として自由ページを維持することが可能になり、特定の時間フレームの中でその同時ワークロードによって使用されないことになる部分のみを再利用することができる。
【0033】
一実施形態によれば、記憶空間は表空間であり、また、記憶ユニットはページであり、第1のデータベース操作はバルク・ロード挿入操作であり、また、第2のデータベース操作はページ再利用操作である。
【0034】
一実施形態によれば、データベース、DB、システムは、Linux、UNIX(R)およびWindows(R)のDB2、DB2 LUWである。
【0035】
これらの実施形態によれば、本主題を既存のDB2 LUWシステムに円滑に統合することが可能になる。DB2 LUWは、表を物理的に記憶するための容器として表空間を使用している。表空間はページの中に構造化されている。ページは異なる表のために使用され、また、これらのページのうちのいくつかは使用済みであってもよいが、それらのページのデータは削除されており(個々の行または表全体のいずれかがドロップされている)、それらのページは自由ページになっている。このような状況を改善するために、DB2 LUWは、自由ページを再利用するためのメンテナンス・コマンドを提供している。このコマンドは以下のように定義することができる。ALTER TABLESPACE <table_space_name> REDUCE <n>。このコマンドは空間を自由にするためのページ数を規定する。この場合、このコマンドは、表空間を狭くすることになるページ数を示す。
【0036】
図1は、データ処理システム100の線図を示したものである。データ処理システム100は、クライアント・システム101およびデータベース・システム103を備えている。クライアント・システム101は、ネットワーク102を介してデータベース・システム103に接続されている。ネットワーク102は、例えばワイヤ線方式で実現することができ、あるいは例えばWiFi、WiMax、等々などの無線プロトコルおよび技術を使用しては無線方式で実現することができる。
【0037】
クライアント・システム101は、1つまたは複数のクライアント・アプリケーション105を備えることができる。これらのクライアント・アプリケーション105の各々は、データベース・システム103のデータにアクセスするように構成することができる。そのために、クライアント・アプリケーション105は、例えばDB2システムをサポートしているデータベース・システムとの通信を可能にするDB2ユニバーサル・データベース・クライアント・ライブラリとリンクすることができる。DB2ユニバーサル・データベース・クライアント・ライブラリは、クライアント・アプリケーション105がデータベース・システム103にアクセスするために必要な機能性を提供することができる。
【0038】
アプリケーション105のうちの1つのアプリケーションは、データベース・アクションすなわち操作を開始するように構成することができる。そのために、例えばアプリケーション105と、データベース・システム103の複数のエージェント107のうちの1つのエージェントとの間でTCP/IP通信を確立することができる。データベース・システム103のエージェント107は、データベース・システム103におけるアクティビティを制御するように構成することができる。詳細には、エージェント107は、アプリケーション105に取って代わるほとんどのデータ処理の実施を可能にしている。データベース・システム103が複数のプロセッサを有しているか、あるいは仕切られたデータベースのうちの一部である場合、複数のサブエージェント109を割り当てることができる。エージェント107は、データベース要求をサブエージェント109に分配する。サブエージェント109は、アプリケーション105のための要求を実施する。
【0039】
データベース・システム103は、データベース・システム103の1つまたは複数のデータベースの1つまたは複数の記憶空間110を備えることができる。記憶空間110には、図1に示されているようにハード・ディスク111のディスク空間を割り振る、すなわち割り当てることができる。個々のディスク空間は、表データを記憶するために使用することができるページを備えることができる。
【0040】
図2は、時間窓の間、データベース・システムにおける同時データベース操作を実行するための方法のフローチャートである。データベース操作には記憶空間の記憶ユニットを使用することができる。記憶ユニットの使用には、記憶空間の少なくとも自由記憶ユニットの使用を含むことができ、例えば第1のデータベース操作は、現在の時間窓に先立つ時間窓で記憶ユニットを使用して開始したその記憶ユニットを使用して継続することができる。記憶空間は例えばデータベースの表空間であってもよい。記憶空間は、複数のデータベース操作のうちの少なくとも1つのデータベース操作に割り振られ、あるいは関連付けられる。例えば記憶空間は、複数のデータベース操作のうちの第1のデータベース操作に割り当てることができる。
【0041】
複数のデータベース操作の個々のデータベース操作は、時間ユニット毎に特定の数の自由記憶ユニットを使用するように構成することができる。すなわち個々のデータベース操作は自由記憶ユニットの使用速度を有することができる。自由記憶ユニットの使用には、例えば自由記憶ユニットへのデータの書込み、あるいは自由記憶ユニットの再利用を含むことができる。自由記憶ユニットの再利用には、自由記憶ユニットが別の記憶空間に属するよう、例えば別のデータベース操作に割り当てられるよう、自由記憶ユニットの再割当てを含むことができる。
【0042】
第1のデータベース操作は、例えば1つまたは複数のロード要求またはタスクを含むことができ、例えば第1のデータベース操作はN個のロード要求を含むことができ、例えばN=5000である。ロード要求は、データを自由記憶ユニットに挿入することができ、あるいは記憶ユニットのデータを上書きすることができる。第2のデータベース操作はデータベース操作の再利用であってもよい。データベース操作の再利用は、自由記憶ユニットを再割り振りする、すなわち再割り当てするように構成することができる。
【0043】
第2のデータベース操作は、例えばデータベース・システムの中で周期的に実施することができる。例えば第2のデータベース操作は、定義済みの時間間隔、例えば毎週月曜日に、毎日午前10時から午前11時まで実行されるように構成することができる。この方法は、この時間間隔のうちの少なくとも一部の間に実行することができる。この時間窓は、複数の時間間隔のうちの1つの時間間隔であってもよい。
【0044】
第1のデータベース操作によって使用されるべき自由記憶ユニットの第1の使用速度はステップ201で決定することができる。第1の使用速度は、第1のデータベース操作が所与の時間ユニットの間に使用する自由記憶ユニットの数である。第1の使用速度は、例えば第1のデータベース操作と同様のデータベース操作のログ記録を含む履歴データを使用してステップ201で推定することができる。データベース操作は、それらが同じタイプの要求(例えば挿入要求)を含み、および/または同じアプリケーションによって開始され、および/または同じ時間期間に実行される場合、類似していてもよい。別の例では、第1の使用速度はユーザ定義であってもよく、例えば第1の使用速度の決定は、第1の使用速度を示すユーザ入力の受取りを含むことができる。
【0045】
第1のデータベース操作は、同時に行わせる必要がある複数のバルク・ロード要求を含むことができる。すべての同時バルク・ロードの合計の速度は、データベース・システムのハードウェアによってイネーブルされる1秒当たりの最大入力/出力操作(IOPS)によって拘束されているため、すべてのロードが相俟って、最大数の記憶ユニットを時間間隔毎に処理することができるにすぎない。第1の使用速度は、時間間隔毎のその最大数のページとして定義することができる。すなわち複数のバルク・ロードが同時に行われると、それらは資源を争うことになり、ロード速度が両方に対して低下することになる。複数のロードがより速い結合ロード速度を達成する場合、その結合値が第1の使用速度であってもよい。
【0046】
第2のデータベース操作によって使用されるべき自由記憶ユニットの第2の使用速度はステップ203で決定することができる。第2の使用速度は、少なくとも時間窓内で再利用される記憶ユニットの数を示す。
【0047】
第1の使用速度および第2の使用速度は、時間窓の間、第2のデータベース操作によって使用されるべき自由記憶ユニットの最大数をステップ205で決定するために使用することができる。図3および図4は、第2のデータベース操作によって使用されるべき自由記憶ユニットの最大数を決定するための例示的方法を提供している。
【0048】
ステップ207で、時間窓の間、決定された最大数に従って第2のデータベース操作を実行することができる。すなわち第2のデータベース操作は、時間窓の間、決定された最大数を超える自由記憶ユニットを使用することはできない。
【0049】
ステップ209で、時間窓の間、第1のデータベース操作を実行することができ、第1のデータベース操作の実行は、記憶空間の記憶ユニットに限定される。決定された最大数は、第2のデータベース操作を定義済みの数の記憶ユニットに限定するため、これは、追加の記憶ユニットを要求する必要なく、時間窓の間、第1のデータベース操作によって使用されるべき十分な記憶ユニットを残す。すなわち第1のデータベース操作の実行は記憶空間の記憶ユニットに限定される。これは、同時操作(バルク・ロードのような)によって使用され得るページに対する潜在的なあらゆる侵入を防止することができる。
【0050】
第1のデータベース操作は時間窓の前に開始することができる。すなわち時間窓の間、第1のデータベース操作はその実行を継続する。別の例では、第1のデータベース操作は、時間窓の開始時に実行を開始することができる。
【0051】
図3は、別のデータベース操作と同時に行われているデータベース操作によって使用され得る自由記憶ユニットの最大数を決定するための方法のフローチャートである。
【0052】
ステップ301で記憶空間の固定数の自由記憶ユニットを決定することができる。記憶空間は例えば表空間であってもよく、また、記憶ユニットはページであってもよい。記憶空間のその固定数の自由記憶ユニットは、時間窓の間、第1の使用速度を使用して第1のデータベース操作によって使用され得る多数の記憶ユニットであってもよい。そのためにバッファを使用することができる。バッファは、第1のデータベース操作のために確保することができる(例えば論理的に)。このバッファを満たすためにバルク・ロード(第1のデータベース操作の)に必要な同じ時間窓内で、第2のデータベース操作による空間再利用により、過剰な自由記憶ユニットを解放してファイル・システムに戻すことができる。これは、バルク・ロードが必要とする時間より長く空間再利用が行われることはないことを保証し、また、空間再利用の最悪事例は遅く、また、バルク・ロードは可能な限り速いことを仮定する。したがって図2を参照して説明したように、第1の使用速度は最高速度として決定され、また、第2の使用速度は最低速度として決定される。
【0053】
ステップ303で、記憶空間の自由記憶ユニットの固定数と総数の差として第1の数を計算することができる。第1の数は再利用のために利用することができる記憶ユニットの数である。第1の数は、total_num_reclaimable_pages = num_free_pages - num_pages_in_bufferとして定義することができ、num_pages_in_bufferはページの固定数であり、また、num_free_pagesは記憶空間の自由記憶ユニットの総数である。
【0054】
ステップ305で、時間窓の間、第2の使用速度に従って第2のデータベース操作によって使用され得る自由記憶ユニットの第2の数を決定することができる。第2の数は、num_reclaimable_pages = load_time * reclaim_speed (in pages/s)として定義することができ、load_timeは、バッファを満たすためにバルク・ロードが必要とすることになる(少なくとも)時間であり、また、load_time = num_pages_in_buffer / load_speedとして定義することができる。load_speedは第1の使用速度である。load_timeは、その時間窓で再利用することができる(最大の)ページの量(第2の数)を計算するための上部境界として使用することができる。
【0055】
ステップ307で、第1の数および第2の数のうちの最も小さい数として、第2のデータベース操作によって使用され得る(例えば再利用され得る)自由ページの最大数を決定することができる。これは、再利用可能ページの数を制限することができる。最大数は、num_reclaimable_pages = min(num_reclaimable_pages, total_num_reclaimable_pages)として定義することができ、min()は、2つの数のうちの最小を計算する関数を表している。
【0056】
図4は、別のデータベース操作と同時に行われているデータベース操作によって使用され得る自由記憶ユニットの最大数を決定するための方法のフローチャートである。
【0057】
図4の方法はバッファを使用していない。図4の方法は安全手段として使用することができる。図4の方法は、空間再利用と(潜在的)バルク・ロードとの間の自由ページの数の分割に基づいていてもよい。
【0058】
ステップ401で、第1の使用速度と第2の使用速度の和として合計速度を決定することができる。合計速度は、summed_speed = reclaim_speed + load_speedとして定義することができる。再利用速度は第2の使用速度であり、また、ロード速度は第1の使用速度である。一例として、最低再利用速度は250ページ/sであり、また、最高ロード速度は1250ページ/sであると仮定する。この場合、バルク・ロードまたは再利用のいずれかによって修正されるページの総数は1500ページ/sである。
【0059】
ステップ403で、合計速度に存在する第2の使用速度の端数を決定することができる。ステップ405で、記憶空間における自由記憶ユニットの総数にその端数を掛け合わせることができる。これは、num_reclaimable_pages = num_free_pages * reclaim_speed /summed_speedとして定義することができる多数のページをもたらすことになる。端数は、再利用速度と合計速度の比率、reclaim_speed /summed_speedとして定義される。
【0060】
ステップ407で、第2のデータベース操作によって使用され得る自由ページの最大数(または決定された最大数)をステップ405の掛け合わせることの結果、num_reclaimable_pagesとして提供することができる。
【0061】
図5は、本開示に含まれている方法ステップを実現するために適した汎用コンピュータ化システムを示したものである。
【0062】
本明細書において説明されている方法は、少なくとも部分的に非対話型であり、サーバまたは組込み型システムなどのコンピュータ化システムによって自動化されることは認識されよう。しかしながら例示的実施形態では、本明細書において説明されている方法は、(部分的に)対話型のシステムの中で実現することができる。これらの方法は、さらに、ソフトウェア522(ファームウェア522を含む)、ハードウェア(プロセッサ)505またはそれらの組合せの中で実現することができる。例示的実施形態では、本明細書において説明されている方法は、実行可能プログラムとしてソフトウェアの中で実現され、また、パーソナル・コンピュータ、ワークステーション、ミニコンピュータまたはメーンフレーム・コンピュータなどの専用または汎用デジタル・コンピュータによって実行される。したがってほとんどの汎用システム101は汎用コンピュータ501を含む。
【0063】
例示的実施形態では、図5に示されているハードウェア・アーキテクチャの形では、コンピュータ401は、プロセッサ505、メモリ・コントローラ515に結合されたメモリ(主メモリ)510、および局所入力/出力コントローラ535を介して通信結合される1つまたは複数の入力および/または出力(I/O)デバイス(または周辺装置)10、545を含む。入力/出力コントローラ535は、それらに限定されないが、当技術分野で知られている1つまたは複数のバスあるいは他の有線接続または無線接続であってもよい。入力/出力コントローラ535は、簡潔にするために省略されているが、通信を可能にするためのコントローラ、バッファ(キャッシュ)、ドライバ、中継器および受信機などの追加要素を有することができる。さらに、局所インタフェースは、上記構成要素の間の適切な通信を可能にするためのアドレス接続、制御接続またはデータ接続あるいはその組合せを含むことができる。本明細書において説明されているように、I/Oデバイス10、545は、一般に、当技術分野で知られている任意の汎用型暗号方式カードまたはスマート・カードを含むことができる。
【0064】
プロセッサ505は、とりわけメモリ510に記憶されているソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ505は、任意の特注の、または商用的に入手することができるプロセッサ、中央処理装置(CPU)、コンピュータ501と関連するいくつかのプロセッサのうちの補助プロセッサ、半導体ベース・マイクロプロセッサ(マイクロチップまたはチップ・セットの形態の)、マクロプロセッサ、またはソフトウェア命令を実行するための概ね任意のデバイスであってもよい。
【0065】
メモリ510は、揮発性メモリ要素(例えばランダム・アクセス・メモリ(DRAM、SRAM、SDRAM、等々などのRAM))、および不揮発性メモリ要素(例えばROM、消去可能プログラマブル・リード・オンリ・メモリ(EPROM)、電子的消去可能プログラマブル・リード・オンリ・メモリ(EEPROM)、プログラマブル・リード・オンリ・メモリ(PROM))のうちの任意の1つまたは組合せを含むことができる。メモリ510は分散型アーキテクチャを有することができ、様々な構成要素が互いに離れて置かれているが、プロセッサ505によってアクセスすることができることに留意されたい。
【0066】
メモリ510の中のソフトウェアは、1つまたは複数の個別のプログラムを含むことができ、それらの各々は、論理機能、とりわけ本発明の実施形態に含まれている機能を実現するための実行可能命令の順序付けされたリストを含む。
【0067】
メモリ510の中のソフトウェアは、典型的には、適切なオペレーティング・システム(OS)511を同じく含むことになる。OS511は、本質的に、他のコンピュータ・プログラムの実行を制御する。
【0068】
本明細書において説明されている方法は、ソース・プログラム、実行可能プログラム(オブジェクト・コード)、スクリプト、または実施されるべき命令のセットを含む任意の他の実体の形態であってもよい。ソース・プログラムである場合、プログラムは、OS511と関連して適切に動作するためには、コンパイラ、アセンブラ、解釈プログラム、等々を介して翻訳しなければならず、それらはメモリ510内に含まれていても、あるいは含まれていなくてもよい。さらに、方法は、データおよび方法のクラスを有するオブジェクト指向プログラミング言語、またはルーチン、サブルーチンまたは機能あるいはその組合せを有する手続きプログラミング言語として作成することも可能である。
【0069】
例示的実施形態では、従来のキーボード550およびマウス555を入力/出力コントローラ535に結合することができる。I/Oデバイス545などの他の出力デバイスは、入力デバイス、例えばそれらに限定されないが、プリンタ、スキャナ、マイクロホン、等々を含むことができる。最後に、I/Oデバイス10、545は、入力と出力の両方と通信するデバイス、例えばそれらに限定されないが、ネットワーク・インタフェース・カード(NIC)または変調器/復調器(他のファイル、デバイス、システムまたはネットワークにアクセスするための)、無線周波数(RF)または他のトランシーバ、電話インタフェース、ブリッジ、ルータ、等々をさらに含むことができる。I/Oデバイス10、545は、当技術分野で知られている任意の汎用型暗号方式カードまたはスマート・カードであってもよい。システム101は、ディスプレイ530に結合されたディスプレイ・コントローラ525をさらに含むことができる。例示的実施形態では、システム101は、ネットワーク566に結合するためのネットワーク・インタフェースをさらに含むことができる。ネットワーク566は、コンピュータ501と、任意の外部サーバ、クライアント、等々との間の、広帯域接続を介した通信のためのIPベース・ネットワークであってもよい。ネットワーク566は、コンピュータ501と、本明細書において考察されている方法のステップの一部またはすべてを実施するために含むことができる外部システム30との間でデータを送受信する。例示的実施形態では、ネットワーク566は、サービス・プロバイダによって管理される被管理IPネットワークであってもよい。ネットワーク566は無線方式で実現することができ、例えばWiFi、WiMax、等々などの無線プロトコルおよび技術を使用して実現することができる。また、ネットワーク566は、ローカル・エリア・ネットワーク、広域ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワークまたは他の同様のタイプのネットワーク環境などのパケット交換ネットワークであってもよい。ネットワーク566は、固定無線ネットワーク、無線ローカル・エリア・ネットワーク(LAN)、無線広域ネットワーク(WAN)、パーソナル・エリア・ネットワーク(PAN)、仮想プライベート・ネットワーク(VPN)、イントラネットまたは他の適切なネットワーク・システムであってもよく、また、信号を受信し、かつ、送信するための機器を含む。
【0070】
コンピュータ501がPC、ワークステーション、インテリジェント・デバイス、等々である場合、メモリ510の中のソフトウェアは基本入力出力システム(BIOS)522をさらに含むことができる。BIOSは、スタートアップ時にハードウェアを初期化し、かつ、試験し、OS511を開始し、また、ハードウェア・デバイス間のデータの転送をサポートする基本ソフトウェア・ルーチンのセットである。BIOSはROMの中に記憶され、したがってコンピュータ501が起動されるとBIOSを実行することができる。
【0071】
コンピュータ501が動作中である場合、プロセッサ505は、メモリ510内に記憶されているソフトウェアを実行して、データをメモリ510に通信し、かつ、データをメモリ510から通信するように構成され、また、通常、ソフトウェアに従ってコンピュータ501の動作を制御するように構成される。本明細書において説明されている方法およびOS511は、その全体または一部、典型的には一部がプロセッサ505によって読み出され、恐らくプロセッサ505内にバッファされてから実行される。
【0072】
本明細書において説明されているシステムおよび方法が図5に示されているようにソフトウェアの中で実現される場合、方法は、任意のコンピュータ関連システムまたは方法による使用のために、あるいは任意のコンピュータ関連システムまたは方法と関連して使用するために、記憶装置520などの任意のコンピュータ可読媒体の上に記憶することができる。記憶装置520は、HDD記憶装置などのディスク記憶装置を備えることができる。
【0073】
様々な実施形態が以下の番号が振られた節で詳細に説明される。
【0074】
1.時間窓の間、データベース・システムにおける同時データベース操作を実行するための方法であって、データベース操作は、データベース・システムの記憶空間の記憶ユニットを使用するように構成され、方法は、少なくとも1つの第1のデータベース操作によって使用されるべき自由記憶ユニットの第1の使用速度、および第2のデータベース操作によって使用されるべき自由記憶ユニットの第2の使用速度を決定することと、時間窓の間、第2のデータベース操作によって使用されるべき自由記憶ユニットの最大数を決定するために第1の使用速度および第2の使用速度を使用することと、時間窓の間、その最大数に従って第2のデータベース操作を実行することと、第1のデータベース操作を実行することであって、時間窓の間におけるこの第1のデータベース操作の実行は記憶空間の記憶ユニットに限定される、第1のデータベース操作を実行することとを含む、方法。
【0075】
2.節1の方法であって、複数の記憶ユニットの個々の記憶ユニットは、その記憶ユニットが第1のデータベース操作および第2のデータベース操作に割り振られているかどうかを示す状態値と関連付けられ、記憶空間は、第1のデータベース操作および第2のデータベース操作のために割り振られる記憶ユニットを備え、第2のデータベース操作による記憶ユニットの使用は、記憶ユニットが割り振られていないことを示すための状態値の変更を含む、方法。
【0076】
3.節2の方法であって、決定は、第1のデータベース操作が、第2のデータベース操作によって使用される記憶ユニットの割振りを要求することなく、記憶ユニットに対して実施されるように実施される、方法。
【0077】
4.節1から3のいずれかの方法であって、
時間窓の間、第1の使用速度に従って第1のデータベース操作によって使用され得る記憶空間の固定数の自由記憶ユニットを提供することと、
記憶空間の自由記憶ユニットの固定数と総数の差として第1の数を計算することと、
時間窓の間、第2の使用速度に従って第2のデータベース操作によって使用され得る自由記憶ユニットの第2の数を計算することと
をさらに含み、決定される最大数は、第1の数および第2の数のうちの最も小さい数である、方法。
【0078】
5.節4の方法であって、固定数の自由記憶ユニットを備えるように構成されるバッファを提供することをさらに含み、バッファは異なる数の記憶ユニットを備えるように構成される、方法。
【0079】
6.節1、2または3の方法であって、第1の使用速度と第2の使用速度の和として合計速度を決定することと、合計速度に存在する第2の使用速度の端数を決定することと、記憶空間における自由記憶ユニットの総数にその端数を掛け合わせることとをさらに含み、決定される最大数はこの掛け合わせることの結果である、方法。
【0080】
7.節1から6のいずれかの方法であって、第1のデータベース操作の実行は、第2のデータベース操作を開始する前に開始される、方法。
【0081】
8.節1から6のいずれかの方法であって、第1のデータベース操作の実行は、第2のデータベース操作と同時に、または第2のデータベース操作を開始した後に開始される、方法。
【0082】
9.節1から8のいずれかの方法であって、自由記憶ユニットの最大数の決定は、第1のデータベース操作を開始する前に実施される、方法。
【0083】
10.節1から8のいずれかの方法であって、自由記憶ユニットの最大数の決定は、第1のデータベース操作を実行している間に実施される、方法。
【0084】
11.節1から10のいずれかの方法であって、第1の使用速度および第2の使用速度の決定は、データベース・システムにおけるデータベース操作の処理履歴を示すデータの監視を使用して実施される、方法。
【0085】
12.節11の方法であって、第1の使用速度は監視データからの決定済み使用速度の最高速度であり、また、第2の使用速度は監視データからの決定済み使用速度の最低速度である、方法。
【0086】
13.節1から12のいずれかの方法であって、記憶空間は第1のデータベース操作および第2のデータベース操作のために割り振られ、第1のデータベース操作は記憶空間にデータを記憶するデータベース操作であり、また、第2のデータベース操作は記憶空間の記憶ユニットを再割り振りするデータベース操作である、方法。
【0087】
14.節1から13のいずれかの方法であって、記憶空間は表空間であり、また、記憶ユニットはページであり、第1のデータベース操作はバルク・ロード挿入操作であり、また、第2のデータベース操作はページ再利用操作である、方法。
【0088】
15.節14の方法であって、データベース、DB、システムは、Linux、UNIX(R)およびWindows(R)のDB2、DB2 LUWである、方法。
【0089】
16.節1から15のいずれかの方法であって、方法は、第1のデータベース操作および第2のデータベース操作が時間窓の間における同時データベース操作であるという決定に応答して自動的に実施される、方法。
【0090】
本発明の態様は、本明細書においては、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明されている。フローチャート図またはブロック図あるいはその両方の個々のブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実現することができることは理解されよう。
【0091】
本発明は、システム、方法またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有する1つまたは複数のコンピュータ可読記憶媒体を含むことができる。
【0092】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持し、記憶することができる有形デバイスであってもよい。コンピュータ可読記憶媒体は、例えばそれらに限定されないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイスまたはそれらの任意の適切な組合せであってもよい。コンピュータ可読記憶媒体のより特定の例の非網羅的リストは、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチ・カードまたは命令がその上に記録された溝の隆起構造などの機械的符号化デバイス、およびそれらの任意の適切な組合せを含む。本明細書において使用されているコンピュータ可読記憶媒体は、本質的に、無線波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通って伝搬する電磁波(例えば光ファイバ・ケーブルを通過する光パルス)またはワイヤを通して送信される電気信号などの一時的信号として解釈してはならない。
【0093】
本明細書において説明されているコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれの計算/処理デバイスにダウンロードすることができ、あるいはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークまたは無線ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。個々の計算/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラムをそれぞれの計算/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【0094】
本発明の操作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令-セット-アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(R)、C++、等々などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの従来の手続きプログラミング言語、または同様のプログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで作成されたソース・コードあるいはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上ですべてを実行し、ユーザのコンピュータ上で、独立ソフトウェア・パッケージとして一部を実行し、ユーザのコンピュータ上で一部を実行し、かつ、遠隔コンピュータ上で一部を実行し、あるいは遠隔コンピュータまたはサーバ上ですべてを実行することができる。後者のシナリオの場合、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、あるいはこの接続は、外部コンピュータに対して実施することも可能である(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)。いくつかの実施形態では、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機構を個人化することにより、例えばプログラマブル論理回路機構、書替え可能ゲート・アレイ(FPGA)またはプログラマブル論理アレイ(PLA)を含む電子回路機構がコンピュータ可読プログラム命令を実行することができる。
【0095】
本発明の態様は、本明細書においては、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明されている。フローチャート図またはブロック図あるいはその両方の個々のブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実現することができることは理解されよう。
【0096】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに明記されている機能/作用を実現するための手段を作り出すよう、汎用コンピュータ、専用コンピュータまたは他のプログラマブル・データ処理装置のプロセッサに提供して機械を製造することができる。これらのコンピュータ可読プログラム命令は、中に命令を記憶したコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに明記されている機能/作用の態様を実現する命令を含む製品を含むよう、特定の方法で機能するようにコンピュータ、プログラマブル・データ処理装置または他のデバイスあるいはその組合せを導くことができるコンピュータ可読記憶媒体に同じく記憶することができる。
【0097】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに明記されている機能/作用を実現するよう、コンピュータ、他のプログラマブル・データ処理装置または他のデバイスに同じくロードして、そのコンピュータ、他のプログラマブル装置または他のデバイス上で一連の操作ステップを実施させ、それによりコンピュータ実現プロセスを生成することができる。
【0098】
図のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能性および操作を例証している。この点に関し、フローチャートまたはブロック図における個々のブロックは、明記されている1つまたは複数の論理機能を実現するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表すことができる。いくつかの代替実施態様では、ブロックの中で言及されている機能は、図の中で言及されている順序から外れて生じ得る。例えば連続して示されている2つのブロックは、実際、実質的に同時に実行することができ、あるいはこれらのブロックは、時によっては、含まれている機能性に応じて逆の順序で実行することも可能である。ブロック図またはフローチャート図あるいはその両方の個々のブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、明記された機能または作用を実施し、あるいは専用ハードウェアとコンピュータ命令の組合せを実施する専用ハードウェア・ベース・システムによって実現することができることに同じく留意されよう。
図1
図2
図3
図4
図5