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

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

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

特表2024-534812読み出しキャッシュから収集されたインテリジェンスに基づくデータベースへの事前最適化書き込み
<>
  • 特表-読み出しキャッシュから収集されたインテリジェンスに基づくデータベースへの事前最適化書き込み 図1
  • 特表-読み出しキャッシュから収集されたインテリジェンスに基づくデータベースへの事前最適化書き込み 図2
  • 特表-読み出しキャッシュから収集されたインテリジェンスに基づくデータベースへの事前最適化書き込み 図3
  • 特表-読み出しキャッシュから収集されたインテリジェンスに基づくデータベースへの事前最適化書き込み 図4
  • 特表-読み出しキャッシュから収集されたインテリジェンスに基づくデータベースへの事前最適化書き込み 図5
  • 特表-読み出しキャッシュから収集されたインテリジェンスに基づくデータベースへの事前最適化書き込み 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-26
(54)【発明の名称】読み出しキャッシュから収集されたインテリジェンスに基づくデータベースへの事前最適化書き込み
(51)【国際特許分類】
   G06F 16/2455 20190101AFI20240918BHJP
【FI】
G06F16/2455
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024510453
(86)(22)【出願日】2022-08-22
(85)【翻訳文提出日】2024-02-20
(86)【国際出願番号】 EP2022073348
(87)【国際公開番号】W WO2023030950
(87)【国際公開日】2023-03-09
(31)【優先権主張番号】17/462,288
(32)【優先日】2021-08-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.FIREWIRE
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】クリシュナ、ハリハラン
(72)【発明者】
【氏名】ムハンマド、シャジール
(72)【発明者】
【氏名】カイラリ、スディーシュ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA07
(57)【要約】
データベースにエントリを書き込む要求を受け取る手法が提供される。次に、一次キーを含む一部などのエントリの一部がないかデータベース・キャッシュが調査される。この調査に基づいて、この手法はエントリをデータベースに書き込むか否かを判定する。エントリをデータベースに書き込むことができないとの判定に応答して、エラーが返され、エラーはデータベースにはアクセスせず、キャッシュのみにアクセスして返される。一方、エントリをデータベースに書き込むことができるとの判定に応答して、エントリがデータベースに書き込まれる。
【特許請求の範囲】
【請求項1】
プロセッサと前記プロセッサによるアクセスが可能なメモリとを含む情報処理システムによって実装されるコンピュータ実装方法であって、前記コンピュータ実装方法が、
データベースにエントリを書き込む要求を受け取ることと、
前記エントリの一部がないか1つまたは複数のデータベース・キャッシュを調査することと、
前記調査に基づいて前記データベースに前記エントリを書き込むか否かを判定することと、
前記エントリを前記データベースに書き込むことができないとの判定に応答してエラーを返すことであって、前記エラーが前記データベースにアクセスせずに返される、前記エラーを返すことと、
前記エントリを前記データベースに書き込むことができるとの判定に応答して前記エントリを前記データベースに書き込むこととを含む、コンピュータ実装方法。
【請求項2】
前記書き込み要求が挿入要求であり、前記コンピュータ実装方法が、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース読み出しキャッシュを調査することと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在するとの判定に応答して、前記エラーを返すことと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在しないとの判定に応答して、前記エントリを前記データベースに書き込むこととをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記書き込み要求が更新要求であり、前記コンピュータ実装方法が、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース廃棄キャッシュを調査することと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在するとの判定に応答して前記エラーを返すことと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在しないとの判定に応答して前記エントリを前記データベースに書き込むこととをさらに含む、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記要求を受け取る前に、読み出しキャッシュと廃棄キャッシュと書き込みキャッシュとを、前記読み出しキャッシュと廃棄キャッシュと書き込みキャッシュのそれぞれからのキャッシング・データを含むインテリジェント・キャッシュ・グラフ・ビルダー(ICGB)として結合することをさらに含み、前記データベース・キャッシュが前記ICGBで調査される、請求項1ないし3のいずれかに記載のコンピュータ実装方法。
【請求項5】
複製データベース環境において、前記データベースに対応する前記1つまたは複数のデータベース・キャッシュを、それぞれが前記データベースの複製に対応する1つまたは複数の二次データベース・キャッシュと同期させることをさらに含む、請求項1ないし4のいずれかに記載のコンピュータ実装方法。
【請求項6】
前記エラーを返すことが、
前記要求に関連するエントリをデータベース廃棄キャッシュに書き込むことをさらに含む、請求項1ないし5のいずれかに記載のコンピュータ実装方法。
【請求項7】
前記エントリの前記一部が一次キーを含む、請求項1ないし6のいずれかに記載のコンピュータ実装方法。
【請求項8】
1つまたは複数のプロセッサと、
前記プロセッサのうちの少なくとも1つに結合されたメモリと、
前記メモリに記憶され、アクションを行うために前記プロセッサのうちの少なくとも1つによって実行されるコンピュータ・プログラム命令のセットとを含む、情報処理システムであって、
前記アクションが、
データベースにエントリを書き込む要求を受け取ることと、
前記エントリの一部がないか1つまたは複数のデータベース・キャッシュを調査することと、
前記調査に基づいて前記データベースに前記エントリを書き込むか否かを判定することと、
前記エントリを前記データベースに書き込むことができないとの判定に応答してエラーを返すことであって、前記エラーが前記データベースにアクセスせずに返される、前記エラーを返すことと、
前記エントリを前記データベースに書き込むことができるとの判定に応答して前記エントリを前記データベースに書き込むこととを含む、情報処理システム。
【請求項9】
前記書き込み要求が挿入要求であり、前記アクションが、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース読み出しキャッシュを調査することと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在するとの判定に応答して、前記エラーを返すことと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在しないとの判定に応答して、前記エントリを前記データベースに書き込むこととをさらに含む、請求項8に記載の情報処理システム。
【請求項10】
前記書き込み要求が更新要求であり、前記アクションが、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース廃棄キャッシュを調査することと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在するとの判定に応答して前記エラーを返すことと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在しないとの判定に応答して前記エントリを前記データベースに書き込むこととをさらに含む、請求項8または9に記載の情報処理システム。
【請求項11】
前記アクションが、
前記要求を受け取る前に、読み出しキャッシュと廃棄キャッシュと書き込みキャッシュとを、前記読み出しキャッシュと廃棄キャッシュと書き込みキャッシュのそれぞれからのキャッシング・データを含むインテリジェント・キャッシュ・グラフ・ビルダー(ICGB)として結合することをさらに含み、前記データベース・キャッシュが前記ICGBで調査される、請求項8、9または10に記載の情報処理システム。
【請求項12】
前記アクションが、
複製データベース環境において、前記データベースに対応する前記1つまたは複数のデータベース・キャッシュを、それぞれが前記データベースの複製に対応する1つまたは複数の二次データベース・キャッシュと同期させることをさらに含む、請求項8ないし11のいずれかに記載の情報処理システム。
【請求項13】
前記エラーを返すことが、
前記要求に関連するエントリをデータベース廃棄キャッシュに書き込むことをさらに含む、請求項8ないし12のいずれかに記載の情報処理システム。
【請求項14】
前記エントリの前記一部が一次キーを含む、請求項8ないし13のいずれかに記載の情報処理システム。
【請求項15】
情報処理システムによって実行されるとアクションを行う命令を実行するコンピュータ・プログラム・コードを含むコンピュータ可読記憶媒体を含む、コンピュータ・プログラム製品であって、
前記アクションが、
データベースにエントリを書き込む要求を受け取ることと、
前記エントリの一部がないか1つまたは複数のデータベース・キャッシュを調査することと、
前記調査に基づいて前記データベースに前記エントリを書き込むか否かを判定することと、
前記エントリを前記データベースに書き込むことができないとの判定に応答してエラーを返すことであって、前記エラーが前記データベースにアクセスせずに返される、前記エラーを返すことと、
前記エントリを前記データベースに書き込むことができるとの判定に応答して前記エントリを前記データベースに書き込むこととを含む、コンピュータ・プログラム製品。
【請求項16】
前記書き込み要求が挿入要求であり、前記アクションが、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース読み出しキャッシュを調査することと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在するとの判定に応答して、前記エラーを返すことと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在しないとの判定に応答して、前記エントリを前記データベースに書き込むこととをさらに含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
前記書き込み要求が更新要求であり、前記アクションが、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース廃棄キャッシュを調査することと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在するとの判定に応答して前記エラーを返すことと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在しないとの判定に応答して前記エントリを前記データベースに書き込むこととをさらに含む、請求項15または16に記載のコンピュータ・プログラム製品。
【請求項18】
前記アクションが、
前記要求を受け取る前に、読み出しキャッシュと廃棄キャッシュと書き込みキャッシュとを、前記読み出しキャッシュと廃棄キャッシュと書き込みキャッシュのそれぞれからのキャッシング・データを含むインテリジェント・キャッシュ・グラフ・ビルダー(ICGB)として結合することをさらに含み、前記データベース・キャッシュが前記ICGBで調査される、請求項15ないし17のいずれかに記載のコンピュータ・プログラム製品。
【請求項19】
前記アクションが、
複製データベース環境において、前記データベースに対応する前記1つまたは複数のデータベース・キャッシュを、それぞれが前記データベースの複製に対応する1つまたは複数の二次データベース・キャッシュと同期させることをさらに含む、請求項15ないし18のいずれかに記載のコンピュータ・プログラム製品。
【請求項20】
前記エラーを返すことが、
前記要求に関連するエントリをデータベース廃棄キャッシュに書き込むことをさらに含む、請求項15ないし19のいずれかに記載のコンピュータ・プログラム製品。
【請求項21】
前記エントリの前記一部が一次キーを含む、請求項15ないし20のいずれかに記載のコンピュータ・プログラム製品。
【請求項22】
コンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されると、請求項1ないし7のいずれかに記載の方法を実行するようになされたプログラム・コード手段を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュのデータに基づくデータベースの事前最適化に関する。
【背景技術】
【0002】
大規模データは、データベース技術における効率的な記憶要件とアクセス要件の側面に課題をもたらしている。キャッシング戦略はシステム設計とその結果のパフォーマンスに影響を与える。データのキャッシングは、データ・ソースから直接データにアクセスする代わりにデータをローカルで記憶することによって、クエリ・パフォーマンスを向上させることができる。データベース・キャッシュは、従来、要求者がデータベースからデータを読み出したいときに頻繁にアクセスされる読み出しデータの形で主データベースにかかる無用な圧迫を低減することによって、主データベースを補完する。
【発明の概要】
【0003】
一態様によると、プロセッサとプロセッサによるアクセスが可能なメモリとを含む情報処理システムによって実装される、コンピュータ実装方法であって、データベースにエントリを書き込む要求を受け取ることと、エントリの一部がないか1つまたは複数のデータベース・キャッシュを調査することと、その調査に基づいてデータベースにエントリを書き込むか否かを判定することと、データベースにエントリを書き込むことができないとの判定に応答してエラーを返すことであって、エラーがデータベースにアクセスせずに返されるエラーを返すことと、データベースにエントリを書き込むことができるとの判定に応答してデータベースにエントリを書き込むこととを含む、コンピュータ実装方法が提供される。
【0004】
別の態様によると、1つまたは複数のプロセッサと、プロセッサのうちの少なくとも1つに結合されたメモリと、メモリに記憶され、アクションを行うためにプロセッサのうちの少なくとも1つによって実行されるコンピュータ・プログラム命令のセットとを含む情報処理システムであって、アクションが、データベースにエントリを書き込む要求を受け取ることと、エントリの一部がないか1つまたは複数のデータベース・キャッシュを調査することと、その調査に基づいてデータベースにエントリを書き込むか否かを判定することと、データベースにエントリを書き込むことができないとの判定に応答してエラーを返すことであって、エラーがデータベースにアクセスせずに返される、エラーを返すことと、データベースにエントリを書き込むことができるとの判定に応答してデータベースにエントリを書き込むこととを含む、情報処理システムが提供される。
【0005】
別の態様によると、情報処理システムによって実行されるとアクションを行う命令を実行するコンピュータ・プログラム・コードを含むコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、アクションが、データベースにエントリを書き込む要求を受け取ることと、エントリの一部がないか1つまたは複数のデータベース・キャッシュを調査することと、その調査に基づいてデータベースにエントリを書き込むか否かを判定することと、データベースにエントリを書き込むことができないとの判定に応答してエラーを返すことであって、エラーがデータベースにアクセスせずに返される、エラーを返すことと、データベースにエントリを書き込むことができるとの判定に応答してデータベースにエントリを書き込むこととを含む、コンピュータ・プログラム製品が提供される。
【0006】
データベースにエントリを書き込む要求を受け取る手法が提供される。次に、データベース・キャッシュが、一次キーを含む一部などそのエントリの一部がないか調査される。その調査に基づいて、この手法はデータベースにエントリを書き込むか否かを判定する。データベースにエントリを書き込むことができないとの判定に応答して、エラーが返され、エラーはデータベースにアクセスせずにキャッシュのみにアクセスして返される。一方、データベースにエントリを書き込むことができるとの判定に応答して、データベースにエントリが書き込まれる。
【0007】
上記は概要であり、したがって当然ながら、単純化、一般化、および詳細の省略が含まれる。したがって、この概要が例示に過ぎず、いかなる点でも限定であることは意図されていないことが当業者にはわかるであろう。その他の態様、発明の特徴、および利点は、以下に記載する非限定的な詳細な説明で明らかになるであろう。
【0008】
以下、本発明の好ましい実施形態について例としてのみ、以下の図面を参照しながら説明する。
【図面の簡単な説明】
【0009】
図1】本発明の好ましい実施形態による、本明細書に記載の方法を実装可能なデータ処理システムを示すブロック図である。
図2】ネットワーク化環境で動作する多様な情報処理システム上で本明細書に記載の方法を行うことができることを示す、本発明の好ましい実施形態による図1に示す情報処理システム環境の拡張を示す図である。
図3】本発明の好ましい実施形態により、データベースへの書き込みが分析され、いくつかのエラーが実際のデータベースにアクセスせずに拒否されることを示す図である。
図4】本発明の好ましい実施形態により、様々なデータベース・キャッシュに基づいてインテリジェンス・キャッシュ・グラフ・ビルダーが構築される様子を示す図である。
図5】本発明の好ましい実施形態による、複製されたデータベースで動作するキャッシュから収集されたインテリジェンスに基づくデータベースへの事前最適化書き込みを示す図である。
図6】本発明の好ましい実施形態による、1つまたは複数のデータベース・キャッシュから収集されたインテリジェンスを使用してデータベース要求を処理するために行われるステップを示すフローチャートである。
【発明を実施するための形態】
【0010】
図1図6に、1つまたは複数のキャッシュにおいて入手可能なデータに基づいてデータベース書き込み操作を事前最適化する手法を示す。読み出し操作が行われるときは常に、従来のデータベース実装戦略では、「読み出し」キャッシュと一般に呼ばれるキャッシュにデータが入れられる。この手法は、書き込み操作を最適化するためにこのキャッシュからデータを使用する。この手法は、要求されたデータベース書き込み操作(入来した(incoming)挿入/更新要求)を判定し、自動的に評価するために既存のデータベース・キャッシングを使用するインテリジェンス・キャッシュ・グラフ・ビルダー(ICBG)コンポーネントを構築する。評価は、関連キャッシュ内で見つかったデータに基づく。書き込み操作が無効であるとわかった場合、データベースに実際にアクセスせずに要求を廃棄することができる。
【0011】
この手法の方法は、反復または不適切なデータ挿入/更新に対処し、それらを処理する代わりに無効な要求をプリエンプティブに廃棄する。たとえば、挿入ステートメントの前に、この手法は一次キー(主識別子)がすでに存在するか否かを判定する調査を行う。すでに存在する場合、この手法はデータベースに実際にアクセスせず、そのような挿入を実際のデータベース上で行うことを試みずに、エラーを返す。
【0012】
一実施形態では、インテリジェンス・キャッシュ・ビルダー・コンポーネント(ICGB)は、基本的に、すべての既存のキャッシュ・ヒットを、テナント・レベルのオブジェクトの読み取れる理解可能なグラフに編成する、既存のL1、L2およびL3キャッシュ技術への追加機能である。このデータは、さらに、情報のインメモリ・ブロックに細分化され、インメモリ・ブロックはアクセス数に基づいて自己構築され、入来書き込み操作のさらなる分析のために使用される。このようにして、この手法は、書き込み操作などのより高い認可(またはより特権的)操作を最適化するために、読み出し操作などのより低い認可レベルの操作時に収集されたインテリジェンスを使用する。
【0013】
従来のデータベース管理システム(DBMS)では、アプリケーションにアクセスするユーザはDB走査を必要とし、これには複数のDBテーブルへのアクセスが含まれ、典型的には本質的に「読み出し」であるこれらのアクセスは、広範なICGBベースのグラフ・インフラストラクチャを構築するために使用され、この情報はさらに書き込みステートメントを処理するために使用される。ICGBは、読み出しアクセス時に構築されるだけではなく、書き込み操作を使用して質が高められる。エンド・ユーザからデータベース書き込みが要求される場合、その書き込み(挿入/更新)の成功または失敗もICGBに取り込まれ、この情報が将来の書き込み操作(挿入/更新)に使用される。
【0014】
以下の実施例は、本明細書に記載の手法がDBMSにおいて有利に使用される、考えられる使用事例を示す。この実施例では、(1)既存のユーザがアプリケーションへのログインを要求する。ログイン要求は、データベースを調査してユーザ識別子(たとえばユーザID=UID1000)が存在するか否かを確認するために処理される。(2)パスワードの妥当性が検証されると、ユーザはそのサイトへのアクセスが許可される。(3)ユーザ・テーブルがUID1000というユーザ識別子を有すると示している新たなグラフ・エントリによって読み出しキャッシュが更新(作成)される。(4)新たなユーザ登録要求が入来し、その際、ユーザがUID1000という新たなユーザ識別子を作成しようとする。既存のユーザ・テーブル・グラフが(読み出しキャッシュから)使用され、識別子UID1000を有するユーザがデータベース・テーブルにすでに存在するというエラーが出される。このエラーは、実際のデータベースにはまったくアクセスせずに、SQL「選択」ステートメントも使用せずに発生する。同様に、非SQLデータベースも、読み出しキャッシュを使用し、書き込み操作(たとえば更新または挿入など)をプリエンプティブに最適化するためにこの手法(たとえば既存のJava(R)(TM)スクリプト表記(JSON)エントリなどがないか調査する)を使用することができる。(Java(R)およびすべてのJava(R)ベースの商標およびロゴはオラクルまたはその系列会社の商標または登録商標である。)。
【0015】
挿入などの書き込み操作を廃棄するプロセスでは、この手法は、さらにデータベース・アクセスを生じさせることになったかも知れないキャッシュ挿入を暗黙的に回避する。一実施形態では、複製されたデータベースの様々な複製間の分散読み出しキャッシュがある。これは、DBの一体部分として、または外部サービスとして実装されてもよい。
【0016】
外部のエンティティがデータベースからデータを読み出そうと試み、その操作が成功の場合、システムがデータに二重性がないか確認することを可能にするそのデータに関するメタデータ(たとえば一次キー、インデックスなど)がキャッシュに記憶される。分散データベース環境では、様々な複製の様々な読み出しキャッシュを同期させることができる。このようにして、1つの複製がまだ何も読み出していない場合であっても、他の複製において行われたすべての成功裏の検索に関する知識を得ていることになる。
【0017】
この手法では、削除操作も扱われる。削除が成功すると、削除されたエントリの読み出し、書き込みおよび廃棄キャッシュ・エントリが除去され、分散環境では様々な複製がキャッシュを同期させることになる。外部のエンティティがデータベースからエントリを削除または除去しようと試み、その操作が成功すると、削除されたエントリに対応するエントリを除去するために、読み出し、廃棄および書き込みキャッシュが更新される。
【0018】
この手法は、以下のような新規な発想に基づく。書き込み操作は、初期段階においてデータが廃棄することができる可能性を識別する。書き込み操作は、読み出しキャッシュなどの異種操作によって更新されたすべてのキャッシュを調査する。読み出しキャッシュが、ユーザが作成しようとしているエントリと類似したエントリを有する場合、システムはこのエントリをデータベースに書き込むことを試みず、代わりにこの手法はデータベースにはまったくアクセスせずにこの初期段階でその操作を拒否する。分散データベース環境では、すべての読み出しキャッシュ複製が同期した状態に維持されるため、比較的新しい複製であっても他の複製から迅速にインテリジェンスを取得することになる。
【0019】
読み出しキャッシュがヒット・ミスの場合、システムは廃棄キャッシュを検索する。廃棄キャッシュは、最近の期間中にシステムによって「廃棄」または「拒否」されたすべての書き込みで更新される。システムが廃棄キャッシュ内で一致するデータを見つけた場合、システムはより大きくて扱いにくい「書き込みキャッシュ」を検索する代わりに、および、実際のデータベースでデータを検索する代わりに、プリエンプティブを行う。読み出しキャッシュと廃棄キャッシュの両方がヒット・ミスの場合、この手法はすべての書き込みエントリを含む書き込みキャッシュを検索し、これもミスの場合、システムは実際のデータベースにアクセスすることになる。一実施形態では、この手法は、システム管理者が手動またはプログラミングにより、インテリジェンス拒否プロセスを行わせるように更新することができる「カスタム・キャッシュ」も含む。
【0020】
以下の詳細な説明は上記の概要に全般的に従い、さらに必要に応じて様々な態様および実施形態の定義を説明し、敷衍する。このために、この詳細な説明はまず、好ましい実施形態により本開示に関連するソフトウェアまたはハードウェアあるいはその両方の技術を実装するのに適した図1のコンピューティング環境について記載する。図2には、複数の個別デバイスにわたって最新のコンピューティング技術を実施可能であることを強調するために、本発明の好ましい実施形態によるネットワーク化環境が基本コンピューティング環境の拡張として示されている。
【0021】
図1は、本明細書に記載のコンピューティング動作を行うことができるコンピューティング・システムの簡略化された実施例であるデバイスである、情報処理システム100を示す。情報処理システム100は、プロセッサ・インターフェース・バス112に結合された1つまたは複数のプロセッサ110を含む。プロセッサ・インターフェース・バス112は、プロセッサ110を、メモリ・コントローラ・ハブ(MCH)とも呼ばれるノースブリッジ115に接続する。ノースブリッジ115は、システム・メモリ120に接続し、プロセッサがシステム・メモリにアクセスするための手段を提供する。グラフィックス・コントローラ125もノースブリッジ115に接続する。一実施形態では、PCIエクスプレス・バス118がノースブリッジ115をグラフィックス・コントローラ125に接続する。グラフィックス・コントローラ125は、コンピュータ・モニタなどのディスプレイ・デバイス130に接続する。
【0022】
ノースブリッジ115とサウスブリッジ135は、バス119を使用して互いに接続する。一実施形態では、バスは、ノースブリッジ115とサウスブリッジ135との間で各方向に高速でデータを転送するダイレクト・メディア・インターフェース(DMI)バスである。別の実施形態では、ペリフェラル・コンポーネント・インターコネクト(PCI)バスがノースブリッジとサウスブリッジとを接続する。サウスブリッジ135は、I/Oコントローラ・ハブ(ICH)とも呼ばれ、一般にノースブリッジによって提供される機能よりも低速で動作する機能を実装するチップである。サウスブリッジ135は、典型的には、様々なコンポーネントを接続するために使用される様々なバスを提供する。これらのバスには、たとえば、PCIバスおよびPCIエクスプレス・バス、ISAバス、システム・マネージメント・バス(SMBusまたはSMB)、またはロー・ピン・カウント(LPC)バスあるいはこれらの組合せが含まれる。LPCバスは、ブートROM196および(「スーパーI/O」チップを使用する)「レガシー」I/Oデバイスなどの、低帯域幅デバイスを接続することが多い。「レガシー」I/Oデバイス(198)には、たとえば、シリアル・ポートおよびパラレル・ポート、キーボード、マウス、またはフロッピィ・ディスク・コントローラあるいはこれらの組合せが含まれ得る。LPCバスは、サウスブリッジ135をトラステッド・プラットフォーム・モジュール(TPM)195にも接続する。サウスブリッジ135に含まれることが多いその他のコンポーネントには、ダイレクト・メモリ・アクセス(DMA)コントローラ、プログラマブル割り込みコントローラ(PIC)、およびバス184を使用してサウスブリッジ135をハード・ディスク・ドライブなどの不揮発性ストレージ・デバイス185に接続するストレージ・デバイス・コントローラが含まれる。
【0023】
ExpressCard155は、ホットプラグ可能なデバイスを情報処理システムに接続するスロットである。ExpressCard155は、ユニバーサル・シリアル・バス(USB)とPCIエクスプレス・バスの両方を使用してサウスブリッジ135に接続するため、PCIエクスプレスとUSBの両方の接続をサポートする。サウスブリッジ135は、USBに接続するデバイスにUSB接続を提供するUSBコントローラ140を含む。これらのデバイスには、ウェブカム(カメラ)150と赤外線(IR)受信器148とキーボードおよびトラックパッド144と、無線パーソナル・エリア・ネットワーク(PAN)を可能にするBluetoothデバイス146とが含まれる。USBコントローラ140は、マウス、取り外し型不揮発性ストレージ・デバイス145、モデム、ネットワーク・カード、ISDNコネクタ、ファックス、プリンタ、USBハブおよび多くのその他の種類のUSB接続デバイスなど、その他の様々なUSB接続デバイス142へのUSB接続も提供する。取り外し型不揮発性ストレージ・デバイス145がUSB接続デバイスとして示されているが、取り外し型不揮発性ストレージ・デバイス145は、Firewireインターフェースなど異なるインターフェースを使用して接続されてもよい。
【0024】
PCIバスまたはPCIエクスプレス・バス172を介して、無線ローカル・エリア・ネットワーク(LAN)デバイス175がサウスブリッジ135に接続する。LANデバイス175は、典型的には、情報処理システム100と別のコンピュータ・システムまたはデバイスとの間の無線通信のためにすべて同じプロトコルを使用する無線変調技術のIEEE.802.11規格のうちの1つを実装する。加速度計180がサウスブリッジ135に接続し、デバイスの加速または動きを測定する。光ストレージ・デバイス190がシリアルATA(SATA)バス188を使用してサウスブリッジ135に接続する。シリアルATAアダプタとデバイスが高速シリアル・リンクを介して通信する。シリアルATAバスは、サウスブリッジ135を、ハード・ディスク・ドライブなどの他の形態のストレージ・デバイスにも接続する。サウンド・カードなどのオーディオ回路160が、バス158を介してサウスブリッジ135に接続する。オーディオ回路160は、オーディオ・ラインインおよび光デジタル・オーディオ入力ポート162、光デジタル出力およびヘッドフォン・ジャック164、内蔵スピーカ166、および内蔵マイクロフォン168などの機能も提供する。Ethernet(R)コントローラ170が、PCIバスまたはPCIエクスプレス・バスなどのバスを使用してサウスブリッジ135に接続する。Ethernet(R)コントローラ170は、情報処理システム100をローカル・エリア・ネットワーク(LAN)、インターネットおよびその他のパブリックおよびプライベート・コンピュータ・ネットワークなどのコンピュータ・ネットワークに接続する。
【0025】
図1は1つの情報処理システムを示しているが、情報処理システムは多くの形態をとり得るデバイスであってもよい。たとえば、情報処理システムは、デスクトップ・デバイス、サーバ・デバイス、携帯型デバイス、ラップトップ・デバイス、ノートブック・デバイス、またはその他のフォーム・ファクタ・デバイスの形態をとってもよい。さらに、情報処理システムは、パーソナル・デジタル・アシスタント(PDA)、ゲーム・デバイス、ATM機、携帯電話デバイス、通信デバイス、またはプロセッサとメモリとを含むその他のデバイスなど、他のフォーム・ファクタをとってもよい。
【0026】
セキュリティ機能を提供するための、図1に示し、本明細書に記載するトラステッド・プラットフォーム・モジュール(TPM195)は、ハードウェア・セキュリティ・モジュール(HSM)の一例に過ぎない。したがって、本明細書に記載され、特許請求されるTPMは、「Trusted Platform Module (TPM) Specification Version 1.2」という名称のトラステッド・コンピューティング・グループ(TCG)規格に準拠するハードウェア・セキュリティ・デバイスを含むがこれには限定されない任意の種類のHSMを含む。TPMは、図2に概略が示されているような任意の数の情報処理システムに組込むことができる、ハードウェア・セキュリティ・サブシステムである。
【0027】
図2に、本明細書に記載の方法がネットワーク化環境で動作する様々な種類のデバイス上で実施可能であることを示すために、本発明の好ましい実施形態による図1に示す情報処理システム環境の拡張を示す。情報処理システムの種類は、ハンドヘルド・コンピュータ/携帯電話210などの小型ハンドヘルド・デバイスからメインフレーム・コンピュータ270などの大型メインフレーム・システムまでの範囲にわたる。ハンドヘルド・コンピュータ210の例には、パーソナル・デジタル・アシスタント(PDA)、MP3プレイヤなどの個人用娯楽デバイス、携帯型テレビおよびコンパクト・ディスク・プレイヤが含まれる。情報処理システムのその他の例には、ペンまたはタブレットデバイス220、ラップトップまたはノートブック・デバイス230、ワークステーション・デバイス240、パーソナル・コンピュータ・システム・デバイス250、およびサーバ・デバイス260が含まれる。図2に個別に示されていないその他の種類の情報処理システム・デバイスは、情報処理システム・デバイス280によって表されている。図のように、コンピュータ・ネットワーク200を使用して様々な情報処理システム・デバイスを一緒にネットワーク化することができる。様々な情報処理システムを相互接続するために使用可能なコンピュータ・ネットワークの種類には、ローカル・エリア・ネットワーク(LAN)、無線ローカル・エリア・ネットワーク(WLAN)、インターネット、公衆交換電話網(PSTN)、その他の無線ネットワーク、および、情報処理システムを相互接続するために使用可能な任意のその他のネットワーク・トポロジが含まれる。情報処理システムの多くは、ハード・ドライブまたは不揮発性メモリあるいはその両方などの不揮発性データ・ストアを含む。図2に示す情報処理システムの一部は、別々の不揮発性データ・ストアを示している(サーバ260は不揮発性データ・ストア265を使用し、メインフレーム・コンピュータ270は不揮発性データ・ストア275を使用し、情報処理システム280は不揮発性データ・ストア285を使用する)。不揮発性データ・ストアは、様々な情報処理システムの外部にあるコンポーネントとすることができ、または情報処理システムのうちの1つの内部にあってもよい。さらに、取り外し型不揮発性ストレージ・デバイス145を情報処理システムのUSBポートまたはその他のコネクタに接続するなど、様々な技術を使用して、取り外し型不揮発性ストレージ・デバイス145を2つ以上の情報処理システムで共用することができる。
【0028】
図3は、本発明の好ましい実施形態による、データベースへの書き込みが分析され、いくつかのエラーが実際のデータベースにアクセスせずに拒否されることを示す図である。図を簡単にするために、データベース読み出し操作と書き込み操作のみが図示されている。データベース要求者300が、データベース360からのデータの取り出し/データベース360のデータの更新の要求を出す。データベース読み出し要求は、情報が1つまたは複数のデータベース・キャッシュ340からより容易に入手可能でない場合にデータベース360からデータを取り出すデータベース読み出し操作320によって処理される。データベース読み出し操作320は、要求されているデータベース・エントリを求めてキャッシュ340を調査する。キャッシュ内でそのエントリが見つかった場合、実際にデータベース360にアクセスする必要なしにそのエントリが要求者300に返される。要求されたエントリがキャッシュ340内で見つからない場合、データベース読み出し操作は、要求されたデータをデータベース360から取り出し、取り出されたエントリ・データでキャッシュ340を更新する。キャッシュの更新は、同じエントリを求める後続の要求が受け取られた場合にデータベースではなくキャッシュからより高速にアクセスするための備えとなる。
【0029】
データベース書き込み要求(更新または挿入)はデータベース書き込み操作380によって処理される。データベース書き込み操作も、データベースにエントリがすでに存在するか否かを判定するためにキャッシュ340を調査する。エントリがすでに存在する場合、更新操作は続行可能であるが、挿入操作はエラーを返す。この場合、実際にデータベース360にアクセスする必要がまったくなく挿入操作のエラーが要求者300に返される。同様に、エントリがデータベースに存在しない場合(たとえば前に削除されたなど)、挿入操作は続行可能であるが、更新操作は、更新するエントリがデータベースにないため、要求者300に対してエラーを返させる。この場合も、このエラーは実際にデータベース360にアクセスする必要がまったくなしに要求者に返される。
【0030】
図4は、本発明の好ましい実施形態による、様々なデータベース・キャッシュにおけるデータに基づいてインテリジェント・キャッシュ・グラフ・ビルダー(ICGB)が構築される様子を示す図である。ICGBは、基本的に、複数のキャッシュを調査する必要なしに、書き込み操作(挿入および更新)がないかICGBキャッシュを調査することができるように、様々なキャッシュをインテリジェントに組み合わせたものである。400で、プロセスはユーザ要求を受け取る。410で、ユーザ要求がアプリケーション・サーバ要求として形成される。アプリケーション・アクセスが典型的なデータベース・アクセス要求(たとえばデータベース読み出しなど)に変換される。420で、インテリジェント・キャッシュ・グラフ・ビルダー(ICGB)が動作し、プロセスは、要求に関連したデータがないかICGBデータ・ストア430を調査し、更新し、必要な場合は、データベース360にアクセスしてデータベースでデータの読み出し、書き込みおよび削除を行う。ICGBデータは、データベース360へのアクセスからのキャッシング・データを含み、キャッシング・データは、複数のキャッシュを調査せずに個別に調査することができるICGBデータ430としてインテリジェントに結合される。例示のICGBフローがボックス440に示されている。ステップ450で、プロセスは、ICGBプロセッサ460に送信される選択クエリを受け取る。決定470において、ICGBプロセスはキャッシュ340を更新するためのICGBテナントの種類を判定する。テナントがT1キャッシュ・エントリである場合、決定470は「T1」分岐に分岐し、T1キャッシュ480を更新する。一方、テナントがT2キャッシュ・エントリである場合、決定470は「T2」分岐に分岐し、T2キャッシュ490を更新する。
【0031】
図5は、本発明の好ましい実施形態による、複製されたデータベースで動作するキャッシュから収集されたインテリジェンスに基づく、データベースへの事前最適化された書き込みを示す図である。データベース要求者500が、処理されるデータベース要求(読み出し、書き込み、削除など)を出し、データベース360に対応するキャッシュ340(読み出しキャッシュ510、廃棄キャッシュ520、書き込みキャッシュ530など)がそれに応じて更新される。
【0032】
複製データベース環境では、キャッシュ340に加えられた変更が、データベース580の複製されたコピーに対応するキャッシュ540(読み出しキャッシュ550、廃棄キャッシュ560、書き込みキャッシュ570など)と同期される。このようにして、複製されたデータベース580に対して第2の要求者が「挿入」要求などのデータベース要求を行った場合、複製されたキャッシュ540が調査される。これらの複製されたキャッシュはキャッシュ340と同期されているため、プロセスはデータベース360に対して行われたデータベース操作を利用することができる。
【0033】
上記の「挿入」実施例では、データベース360にエントリがすでに書き込まれていた場合、挿入活動はキャッシュ340と同期キャッシュ540の両方に反映されることになる。したがって、第2の要求者が複製されたデータベース580に対して同じエントリの挿入要求を行うと、複製されたデータベース580にはまったくアクセスせずに複製されたキャッシュ540を調査することによってエラーが返される。これは、挿入操作が元々データベース360で行われ、複製されたデータベース580では行われなかったとしても起こる。
【0034】
図6は、本発明の好ましい実施形態による、1つまたは複数のデータベース・キャッシュから収集されたインテリジェンスを使用してデータベース要求を処理するために行われるステップを示すフローチャートである。図6の処理は600で開始し、データベースに対するデータの読み出し、書き込みおよび削除を含む最適化されたデータベース操作を行うプロセスによって行われるステップを示す。ステップ604で、プロセスは、アプリケーション、ユーザ、データベース・プロセスなどのエンティティから要求を受け取る。プロセスは、どのような種類の操作が要求されているかを判定する(決定608)。操作の種類は、「読み出し」操作(処理が「読み出し」分岐に分岐する)、「書き込み」操作(処理が「書き込み」分岐に分岐する)、または「削除」操作(処理が「削除」分岐に分岐する)とすることができる。
【0035】
操作が「読み出し」操作である場合、決定608は「読み出し」分岐に分岐し、ステップ612から628を行う。ステップ612で、プロセスは、データベース「読み出し」キャッシュにそのエントリがないか調査する。プロセスは、「読み出し」キャッシュでエントリが見つかったか否かを判定する(決定616)。エントリが見つかった場合、決定616は「はい」分岐に分岐し、ステップ620でプロセスは読み出しキャッシュから要求されたエントリを取り出す。一方、データベース読み出しキャッシュでエントリが見つからなかった場合、決定616は「いいえ」分岐に分岐し、ステップ624および628を行う。ステップ624で、プロセスは要求されたエントリをデータベースから取り出し、ステップ628で、プロセスは、次回そのエントリが要求されたときに読み出しキャッシュでそのデータが入手可能となるように、データベース読み出しキャッシュをそのエントリ・データで更新する。
【0036】
操作が「削除」操作である場合、決定608は「削除」分岐に分岐し、ステップ632から640を行う。ステップ632で、プロセスは実際のデータベースからエントリを削除する。ステップ636で、プロセスはデータベース・キャッシュ(たとえばデータベース読み出しキャッシュ、データベース書き込みキャッシュなど)からエントリ・データがあれば削除する。一実施形態では、ステップ640で、プロセスはデータベースから削除されたエントリを追跡するために使用される特別な削除キャッシュを更新する。この実施形態では、削除キャッシュは、そのエントリがデータベースから削除されたことを反映するように更新される。
【0037】
操作が「書き込み」操作である場合、決定608は「書き込み」分岐に分岐し、ステップ644から695を行う。プロセスは、どのような種類の操作が要求されているかを判定する(決定644)。書き込み要求が「挿入」型書き込み操作である場合、決定644は「挿入」分岐に分岐し、ステップ648から668を行う。それに対して、書き込み要求が「更新」型書き込み操作である場合、決定644は「更新」分岐に分岐し、ステップ672から695を行う。
【0038】
ステップ648から668は、挿入型書き込み操作のために行われる。ステップ648で、プロセスは、データベースにエントリ・キーがすでに存在していないかキャッシュ(たとえばデータベース読み出しキャッシュなど)を調査する。キャッシュに基づいて、プロセスは、そのエントリがデータベースにすでに存在しており、それによってデータベース保全性規則に違反する同じ一次キーを有する2つのエントリが存在することになるためにデータベースへの同じエントリの挿入を不可能にしているか否かを判定する(決定652)。エントリがデータベースにすでに存在している場合、決定652は「はい」分岐に分岐し、ステップ656および660を行う。一方、エントリがデータベースにまだ存在していない場合、決定652は「いいえ」分岐に分岐し、ステップ664および668を行う。
【0039】
ステップ656および660は、キャッシュ内で見つかった情報に基づいてデータベースにエントリがすでに存在している場合に行われる。ステップ656で、プロセスは、要求者にエラーを返し、エラーは実際のデータベースにはまったくアクセスせず、キャッシュのみにアクセスして返される。ステップ660で、プロセスは「廃棄」キャッシュを更新する。廃棄キャッシュは、データベースへの書き込み時に生じたエラーを記録するために使用される。このキャッシュは、読み出しキャッシュより小さい可能性が高いため、そのエントリについてエラーが以前に発生しているか否かを特定するために読み出しキャッシュの前に調査することができる。
【0040】
ステップ664および668は、データベースにそのエントリがまだ存在していない場合に行われる。ステップ664で、プロセスは実際のデータベースにエントリを挿入し、ステップ668で、プロセスは1つまたは複数のキャッシュ(たとえば読み出しキャッシュ)をエントリ・データで更新する。
【0041】
ステップ672から695は更新型書き込み操作のために行われる。ステップ672で、プロセスは、エントリの一部(たとえば一次キーなど)が以前に削除されていないかキャッシュを調査する。プロセスは、データベースにそのエントリがもはや存在せず、それによって更新を不可能にしているか否かを判定する(決定676)。エントリがデータベースにもはや存在しない場合、決定676は「はい」分岐に分岐し、ステップ680および684を行う。一方、エントリがデータベースに存在する場合、決定676は「いいえ」分岐に分岐し、ステップ688および695を行う。
【0042】
ステップ680および684は、データベースにエントリがもはや存在せず、それによってエントリの更新が不可能な場合に行われる。ステップ680で、プロセスはデータベースには実際にまったくアクセスせずに、要求者にエラーを返す。ステップ684で、プロセスは、書き込み操作時に発生したエラーを反映するように「廃棄」キャッシュを更新する。
【0043】
ステップ688および695は、エントリがデータベースに存在し、それによってエントリの更新が可能である場合に行われる。ステップ688で、プロセスは実際のデータベース内のエントリを更新する。ステップ695で、プロセスは1つまたは複数のキャッシュ(たとえばデータベース読み出しキャッシュなど)をエントリ・データで更新する。
【0044】
本明細書で使用されている用語は特定の実施形態について説明することのみを目的としており、本発明の限定であることは意図されていない。本明細書で使用されている単数形の「a」、「an」および「the」は、文脈が明確に他の解釈を示していない限り複数形も含むことが意図されている。また、「含んでいる(comprises)」または「含む(comprising)」という用語あるいはその両方は、本明細書で使用されている場合、記載されている特徴、整数、ステップ、操作、要素またはコンポーネントあるいはこれらの組合せの存在を指定しているが、1つまたは複数の他の特徴、整数、ステップ、操作、要素、コンポーネントまたはこれらのグループあるいはこれらの組合せの存在も追加も排除しないことを理解されたい。
【0045】
以下の特許請求の範囲におけるすべてのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、行為および同等物は、機能を他の特許請求される要素と組み合わせて実行するための任意の構造、材料または行為を、具体的に特許請求されているものとして含むことが意図されている。詳細な説明を例示のために示したが、網羅的であること、または開示されている形態の本発明に限定されることは意図していない。当業者には、本発明の範囲および思想から逸脱することなく多くの修正および変形が明らかであろう。実施形態は、本発明の原理および実際の適用を最もよく説明するためと、当業者が、企図された特定の用途に適するように様々な修正を加えた様々な実施形態のために本発明を理解することができるようにするために、選択され、記載されている。
【0046】
当業者にはわかるように、態様はシステム、方法またはコンピュータ・プログラム製品として実施可能である。したがって、態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または本明細書ですべてが「回路」、「モジュール」または「システム」として総称されている場合があるソフトウェア態様とハードウェア態様とを組み合わせた実施形態の形態をとることができる。また、本開示の態様は、コンピュータ可読プログラム・コードが具現化された1つまたは複数のコンピュータ可読媒体で実施されたコンピュータ・プログラム製品の形態をとることもできる。
【0047】
1つまたは複数のコンピュータ可読記憶媒体の任意の組合せを使用することができる。コンピュータ可読記憶媒体は、たとえば、これらには限らないが、電子、磁気、光、電磁、赤外線または半導体システム、装置またはデバイス、あるいはこれらの任意の適切な組合せであってもよい。コンピュータ可読記憶媒体のより具体的な例(非網羅的な列挙)には、1本または複数のワイヤを有する電気接続、可搬型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、可搬型コンパクト・ディスク読み出し専用メモリ(CD-ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の適切な組合せが含まれるであろう。本明細書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置またはデバイスによる使用、またはこれらと関連した使用のためのプログラムを含むかまたは記憶することができる、任意の有形媒体とすることができる。本明細書で使用されている、コンピュータ可読記憶媒体は一過性の信号を含まない。
【0048】
本開示の態様の動作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラム言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書くことができる。プログラム・コードは、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータまたはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。
【0049】
本開示の態様について、方法、装置(システム)、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら以下で説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ・プログラム命令によって実施可能であることを理解されたい。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで指定されている機能/動作を実装する手段を形成するようにマシンを実現するために、汎用コンピュータ、専用コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサに供給することができる。
【0050】
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックで指定されている機能/動作の態様を実装する命令を含む製造品を実現するように、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスに対して特定の方式で機能するように指示することができるコンピュータ可読媒体に記憶されてもよい。
【0051】
コンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル装置上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで指定されている機能/動作を実装するプロセスを提供するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップが実行されてコンピュータ実装プロセスを実現するようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされてもよい。
【0052】
特定の実施形態を示し、説明したが、当業者には、本明細書の教示に基づいて、本開示およびそのより広い態様から逸脱することなく変更および修正を加えることができることは明らかであろう。したがって、添付の特許請求の範囲は、すべてのそのような変更および修正が本開示の真の思想および範囲内にあるものとして、その範囲内に包含するものとする。また、本発明は添付の特許請求の範囲によってのみ定義されるものと理解されたい。特定の数の導入請求項要素が意図されている場合、そのような意図はその請求項に明示的に記載され、そのような記載がない場合、そのような限定は存在しないことが、当業者にはわかるであろう。非限定的な例では、理解の助けとして、添付の特許請求の範囲は、請求項要素を導入するために「少なくとも1つの」および「1つまたは複数の」という導入語句の使用を含む。しかし、そのような語句の使用は、不定冠詞「a」または「an」による請求項要素の導入が、そのような導入請求項要素を含む特定の請求項を、同じ請求項が「1つまたは複数の」または「少なくとも1つの」という導入語句と「a」または「an」などの不定冠詞とを含む場合であっても、そのような要素を1つのみ含む他の請求項に限定することを含意するものと解釈されるべきではない。同じことは請求項における定冠詞の使用についても適用される。
図1
図2
図3
図4
図5
図6
【手続補正書】
【提出日】2024-08-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサと前記プロセッサによるアクセスが可能なメモリとを含む情報処理システムによって実装されるコンピュータ実装方法であって、前記コンピュータ実装方法が、
データベースにエントリを書き込む要求を受け取ることと、
前記エントリの一部がないか1つまたは複数のデータベース・キャッシュを調査することと、
前記調査に基づいて前記データベースに前記エントリを書き込むか否かを判定することと、
前記エントリを前記データベースに書き込むことができないとの判定に応答してエラーを返すことであって、前記エラーが前記データベースにアクセスせずに返される、前記エラーを返すことと、
前記エントリを前記データベースに書き込むことができるとの判定に応答して前記エントリを前記データベースに書き込むこととを含む、コンピュータ実装方法。
【請求項2】
前記書き込み要求が挿入要求であり、前記コンピュータ実装方法が、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース読み出しキャッシュを調査することと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在するとの判定に応答して、前記エラーを返すことと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在しないとの判定に応答して、前記エントリを前記データベースに書き込むこととをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記書き込み要求が更新要求であり、前記コンピュータ実装方法が、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース廃棄キャッシュを調査することと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在するとの判定に応答して前記エラーを返すことと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在しないとの判定に応答して前記エントリを前記データベースに書き込むこととをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記要求を受け取る前に、読み出しキャッシュと廃棄キャッシュと書き込みキャッシュとを、前記読み出しキャッシュと廃棄キャッシュと書き込みキャッシュのそれぞれからのキャッシング・データを含むインテリジェント・キャッシュ・グラフ・ビルダー(ICGB)として結合することをさらに含み、前記データベース・キャッシュが前記ICGBで調査される、請求項1に記載のコンピュータ実装方法。
【請求項5】
複製データベース環境において、前記データベースに対応する前記1つまたは複数のデータベース・キャッシュを、それぞれが前記データベースの複製に対応する1つまたは複数の二次データベース・キャッシュと同期させることをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記エラーを返すことが、
前記要求に関連するエントリをデータベース廃棄キャッシュに書き込むことをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記エントリの前記一部が一次キーを含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
1つまたは複数のプロセッサと、
前記プロセッサのうちの少なくとも1つに結合されたメモリと、
前記メモリに記憶され、アクションを行うために前記プロセッサのうちの少なくとも1つによって実行されるコンピュータ・プログラム命令のセットとを含む、情報処理システムであって、
前記アクションが、
データベースにエントリを書き込む要求を受け取ることと、
前記エントリの一部がないか1つまたは複数のデータベース・キャッシュを調査することと、
前記調査に基づいて前記データベースに前記エントリを書き込むか否かを判定することと、
前記エントリを前記データベースに書き込むことができないとの判定に応答してエラーを返すことであって、前記エラーが前記データベースにアクセスせずに返される、前記エラーを返すことと、
前記エントリを前記データベースに書き込むことができるとの判定に応答して前記エントリを前記データベースに書き込むこととを含む、情報処理システム。
【請求項9】
前記書き込み要求が挿入要求であり、前記アクションが、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース読み出しキャッシュを調査することと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在するとの判定に応答して、前記エラーを返すことと、
前記エントリの前記一部が前記データベース読み出しキャッシュに存在しないとの判定に応答して、前記エントリを前記データベースに書き込むこととをさらに含む、請求項8に記載の情報処理システム。
【請求項10】
前記書き込み要求が更新要求であり、前記アクションが、
前記1つまたは複数のデータベース・キャッシュに含まれるデータベース廃棄キャッシュを調査することと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在するとの判定に応答して前記エラーを返すことと、
前記エントリの前記一部が前記データベース廃棄キャッシュに存在しないとの判定に応答して前記エントリを前記データベースに書き込むこととをさらに含む、請求項8に記載の情報処理システム。
【請求項11】
前記アクションが、
前記要求を受け取る前に、読み出しキャッシュと廃棄キャッシュと書き込みキャッシュとを、前記読み出しキャッシュと廃棄キャッシュと書き込みキャッシュのそれぞれからのキャッシング・データを含むインテリジェント・キャッシュ・グラフ・ビルダー(ICGB)として結合することをさらに含み、前記データベース・キャッシュが前記ICGBで調査される、請求項8に記載の情報処理システム。
【請求項12】
前記アクションが、
複製データベース環境において、前記データベースに対応する前記1つまたは複数のデータベース・キャッシュを、それぞれが前記データベースの複製に対応する1つまたは複数の二次データベース・キャッシュと同期させることをさらに含む、請求項8に記載の情報処理システム。
【請求項13】
前記エラーを返すことが、
前記要求に関連するエントリをデータベース廃棄キャッシュに書き込むことをさらに含む、請求項8に記載の情報処理システム。
【請求項14】
前記エントリの前記一部が一次キーを含む、請求項8に記載の情報処理システム。
【請求項15】
コンピュータ・プログラムであって、請求項1ないし7のいずれか1項に記載の方法をコンピュータに実行させるための、コンピュータ・プログラム。
【請求項16】
コンピュータ・プログラムを記録したコンピュータ可読記憶媒体であって、請求項1ないし7のいずれか1項に記載の方法をコンピュータに実行させるためのコンピュータ・プログラムを記録したコンピュータ可読記憶媒体。
【国際調査報告】