JP2015531129A - キャッシュ化データベース・クエリ結果の更新 - Google Patents

キャッシュ化データベース・クエリ結果の更新 Download PDF

Info

Publication number
JP2015531129A
JP2015531129A JP2015526899A JP2015526899A JP2015531129A JP 2015531129 A JP2015531129 A JP 2015531129A JP 2015526899 A JP2015526899 A JP 2015526899A JP 2015526899 A JP2015526899 A JP 2015526899A JP 2015531129 A JP2015531129 A JP 2015531129A
Authority
JP
Japan
Prior art keywords
database query
real
probability
query result
platform
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
JP2015526899A
Other languages
English (en)
Other versions
JP6162240B2 (ja
Inventor
ダミエン シャブリニ,
ダミエン シャブリニ,
ギオーム レグランド,
ギオーム レグランド,
ベノワ ジャナン,
ベノワ ジャナン,
ルーク イスナルディ,
ルーク イスナルディ,
ニコラス マイヨ,
ニコラス マイヨ,
シャール−アントワン ロベリン,
シャール−アントワン ロベリン,
ルディ ダニエロ,
ルディ ダニエロ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
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
Priority claimed from US13/585,286 external-priority patent/US9235620B2/en
Priority claimed from EP12368020.9A external-priority patent/EP2698729B1/en
Application filed by Amadeus SAS filed Critical Amadeus SAS
Publication of JP2015531129A publication Critical patent/JP2015531129A/ja
Application granted granted Critical
Publication of JP6162240B2 publication Critical patent/JP6162240B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/14Travel agencies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Operations Research (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

データ・キャッシュ・プラットフォームは、計算プラットフォーム内に維持されるデータに基づき計算された事前計算データベース・クエリ結果をを維持し、事前計算データベース・クエリ結果が古くなっている確率を決定し、再計算指令を計算プラットフォームに自動的に発行し、古くなった事前計算データベース・クエリ結果の決定された確率に基づき事前計算データベース・クエリ結果を更新し、再計算指令の結果、更新された事前計算データベース・クエリ結果を受信する。この決定は、確率モデル及び非同期リアルタイム・イベント発生に依存する。リアルタイム・イベントは、事前計算データベース・クエリ結果の有効期限に関して非確定的であり、データ・キャッシュ・プラットフォーム内に維持される事前計算データベース・クエリ結果と仮定した実際のデータベース・クエリ結果との間の不一致に対し確率的な影響のみを及ぼす。【選択図】 図3

Description

本発明は、データベース技術の分野を対象とする。より詳細には、本発明は、データベース・クエリ結果を事前計算し、キャッシュ化すること、及びこうした結果を最新に保持する方策に関する。
データベース技術における一般的な問題は、データベース・クエリに対する短い応答時間を確実にすることであり、このことは大量のデータ処理を要する。例えば、電力を消費するそのような計算処理は、いわゆる「オープン・クエリ」に応答して実施する必要があり、この「オープン・クエリ」には、ほんのわずかな入力情報しか含まず(例えば1ダースの可能なパラメータのうち1つ又は2つのパラメータが特定される、及び/又は特定されたパラメータの値域が広い)、したがって、概して多数の結果をもたらす。ハードウェアの性能を増大させることによってデータ処理を高速化する可能性には、限度がある。したがって、大量データ処理の基礎をなす機構を改善することが注目を引き付けている。
クエリ時間を短縮させる1つの一般的なアプローチは、予期されるクエリを事前計算し、対応するクエリ結果をキャッシュ・システム内に維持することである。すると、クエリは、実際は大規模データに基づいて処理されず、キャッシュ・システムに誘導される。
しかし、そのようなキャッシュ化アプローチに伴う別の問題は、キャッシュ化結果によって応答されるクエリが、対応する大規模データに基づく状態を正確に反映することを確実にするために、事前計算クエリ結果を最新に保持することである。基礎をなすデータを変更した場合、キャッシュ化クエリ結果は、古くなり、キャッシュ・システムは不正確な結果を返信する。したがって、キャッシュ・システムをいかに最新に保持できるかという方策が必要とされる。
例えば全データ・ドメインを頻繁に再計算すること、再計算スケジュールを手動で確率、維持すること、及びデータが古くなりすぎたときにデータを再計算すること等、様々な比較的単純な更新方策が従来技術において公知である。
例えばWO01/33472及びWO02/25557に記載されるように、いくぶんより高度な更新方策が開発されている。
WO01/33472は、旅行計画システム内で使用される利用可能性システムに関する。システムは、航空会社の座席に関する利用可能性情報の入力を有するキャッシュを含む。キャッシュ・マネージャは、キャッシュ内の情報を正確、最新、完全に保持する、或いはできるだけ有用に保持するためにキャッシュ内の入力情報を管理する。キャッシュに誘導されたクエリに応答して、キャッシュ・マネージャは、記憶した回答が古くなったかどうかを決定し、このケースであった場合、利用可能性クエリを利用可能性情報元に送信する。修正すべきキャッシュの入力は、外部システムからの非同期通知によって得られ、確定モデル、予測モデル又は統計モデルによって決定される。
同様に、WO02/25557は、情報元から受信した情報を、将来の顧客の要求等将来の使用のためにキャッシュ化する情報抽出システムに関する。キャッシュをポピュレートする及び/又は現在キャッシュ化されている情報を更新するために、能動的クエリを生成できる。航空会社の情報システムでは、能動的クエリは、出発時間の近さ、キャッシュ化データの寿命、航空機の残席、休日若しくは特別なイベント、又は装備の種類等の統計値又は予測表示に基づいて指令される。更に、更新は、AVSメッセージ等の航空会社からの外部通知によって受信される。
更に、WO99/22315は、統計に基づく確率モデルの使用によりキャッシュ内のドキュメントを自動的にリフレッシュする機構を記載している。各ドキュメントに対して、キャッシュは、キャッシュ化オブジェクトiが特定の時間tで古くなる(即ちサーバがそのオブジェクトを変更している)確率Psi(t)、及び要求時間hによってユーザがオブジェクトiを要求する確率Pri(h)を決定する。キャッシュは、最も高い積Pi=Psi(t)×Pri(h)、即ち古くなったオブジェクトを次の要求を有するユーザに返信する確率、を有するこうしたオブジェクトをリフレッシュする。こうした確率値を維持するために、キャッシュは、サーバ更新EUI間の推定平均区間等のキャッシュ化オブジェクトのための履歴統計値を維持、追跡する。オブジェクトのEUIは、例えばサーバがオブジェクト自体を更新する場合に更新される、又はオブジェクトは、オブジェクトの推定平均リフレッシュ時間が経過した後は更新されない。
WO01/33472 WO02/25557 WO99/22315
本発明によれば、分散データベース・システム内で事前計算データベース・クエリ結果を更新する方法が提供される。分散データベース・システムは、事前計算データベース・クエリ結果を維持するデータ・キャッシュ・プラットフォーム、及び計算プラットフォームであって、計算プラットフォーム内に維持されるデータに基づき事前計算データベース・クエリ結果を計算する計算プラットフォームを備える。データ・キャッシュ・プラットフォームは、古くなった事前計算データベース・クエリ結果の確率を決定する。この決定は、確率モデル及び非同期リアルタイム・イベント発生に依存する。確率モデルは、データ・キャッシュ・プラットフォーム内に維持される事前計算データベース・クエリ結果と仮定した実際のデータベース・クエリ結果との間の不一致をモデル化する。リアルタイム・イベントは、事前計算データベース・クエリ結果の有効期限に関して非確定的であり、データ・キャッシュ・プラットフォーム内に維持される事前計算データベース・クエリ結果と仮定した実際のデータベース・クエリ結果との間の不一致に対し確率的な影響のみを及ぼす。確率は、一般に、確率モデルに基づき決定され、可能性としては、非同期リアルタイム・イベント発生時に修正される。データ・キャッシュ・プラットフォームは、再計算指令を計算プラットフォームに自動的に発行し、古くなった事前計算データベース・クエリ結果の決定された確率に基づき事前計算データベース・クエリ結果を更新する。他のものよりも古くなった高い確率を有する事前計算データベース・クエリ結果は、再計算するように指令される。再計算指令の結果、データ・キャッシュ・プラットフォームは、更新された事前計算データベース・クエリ結果を受信する。
別の態様によれば、データベース・キャッシュ・プラットフォームは、上記の方法を実行するように構成される。
別の態様によれば、コンピュータ・システム上で実行されると上記した方法を実施するように構成した非一時的コンピュータ可読記憶媒体を提供する。
更なる態様は、従属請求項に示される。
本発明を添付の図面を参照しながら説明する。同様の参照番号は、一般に同一又は機能的に同様の要素を示す。
分散データベース・システムの全体概要図である。 一実施形態に従った分散データベース・システムのより詳細な図である。 一実施形態に従ったキャッシュ・プラットフォームの構成要素の図である。 確率モデルによる経時的な揮発性効果を可視化した図である。 リアルタイム・イベントに応答した確率モデルの修正を可視化した図である。 本方法の一実施形態に従った流れ図である。 一実施形態に従った再計算のための例示的リソース利用可能性の概略図である。 一実施形態に従ったキャッシュ・プラットフォーム・コンピュータの概略図である。
図面に基づく詳細な説明を参照する前に、図1に関するいくつかのより一般的な態様を最初に示す。
基礎をなす大量のデータに基づいた計算を必要とするデータベース・クエリ又はバッチ計算要求を扱い可能にするために、予期されるクエリに対応するデータベース・クエリ結果は、一般に事前計算され、キャッシュ化される(後に、用語「クエリ」は、トランザクション・クエリ等のあらゆる種類の情報抽出要求、バッチ計算及び他の形態のための要求を含む一般用語として使用される)。キャッシュ化結果は、記憶され、実際に発生したクエリに応答して問合せ中の実体に返信される。図1は、抽象的レベルでのそのようなデータベース・システム1を示す。基本データは、キャッシュ・プラットフォーム2に接続した計算プラットフォーム3内に保持される。キャッシュ・プラットフォーム2は、再計算指令を計算プラットフォーム3に発行し、この計算プラットフォーム3は、事前計算データベース・クエリ結果を記憶させたキャッシュ・プラットフォーム2に対応する結果を返信する。
事前計算データベース・クエリ結果をキャッシュ化するこのアプローチは、基礎をなすデータ・ドメインのデータが経時的に変化し得るという一般的な問題をもたらし、したがって、キャッシュ化事前計算データベース・クエリ結果を古くする。以下、依然として最新である、即ち対応するリアルタイム計算同等物(利用可能なキャッシュ化事前計算結果を有さず、要求に応じて実際に計算されることになる結果)と一致するキャッシュ化クエリ結果を「正確な」キャッシュ化結果と呼ぶ。したがって、キャッシュがキャッシュ化クエリ結果の基礎をなすデータ・ドメインの現在の状況を正確に表す場合、キャッシュは、「一般に」正確である。
概して、キャッシュに基づく正確な結果を返信するために、データベース・クエリに応答して問合せ中の実体に提供されるキャッシュ化データベース・クエリ結果とそれらのリアルタイム計算同等物の間に高度の相関関係を維持することが望まれる。しかし、同時に、再計算によって生じる計算リソースの消費を最小化する、即ち、依然として正確なキャッシュ化クエリ結果の再計算等、あらゆる不必要な再計算を回避することが望ましい。計算リソースには限度があり、一般に、全キャッシュ化クエリ結果を常に再計算するには十分な計算リソースではない。したがって、キャッシュの正確さと利用可能な計算能力の利用との間に兼ね合いを見出す必要がある。
事前計算データベース・クエリ結果のキャッシュを最新に保持する単純なアプローチにはいくつかの欠点がある。
データ及び利用可能な計算リソースの量に応じて全データ・ドメインを頻繁に、例えば1日に1回再計算すれば、キャッシュの正確さとリアルタイム応答との間に妥当なバランスを保証する可能性がある。しかし、このアプローチは、ほとんど拡張可能でなく、ハードウェアのリソース消費の点で非効率的である。具体的には、基礎をなす対応データが変更されていないので、依然として有効であるこれらのクエリ結果も再計算される。
人間の管理者が手作業でどのクエリ結果をどの時間で再計算すべきかを決定する再計算スケジュールを作れば、特定の目的に対して効率的であることを証明できるが、このことは厳密であり、柔軟性がない。スケジュールの基礎をなす仮定及び条件が変更された場合、スケジュールを再度作る必要がある。スケジュールは、基礎をなすデータ・ドメイン内に大きな変化がある場合に起こり得るキャッシュの質の急激な低下を動的に追跡することもできない。更に、スケジュールは、例えば客観的な品質基準が失われるためにそのようなスケジュールを手作業で設計するのが困難であり、人件費の点で維持が困難である。
また別のアプローチは、データが古くなりすぎたときにデータを再計算することである。しかし、基礎をなすデータ及び事前計算すべきクエリ結果の性質によっては、「古さ」の良好な閾値を評価することが困難である場合がある。
再計算をより効率的にするために、メトリクスは、再計算がどのくらい「不必要」であるかを評価するように定義されるべきである。例えば、計算クエリ結果の半分未満が古くなっていることが判明した場合、大量の事前計算全体を毎日繰り返し行う価値はない。一方、特定のクラスのクエリ結果が頻繁に変化することがわかっている場合、この特定のクラスのクエリ結果を1日に数回再計算すれば、正確さに関して有益であることがある。したがって、正確さに関連する利益及び再計算の費用の両方を考慮して、クエリ結果の正しさを判断又は推定する有効な方法が必要である。
本明細書で提示するキャッシュ更新方策によれば、データベース・クエリ結果の再計算は、キャッシュ化データベース・クエリが古くなる確率に基づき判定され、即ち別の再計算によって得られる結果とは異なる可能性がある。不正確さに対し少なくとも一定の、予め決定された確率を有するキャッシュ化クエリ結果のみが再計算される一方で、おそらくは依然として基礎をなすデータを正確に反映する他のキャッシュ化クエリ結果(即ちこれらは古くなる確率がより低い)は、再計算されない。
本明細書で提示するキャッシュ更新の方策は、第1の態様として、予測モデルに基づき事前計算データベース・クエリ結果のキャッシュ全体の正確さを推定する手段に依拠する。第2の態様として、事前計算データベース・クエリ結果は、モデルに基づく再計算方策が実際のリアルタイム(及びリアルライフ)イベント発生時に依然として有効であることを検証することにより、これらの推定が一般に現実のものと一致するかどうか確認もされ、このリアルタイム(及びリアルライフ)イベントは、例えばキャッシュ化クエリの基礎をなすデータのかなりの部分が変化している、及び−こうした変化のために−対応するキャッシュ化クエリも古くなっていることの指摘として働くことができる。
キャッシュの正確さの推定が一般に依拠する予測モデルは、キャッシュ化クエリ結果と仮定した実際のデータベース・クエリ結果との間の不一致をモデル化し、即ち、予測モデルは、あらゆるキャッシュ化クエリ結果の正確さ又は不正確さを概算する。モデルは、例えばキャッシュ化結果の経時的に起こりそうな揮発性をモデル化する。キャッシュ化結果の揮発性に対する仮定は、それぞれのデータ・ドメインの主題に対する(過去の)現実世界の経験から結論を下し、推断する。したがって、予測モデルは、一般に、事前計算データベース・クエリ結果の揮発性及び/又は正確さの点で現実のものの見本である。
様々な種類のモデルを採用できる。例えば、予測モデルは、科学モデリングとして公知の構造化モデル化方法によって生成してある概念モデルであってもよい。モデル化には、現実世界環境の態様及びイベント(ここでは、例えば:事前計算キャッシュ化クエリ結果の揮発性、及び経時的に低下する正確さに影響を及ぼす態様及びイベント)の特定、選択を必要とし、モデルの目的に特に関連がないことがある他の態様は除いたままにする。更に、特定、選択された態様は、抽象化され、コンピュータ・プログラム及び/又は数式等の処理可能な形態で定式化/構築できる。そのような概念モデルは、事前計算データベース・クエリ結果の経時的な挙動(即ち揮発性/正確さ)をシミュレートするシミュレーションの手段として働くこともできる。代替的に、採用する予測モデルは、例えば過去の所与の時間期間(例えば3ヶ月)における事前計算クエリ結果の揮発性/正確さの監視及び評価に基づく履歴統計モデルであってもよく、決定した傾向を推断して将来にあてはめる。そのような履歴統計モデルの特定の例を、以下で更に示す。
例えば、基礎をなすデータは、飛行機旅行ドメインに位置し、出発及び目的地空港、航空会社、出発日及び帰還日、運賃、予約クラス等、フライトに関する情報を含むことができる。この飛行機旅行に関連するデータは、計算プラットフォームに保持され、飛行機のフライトの利用可能性及び価格に対する知識を得るために顧客が問い合わせる。基本フライト・データに基づく価格の計算は、リソース及び時間を消費するものである。したがって、実際の価格は、事前計算され、本発明のキャッシュ・プラットフォーム内でキャッシュ化される。この例では、確率モデルは、フライト価格の経時的な揮発性をモデル化する。
そのようなモデルを構築するのに必要な知識は、出発日前のフライト価格の挙動及び展開に関する現実世界の経験から入手できる。例えば、フライト価格は、それぞれの出発日前の1ヶ月前の期間にわたって比較的安定したままであるが、出発日前のその月の間はより揮発性になることを知ることがある。したがって、確率モデルは、来月に到来するフライトに属する事前計算キャッシュ化価格が、更に遠い将来のフライトに関連する事前計算価格よりも頻繁に再計算すべきであることを示す。
確率モデルを使用してキャッシュの正確さをモデル化することに加えて、リアルタイム・イベントに反応性であることによりキャッシュの正確さの急激な降下を防止する。再計算判定は、キャッシュ化クエリ結果の正確さに影響を与え得る事前計算リアルタイム・イベントの受信時に改良される。リアルタイム・イベントは、非同期式である、即ちリアルタイム・イベント発生時点が予め決定されない−リアルタイム・イベントは、常に発生できる。到来するリアルタイム・イベントを受信、処理可能にするために、キャッシュ・データ・プラットフォーム2は、通信ソースへの外部インターフェースを備え、この外部インターフェースは、それに応じてキャッシュ・データ・プラットフォームに関連情報を通知する。
そのようなリアルタイム・イベントは、予測モデル内で考慮されない特定の状況に関連できる。例えば、キャッシュ化価格の一部分は、販売促進によって影響を受ける場合がある一方で、他の価格は、1年のうちの特定時間(ホリデー・シーズン、クリスマス等)でより揮発性になることがある。展示会、スポーツ・イベント等のような「例外的」状況、ストライキ又は自然災害等の無作為なイベントも、「通常の」モデル因果律の基礎をなす仮定を変更し得る。これらの特定の影響は、そのような例外的状況の見本となるそれぞれのリアルタイム・イベントに応答してキャッシュ化クエリ結果が古くなる確率を決定する際に考慮できる。代替的に、展示会、ホリデー・シーズン、スポーツ・イベント等の予定されたイベントの影響をそのイベント日の前の程よい時に確率モデルに導入できる。
本明細書で提示する更新方策は、「不確かな」イベントを考慮できることに留意するのが重要であり、即ち、そのようなイベントとは、確実さを有する1つ又は複数の事前計算キャッシュ化クエリ結果を無効にしないが、キャッシュ化データベース・クエリ結果が古くなる確率が増大する可能性があることのみを示すイベントである。言い換えれば、これらのイベントは、キャッシュ化クエリ結果の正確さに関して非確定的であり、キャッシュ・プラットフォーム2内に維持されるキャッシュ化クエリ結果と、仮説的再計算から得られる仮定の実際のデータベース・クエリ結果との間の不一致に対し確率的な影響のみを及ぼす。このことは、AVSメッセージが例えば特定のフライトが欠航になっていることを示すWO01/33472及びWO02/25557に記載の提案とは異なる。したがって、そのようなAVSメッセージの受信時に、それぞれの飛行機の座席がもはや利用不可能であることが確実にわかる。
例えば、上述の旅行関連データ・ストレージのシナリオを参照すると、キャッシュ化クエリ結果の正確さに影響を与える可能性のあるリアルタイム・イベントは、運賃更新とすることができる。運賃は、出発及び目的地都市、予約クラス、フライトの種類(片道又は往復)、金額、及び実際に適用される運賃に対して満たさなければならない制約を定義する規則等のパラメータを含むデータ・セットである。したがって、運賃は、特定フライトに対する価格計算のための基本データの見本となる。特定の起点−目的地−都市ペアの運賃が航空会社によって更新された場合、この都市ペアに関する事前計算キャッシュ化フライト価格はもはや正しくない可能性が増大する場合がある。しかし、データ・キャッシュ・プラットフォーム2の観点からは、このことは確実ではない。というのは、事前計算時に事前計算プラットフォーム3が実際に適用した運賃は、データ・キャッシュ・プラットフォーム2には未知であるためである。例えば、以前の事前計算に適用した運賃は、実際には変更されていない場合があり、運賃変更イベントによって示される運賃変更は、以前関係した運賃が依然として適用されるという事実を変更せず、したがって、前に計算した価格は、依然として有効である。又は、以前適用した運賃は実際に変更されるが、−変更により−今度は別の運賃が問題のフライト価格の計算に適用され、このフライト価格は、結局、キャッシュ化価格が実際には依然として有効であるという効果を有する。
したがって、そのようなリアルタイム・イベントの観察時に、データ・キャッシュ・プラットフォーム2は、特定のキャッシュ化クエリ結果が現在古くなっているという非確定的な可能性を用いて推測できるだけであり、キャッシュ化クエリ結果を再計算してキャッシュを正確に保持するようにすることが有利と思われる。しかし、このことは確実な事実ではなく、それぞれのキャッシュ化クエリ結果は、−古くなったそれらの確率は増大しているにもかかわらず−実際には依然として正しいということは十分にあり得る。
キャッシュ化データベース・クエリ結果が古くなる確率の決定は、2つの論理ステップで実施される:一般に、第1の論理レベルでは、確率は確率予測モデルの使用により特定される。その後、第2の論理レベルでは、こうして決定された確率は到来するリアルタイム・イベントに応答して修正できる。
このように決定された確率に基づき、データ・キャッシュ・プラットフォーム2は、2つの実体間の適切なネットワーク・インターフェースを介して再計算プラットフォーム3に再計算指令を自動的に生成、発行する(図1を参照)。一般に、再計算指令は、こうしたキャッシュ化クエリ結果に関して生成され、このキャッシュ化クエリ結果は、古くなる確率がより低い他のキャッシュ化クエリ結果よりも、古くなる確率が高い。この一般的な経験則は、確率の閾値の使用により実施できる:古くなる確率がそのような閾値を超えたと決定されるキャッシュ化クエリ結果は、再計算する必要がある。したがって、それぞれの再計算指令を送信する。古くなる確率がそのような閾値にある又はそのような閾値を下回ると決定されたキャッシュ化クエリ結果は、依然として正確である可能性があると考慮され、したがって再計算する必要がない。したがって、これらのキャッシュ化クエリ結果に対して再計算指令は発行されない。
特定時間における利用可能な計算能力は、再計算指令を送信する前にデータ・キャッシュ・プラットフォーム2によって考慮に入れられる。利用可能リソースを考慮可能にするために、データ・キャッシュ・プラットフォーム2は、計算プラットフォーム3の能力利用率の度合い及び/又はスケジュール、並びに自由計算リソースの度合い及び/又はスケジュールについての知識を有する必要がある。関連情報は、2つのプラットフォーム間の通信リンクを介してポピュレートされる。
再計算指令の受信に応答して、再計算プラットフォーム3は、それぞれのクエリ結果を再計算し、このクエリ結果をデータ・キャッシュ・プラットフォーム2に返信し、このデータ・キャッシュ・プラットフォーム2では、クエリ結果は記憶され、確率の監視及び決定が繰り返される。
特定のリアルタイム・イベントに応答して再計算判定を修正すべきか又は無効にするか否かを判定する前に、確率モデルと発生するリアルタイム・イベントとの間の関係を考慮することが好ましい。基本的に、リアルタイム・イベントは、リアルタイム・イベントがすでに確率モデル内に存在するかどうか、及びリアルタイム・イベントがすでに確率モデル内にどの程度存在するかを分析すべきである。
イベントが確率モデル内に存在するか否か、及びイベントが確率モデル内にどの程度存在するかというこの決定は、一般に、使用するモデルの種類に依存する。例えば、モデルが科学モデルの生成過程の結果である概念モデル(上記で簡単に概説した)である場合、このモデルを生成した当業者は、どの態様、イベント及び仮定がモデルに関連があると考慮されてそのモデルに導入され、他のどの態様、イベント及び仮定がそれほど関連がないとみなされ、したがって、モデル内に含まれないかを認識している。この場合、したがって、どの非同期リアルタイム・イベントがモデル内の見本となり、どの非同期リアルタイム・イベントがモデル内の見本とならないかが一般にわかる。
一方、モデルが、事前計算データベース・クエリ結果の揮発性、正確さ及び/又は人気度の過去の展開及び傾向に主に基づく履歴統計モデルの場合、どのイベントが過去の事前計算データベース・クエリ結果の揮発性/正確さ/人気度に対する特定の挙動をもたらしたかが最初にわからない場合がある。しかし、この場合も同様に、特定の非同期リアルタイム・イベントが確率モデル内に含まれるか否かを概算することが可能である。1つのアプローチは、例えば、(例えばこれらの見本となるサンプルを再計算し、再計算結果をキャッシュ化クエリ結果と比較することによって)事前計算データベース・クエリ結果の実際の正確さを決定し、この実際の正確さを確率モデルが予測する正確さと比較することである。実際の(サンプル)正確さが予測した正確さよりも実質的に低い、例えば所与の閾値を下回る場合、確率モデルが特定の非同期リアルタイム・イベントを認識していない、即ち、イベントはモデル内の見本とならないことが仮定できる(或いは、モデルはより低い正確さを示したことにもなる)。他方では、実際の(サンプル)正確さが、確率モデルが予測する正確さの領域にある(即ち、正確さをわずかに下回る、正確さにある又は更には正確さよりも高い)場合、非同期リアルタイム・イベントが確率モデル内に含められていることが仮定できる(又は、イベントは、事前計算データベース・クエリ結果の揮発性又は正確さに限定的な影響しか及ぼさないという、無視できるイベントにすぎない)。このアプローチのより詳細な例を以下で更に示す。
モデル内の十分な見本となるそのようなイベントに関して、確率の修正は必要ではない。というのは、イベント発生は、確率モデルに基づきそれぞれのキャッシュ化データベース・クエリ結果の確率を決定する際にすでに考慮に入れられているからである。一方、あるリアルタイム・イベントが確率モデル内の見本とならないことがわかった場合、そのリアルタイム・イベントは、直ちに考慮され、確率が修正され(即ち増大され)、可能性としては、それぞれのキャッシュ化データベース・クエリ結果に関する再計算指令が、修正された確率のために発行される。
任意選択で、確率モデル内に存在するリアルタイム・イベントがある程度で発生したことは、傾向を査定するために蓄積される。実際に出現し、確率モデルが一般にモデル化したリアルタイム・イベントの蓄積が突発的な逸脱(burst)を示す場合、モデル確率によって考慮されるものを超えた程度が修正され、適用可能な場合、再計算指令がそれに応じて無効になる。
任意選択で、ごく少数のキャッシュ化クエリ結果を古くする可能性がある及び/又は無関係と考慮される可能性があるイベントを除外するために、イベントは、群に蓄積、分析もされる。同じくこの理由で、イベントは記録され、経時的に収集され、集合的に扱われる。このようにして、低影響のイベントに応答して多すぎる再計算指令が発生することが防止され、したがって、計算リソース費用の不均等な増加が回避される。
要約すれば、キャッシュ化データベース・クエリ結果の正確さに少なくとも予め決定した程度を上回って影響を与える可能性のあるリアルタイム・イベントを考慮すると、キャッシュ劣化に対する高い反応性を実現する。
本発明のキャッシュ更新方策は、例えばEP2521074A1の主題であるAmadeusのマッシブ・コンピュテーション・プラットフォーム(MCP)と共に使用できる。MCPと共存する本発明のデータ・キャッシュ・プラットフォームを採用することにより、強化されたサブシステムがMCP再計算のトリガに利用可能である。MCPが生成した旅行推奨等のデータベース・クエリ結果は、更なる分析用にデータ・キャッシュ・プラットフォームに複製、記憶される。再計算判定は、確率モデルに基づき行われ、確率モデル自体は、他のAmadeusサービスから入手した統計データに基づき構成できる。更に、フライト運賃変更、飛行機座席の利用可能性の変更、予約クラスの無効化、顧客の航空券要求、ユーザの品質フィードバック・イベント、欠航及び/又は同様のもの等のリアルタイム・イベントが考慮される。
本発明のキャッシュ更新アプローチのための1つの例示的適用例は、仮ショッピング(pre−shopping)である。旅行を実際に予約する前に、旅行業界のエンド・ユーザは、通常、現在のフライト価格を含む利用可能なフライトについて、そのフライトを実際に予約する約束を何ら有することなく把握することを望む。仮予約(pre−booking)情報に対する、かなり頻繁な束縛のないそのような要求は、オープンで広範なデータベース・クエリの形態を取り、クエリ時にのみ計算されると莫大な量の計算リソースを必要とすることになる。更に、顧客は、要求した情報が顧客のクエリに応じてほぼ瞬時に伝えられることを期待する。したがって、価格付き飛行機旅行推奨等、仮ショッピングのクエリ結果は、通常、事前計算され、キャッシュ化される。したがって、旅行業界の仮ショッピングは、本明細書で提案するキャッシュ更新方策のための適切な適用例を形成する。
詳細な説明
次に、より詳細な説明を参照すると、図2は、例示的実施形態による分散データベース・システム1の概要図を示す。次に記載する実施形態は、旅行業界のデータベースに関連する。具体的には、計算プラットフォーム3が飛行機旅行提案に関するデータを維持し、キャッシュ・データ・プラットフォーム2が飛行機旅行提案に関連する価格を記憶し、飛行機旅行提案とは、計算プラットフォーム3が計算規則、具体的にはフライト運賃及びそれらに関連する計算規則に基づき計算したものである一実施形態が、提示される。しかし、これらの実施形態は、本発明のキャッシュ更新方策をより詳細に示す目的での例に過ぎないことを留意されたい。本明細書で提示するキャッシュ更新方策は、データ及びキャッシュ化結果の構造及び/又はセマンティクスとは無関係に、あらゆる種類のデータ及びデータベース・クエリ結果に適用できる。
上記のように、分散データベース・システム1の主な実体は、データ・キャッシュ・プラットフォーム2(以下簡単にDCPと呼ぶ)及び計算プラットフォーム3である。図2の例では、計算プラットフォーム3は、欧州特許出願第11305518号に開示するマッシブ・コンピュテーション・プラットフォーム(MCP)である。DCP2及びMCP3は、少なくとも1つの通信リンクを介して結合され、この少なくとも1つの通信リンクを利用してDCP2からMCP3に再計算指令を送信し、それに応答して、事前計算された価格付き旅行推奨(以下簡単に「価格」とも呼ぶ)をMCP3からDCP2に返信する。
DCP2は、DCP2がキャッシュ化価格の正確さの確率の決定に使用するデータを組み込むための更なる通信インターフェースを備える。これらのインターフェースは、例えば通信リンクを含み、この通信リンクは、確率モデルの基準を形成する統計データを組み込み、航空会社又は顧客販売促進キャンペーンによってポピュレートされた運賃変更及びフライト利用可能性の案内等の非同期リアルタイム・イベントを受信するためのものである。
更に、分散データベース・システム1は、アプリケーション・プラットフォーム4を含むことができ、このアプリケーション・プラットフォーム4は、旅行会社等のエンド・ユーザ又は外部顧客が問い合わせできるデータを編成、維持する。アプリケーション・プラットフォーム4は、MCP3とアプリケーション・プラットフォーム4との間のそれぞれの通信リンクを介してMCP3によってポピュレート、更新される。このポピュレーション及び更新は、DCP2が発行する再計算指令によってトリガされる。
一般に上記に記載し、より具体的に以下に記載するように、DCP2から受信した再計算指令に応答して、MCP3は、旅行推奨の価格を再計算し、この価格をDCP2に返信する。しかし、同時に、MCP3は、再計算した価格付き旅行推奨をアプリケーション・プラットフォーム4に転送もし、この旅行推奨を記憶もする(図2の「旅行推奨集積」に示すように)。したがって、アプリケーション・プラットフォーム4も、DCP2が実施するキャッシュ更新方策に基づき、ユーザが問い合わせる事前計算価格付き旅行推奨をキャッシュ化する。したがって、本発明のキャッシュ更新方策は、例えばオープン・クエリに対する即時応答の形態でユーザに利益をもたらす適用例に活用される。そのような構成では、データ・キャッシュ・プラットフォーム2は、アプリケーション・プラットフォーム4のキャッシュの更新を制御、トリガするように構成した制御プラットフォームとして働く。したがって、データ・キャッシュ・プラットフォーム2に記憶したキャッシュ化データベース・クエリ結果は、任意のユーザ又は顧客によって実際にはアクセス又は問い合わせされず、キャッシュ更新方策が実施される制御データ基盤を形成するにすぎない。しかし、他の構成では、データ・キャッシュ・プラットフォーム2は、ユーザ又は顧客が直接問い合わせることもでき、又は−言い換えれば−、本発明のキャッシュ更新方策は、個別の制御実体とは対照的に1つ又はいくつかのアプリケーション・プラットフォーム(複数可)4に直接実装できる。
アプリケーション・プラットフォーム4は、例えば仮ショッピング・アプリケーション・プラットフォーム、運賃分析アプリケーション・プラットフォーム及び他のプラットフォームを備える。仮ショッピング・アプリケーション・プラットフォームは、フライト利用可能性及び価格についての情報を望むエンド・ユーザが問い合わせる。例えば、エンド・ユーザは、ホリデーシーズン中の、ニース発、500ユーロ未満の旅行提案の価格の概要を得るために、仮ショッピング・アプリケーションにクエリを指示できる。本発明のキャッシュ更新方策と一致して更新される仮ショッピング・アプリケーション内でキャッシュ化した事前計算価格付き旅行推奨のために、それぞれのフライトの価格は、クエリの発生時に計算する必要がない。そうではなく、こうしたかなり不特定の制約を満たす旅行提案のリストは、仮ショッピング・アプリケーション・プラットフォーム内でキャッシュ化した価格付き旅行推奨に基づき非常に迅速に返信できる。次に、ユーザは、ユーザに最適である返信されたリストから旅行を選択し、次にこの旅行を実際に予約するための更なる要求を発行できる。次に、第2の要求は、現在及び実際の価格を計算し、ユーザに拘束力のある提案を勧める予約エンジン(図示せず)によって処理される。
次に、図3により示されるデータ・キャッシュ・プラットフォーム2の構造をよく見ると、データ・キャッシュ・プラットフォーム2は以下の3つのモジュールから構成される:
−入力マネージャ5は、MCP3からの事前計算データベース・クエリ結果、非同期リアルタイム・イベント、及び統計データ等の他の情報等の入力を受信する責任を負い、確率モデルを供給、更新する。
−分析器6は、どの確率モデルが更新すべき候補のキャッシュ化クエリ結果を決定するように構成されるかに基づいて確率モデルを利用する。
−最後に、統合器7は、分析器6が決定した確率を修正し、−必要な場合に−観察されたリアルタイム・イベントに基づき確率モデルも修正する(観察されたリアルタイム・イベントは図3に示されない)。
更に、DCP2は、キャッシュ化価格付き旅行推奨データを保持する内部データベース8を含む。この見本は、古くなる確率の評価及び再計算判定への判定に関連する価格情報の属性、例えば:都市ペア、出発日、滞在期間及び最終計算日等を保持するにすぎず、これらは全てMCP3が返信した計算の出力である。運賃等のMCP3の計算を実施するためにMCP3によって利用される他のデータは、DCP2にミラーリングされない。というのは、他のデータは、キャッシュ更新方策の実施に必要ではないためである。しかし、一方で、DCP2は、最初に仮定した正確さ(MCP3がたった今再計算した価格が予約のための計算とは異なる見込み)、揮発性(価格がその最終計算以来の予約のための計算とは異なる確率の指摘)及び人気度(フライトがどれくらい頻繁に検索、予約されるか)等、メタデータ属性を有するDCP2のデータ(MCP3が返信するデータ・セットの一部ではない)を向上させる。こうした属性の設定に必要なデータは、揮発性データベース10、最初の正確さデータベース11及び統計サーバ9等の外部データベースに保持される。メタデータ属性は、(以下でより詳細に説明するように)分析器6がキャッシュ化価格が古くなった可能性があるかどうかの確率を決定することに基づき確率モデルの見本となる(及びしたがって確率モデルの特定性に依存する)。
入力マネージャ5は、全ての異種の情報ソースを変換し、MCP3によって返信されるローカルの価格見本データベース8に集積するように構成される。入力マネージャ5は、モデル化価格に影響を与える可能性のあるイベント及び行動を記録する。こうしたイベントには、顧客販売促進及び顧客不一致フィードバックを含む。更に、欠航のようなフライト利用可能性イベントは、欠航したフライトに直接的に基づくキャッシュ化旅行推奨を無効にするだけでなく、欠航したフライトと同時刻に予定されている同じ都市ペアのフライト等の対応するキャッシュ化データにも影響を与え得る。次に、こうしたリアルタイム・イベントは、古くなる確率及び再計算判定を修正するために、リアルタイム・イベントを更に処理する統合器7に転送される。
価格付き旅行推奨のキャッシュ化に関与する情報量のために、符号化技法を採用することが有益である。この符号化技法により、DCP2でキャッシュ化された価格付きデータは、MCP3に保持した、基礎をなすデータ・ドメインに包括的にマッピングされ、一方で記憶リソースに関する費用を著しく低減する。確率の符号化は、例えばブルーム・フィルタを使用することにより実施される。そのような符号化の効果は2つある。第1に、ブルーム・フィルタは保存的である。ブルーム・フィルタは、例えば運賃変更を示すリアルタイム・イベントによって影響を及ぼされる可能性があるこうした価格を少なくとも及びいずれの場合にも確実に追跡可能にするが、ブルーム・フィルタは、影響を受けないと考慮される価格が実際に影響を受けない逆の場合は、誤ることがない。そのため、そのような運賃変更イベントによって影響を及ぼされる可能性のある価格を認識しない恐れがない。第2に、偽陽性量の表示は、ブルーム・フィルタの割り振られた大きさに厳密に依存し、そのため、必要に応じて偽陽性の発生を制限できる。
第2のモジュールである分析器6は、DCP2に保持される事前計算価格の正確さの劣化の確率モデルに基づき、キャッシュ化価格付き旅行推奨が古くなったかどうかの確率の第1の一般レベルの決定を実施する。分析器6は、上記で説明したように入力マネージャ5によって価格に加えられるメタデータを検査、評価する。したがって、このメタデータによって見本となる確率モデルは、揮発性データベース10が含む価格揮発性、最初の正確さデータベース11から組み込まれた価格の最初の正確さ、及び統計サーバ9からの人気度報告により返信されたフライト推奨の人気度に関するメトリクスを含む。分析器6は、静的確率情報のみに基づき(即ちあらゆるイベントを考慮せずに)、キャッシュ化価格に関する確率及び優先情報、即ちどの価格を優先情報を用いて再計算する必要があるかの指摘を統合器7に出力する。
より具体的には、例示的確率モデルは、事前計算データベース・クエリ結果xの以下のパラメータに基づく:
−事前計算データベース・クエリ結果の寿命t:MCP3によるこの事前計算データベース・クエリ結果の最終計算以来の時間。
−発生及び過去の計算結果から導出できる事前計算クエリ結果の揮発性λ
−揮発性λを採用して、所与の時間後に未変更のままでいる事前計算クエリ結果:P(t後未変更)=e−λitに対する確率推定値を与えることができる。このことは、予期される正確さ
の確率、又はより一般には、古くなった事前計算データベース・クエリ結果の確率とも呼ばれる。経時的に減少する可能性が高いこの正確さの2つの例示的機能は、図4aに示される。
−最初の正確さ:MCP3が生成する事前計算データベース・クエリ結果は、例えばMCP3自体がその計算をキャッシュ化(したがって古くなった)データに基礎を置く場合、計算時間でさえ必ずしも正確ではないことがある。このことは、MCP3が計算する事前計算データベース・クエリ結果と基礎をなす正確なデータが仮説的に生成している計算結果との間に更なる不一致をもたらす。この不一致は、それぞれのフィードバックが利用可能である場合に測定できる。この不一致は、例えば以前の計算から、事前計算データベース・クエリ結果xがMCP3による計算時に正確である確率aを有することを推測できる。このことは、所与の時間t後、事前計算データベース・クエリ結果が正確である確率がa−λitであることを意味する。
−次に、このモデルに従ってDCP2に保持される全体の事前計算データベース・クエリ結果の正確さは、平均正確さ:
包括的正確さ=平均(a−λit
として考慮できる。
−事前計算データベース・クエリ結果の人気度p:人気度pは、エンド・ユーザによるこの事前計算データベース・クエリ結果への平均アクセス頻度である。更に以下でも簡単に提示するように、ユーザが要求することが多い事前計算データベース・クエリ結果に対してより良好な正確さを達成することが望ましい場合がある。したがって、ユーザが見る全キャッシュの正確さは、各正確さの値が人気度によって重み付けされるという点で定義もできる。したがって、事前計算データベース・クエリ結果への正確なアクセスの割合は、正確な事前計算データベース・クエリ結果の予期される割合とは反対に:
に含まれる。
正確さの確率モデルのこうしたパラメータは、例えば数日、数週間又は数ヶ月の履歴に基づき統計サーバ9から導出する統計履歴データにより設定される。あらゆる単一の事前計算データベース・クエリ結果は、事前計算データベース・クエリ結果の状態を予測し、したがって全キャッシュの質を予測するために、こうしたパラメータを用いてモデル化される。
優先順位を付け、次にどの価格を再計算するか判定するために、確率モデルの情報を利用するいくつかの方法がある。分析器6は、状況に応じて(例えばMCP3内に基礎をなす旅行データを所有する顧客との契約に従って、データ量に応じて、利用可能な計算リソースに応じて、どの方法でキャッシュを最適化すべきかの異議に応じて)こうした方策又は方策の混合を適用するように構成可能である。以下の方策を適用できる:
・価格の正確さ:このことは、データ・ドメインの包括的な正確さを最大化することを目的とする。おそらく、不正確な価格を最初に再計算する。
・人気度で重み付けした価格の正確さ:不正確である可能性がある価格のうち、人気度があまりない価格よりもより人気度のある価格を高い優先度で再計算することになる。
・人気度及び寿命で重み付けした価格の正確さ:以前の方策と同様であるが、最終再計算の時間も考慮する。この方策は、特に再計算リソースが一般に再計算すべき価格の量と比較して制限される状況で、非常に揮発性である価格によって引き起こされる再計算の欠乏を防止する。
・人気の都市ペアをそれらの地理位置及び再計算時間に基づき調整する:この方策は、更に、1日の特定時間でどの都市ペアのフライトがより頻繁に問い合わせされるかという統計を考慮する。結果として、特定都市ペアのフライトがほとんどアクセスされないこれらの時間で頻繁な再計算が回避される(というのは、不正確なキャッシュ化データは、それぞれのクエリが実際にほとんど発生しない限り害を与えないためである)。
副次的な結果として、分析器6は、MCP3から受信し、DCP2に組み込んだ最近再計算した価格の値に基づき揮発性モデル・データベース10を更新する。分析器は、繰り返す再計算に基づきキャッシュ化価格の実際の揮発性を追跡できるので、分析器は、こうした統計情報を揮発性モデル・データベース10にフィードバックできる。揮発性モデルを更新するために、分析器6は、新たに計算した価格結果と以前受信した価格値との間の差異の数を計数する。こうした差異から、分析器6は、分析した価格のそれぞれの部分のための揮発性パラメータを更新する。
同様に、分析器6は、最初の正確さデータベース11を同様に更新できる。分析器6は、例えば新たな都市ペアからの価格が初めてDCP2に集積された場合、他の人気度の報告を求めることもできる。
価格の揮発性、正確さ又は人気度に対する履歴及び統計データそれぞれがない場合、分析器6は、できるだけ保存的であるデフォルト・パラメータを使用して処理を実施する。
次に第3のモジュールを参照すると、統合器7は、到来するリアルタイム・イベントを考慮することにより第2のレベルの確率決定を実施する。更に、統合器7は、再計算指令を生成し、再計算指令をMCP3に発行する実体である。統合器7は、分析器6の出力をその判定の基礎として必要とする。これらの出力は、データ・ドメインの全価格に対する再計算優先度の第1の推定を提供する。次に、統合器7は、様々なリアルタイム・イベント・ソースから収集した全情報をオーバーレイして、再計算優先度を修正する。これにより向上した再計算優先度がもたらされる。
任意選択で、統合器7は、例えば「全価格を少なくとも毎週一度再計算することを保証する」等、任意の顧客サービス・レベル契約を考慮し、それに応じて優先度を修正できる。統合器7は、内部価格データ見本8内の最も高い優先度を有するこうした入力を最初に選択し、再計算用に入力をマークする。統合器は、好ましくはMCP3で利用可能な計算リソースの知識を有するので、特定の時間間隔でMCP3により再計算できるものと同数のキャッシュ化価格を確保できる。次に、統合器7は、得られた再計算指令をMCP3に送信する。
リアルタイム・イベントからの情報は、厳密な統計モデル化の間、キャッシュ化データの正確さを改良する手段である。リアルタイム・イベントからの情報を使用して、予期されたもののみではなく実際に起こったことを追跡できる。このことは、統計モデルの予測を制御し、予測が間違っている又は不適切であると判明した場合に1つ又は複数の予測を修正する手段である。リアルタイム・イベントのいくつかのクラスを本実施形態に対して想定できる。
行為者のイベントは、一般に選択的に(即ち時間ごとに)発生するが、再計算判定に劇的な影響を及ぼす場合がある。外部顧客は、キャッシュと、外部顧客が自身のプラットフォーム上で経験しているショッピングとの間の不一致に対してフィードバックを提供できる。このフィードバックは、統計モデルが予測する正確さを修正し、したがって必要な場合により迅速な再計算を強制するために使用できる。MCP3内に記憶されるデータの提供業者(例えば旅行を提供する旅行提供業者)がいくつかの都市ペアに対するフライトを促進する販売促進キャンペーンを実施するとき、これらの価格がより揮発性であり、より頻繁に古くなることが仮定できる。したがって、販売促進キャンペーン中のこれらの価格の再計算頻度を増加させる必要がある場合がある。別の例として、MCP3のための整備操作が時折必要であることがあり、さもなければシステム1内で操作上の問題に遭遇するおそれがある。そのような場合、整備が完了する及び問題が元通りになるまで、再計算指令をより少なく生成する又は再計算指令を生成しないようにDCP2に命令できる。
利用可能イベントは、キャッシュ化フライトの正確さに対するリアルタイム状況を示す。イベントの記述に応じて、MCP3内の基礎をなすデータ・ドメインの特定価格が変更されており、したがってDCP2は、キャッシュ化した価格が無効になっていることを確実に知ることができる。しかし、影響が確実ではない他の価格も影響を及ぼされることがあり、したがってこれらの値段が古くなる確率を増大させることがある。例えば、「クラスの閉鎖」イベントは、特定のフライトに対する特定の予約クラスが満席になっていることを示す。このフライトの座席及びクラスは、もはや予約可能ではなく、したがってDCP2がキャッシュ化したそれぞれの価格は、確実に無効になっている。しかし、このことは、同じフライトの他のクラス、及び/又はこのフライトの直前又は直後に出発する他のフライトの同じクラスの座席がより揮発性になる可能性があることの指摘として考慮される可能性がある。したがって、こうした古くなる確率は、増大する可能性があり、これらの値段の再計算が有益である可能性がある。別の例として、ローコスト・キャリアがフライト占有率に応じて座席の価格を設定することに遭遇する。占有率の変更通知時に、それぞれのキャッシュ化価格を迅速に再計算でき、したがってキャッシュの正確さを改善/回復する。
運賃変更イベントの暗示は、推定が困難である。簡単に言うと、運賃は、特定フライトの価格を計算するのに使用する規則等の情報及び論理を含む。したがって、特定フライトの実際の価格を計算する場合、一組の運賃にアクセスし、どの運賃が関連し、実際に適用されるかを判定し、最後に価格を計算する。したがって、関係「フライト→運賃(複数可)」がある(しかし、この関係は、運賃が特定フライトに適用される制約が変化し得るので経時的に変化し得る)。しかし、もう一方の方向の関係「運賃→フライト」は、一般に追跡されない。即ち、どの運賃をどのフライトに適用するかは明らかではない。更に、運賃の変更は、基礎をなすデータ・ドメインから計算される膨大な量の価格に影響する可能性がある。
運賃イベントの影響を決定するために、MCP3とDCP2との間の通信を利用してMCP3が価格の計算に適用する運賃へのマッピングをDCP2に与えることができる。再計算指令に応答して価格を計算する場合、MCP3は、要求された価格を計算するためにアクセスした全運賃を記録する。次に、この情報は、運賃⇔フライトのマッピングに包括的に記憶され、MCP3によるあらゆる計算の間維持される。運賃変更イベントを受信すると、入力マネージャ5は、運賃変更イベントによって影響を受けるフライトを決定するためにこの包括的マッピングを検索し、これらのフライトを「更新済み」としてマークする。運賃変更は、上記で簡単に説明したように、旅行推奨価格の変更を必ずしも暗示しないことを留意されたい。
統合器7は、リアルタイム・イベントと基本確率モデルとの関係を考慮せずにキャッシュ化旅行推奨の再計算を始めるのではなく、イベントのキャッシュ化価格に対する影響の可能性を最初に評価する。そのようなイベントは、確率モデル内のイベントの見本に関して最初に分析される。
上記で概説したように、この分析の特定性は、使用する確率モデルの種類に依存する。概念モデルの場合、モデル生成過程からどのイベントが確率モデル内で考慮されたかがわかる。したがって、特定イベントがモデル内に存在するか否かを決定するために、到来するイベントとモデル生成過程からわかった確率モデルの特性とを照合する。
他方では、履歴統計モデルを使用でき、したがって、履歴統計モデルは、どのイベントがモデルの履歴統計データ基盤に誘導されているかをアプリオリにわからないことがある。この場合、特定イベントが確率モデル内の見本となるか否かを決定するために、以下のアプローチを取ることができる(完全を期すために:以下のアプローチは、いかなる特定の種類の確率モデルに限定されるものではなく、例えば概念モデルに採用もできる)。
全キャッシュ化事前計算データベース・クエリ結果によって形成されたデータ・ドメインの大きさに応じて、キャッシュ化データベース・クエリ結果は、以下「持ち分」(share)と呼ぶ、より小さな部分に細分される。事前計算データベース・クエリ結果が価格付き旅行推奨である例では、持ち分は、例えば起点−目的地ペアによって形成され、即ち、1つの持ち分は、同じ起点及び目的地の場所を有する全ての事前計算価格付き旅行推奨を含む。代替的に、データ・ドメインが大きさの限られたもののみである場合、細分を実施しない。言い換えれば、この場合、DCP2に保持される全事前計算データベース・クエリ結果を含むただ1つの持ち分がある。
非同期リアルタイム・イベントを検出した後、検出されたイベントのために、このイベントによって影響を受ける可能性がある、即ち、古くなる可能性が増大している事前計算データベース・クエリ結果を含む1つ又は複数の持ち分が特定される。少なくとも1つの持ち分の実際の正確さは、例えば、持ち分内の事前計算データベース・クエリ結果の特定又は無作為サンプルを再計算することにより、実際の正確さを推定して決定する。例えば、持ち分が10,000個の事前計算データベース・クエリ結果を含む場合、20個の事前計算データベース・クエリ結果のサンプルを再計算する。この再計算は、他の再計算と同様に実施される。DCP2は、再計算指令を生成し、MCP3に発行する。MCP3は、再計算を実施し、再計算の結果、即ち更新されたサンプル事前計算データベース・クエリ結果をDCP2に返信する。DCP2は、サンプル再計算の結果と、以前にキャッシュ化した対応するデータベース・クエリ結果とを比較し、例えば変化した(即ち古くなった若しくは不正確になっている)サンプル事前計算データベース・クエリ結果のパーセンテージ、及び/又は変化しない(即ち古くなっておらず、依然として正確であった)サンプル事前計算データベース・クエリ結果のパーセンテージを決定する。サンプル事前計算データベース・クエリ結果のこれらのパーセンテージは、持ち分全体の正確さの推定として持ち分全体に伝達される可能性があり、即ち、これらサンプルのパーセンテージから、持ち分全体がサンプルとして同様の(不)正確さであることを一般に結論付けできる。
次のステップでは、決定された持ち分の実際の正確さを確率モデルが予測する持ち分の正確さと比較する。この比較の結果に応じて、特定の非同期リアルタイム・イベントが確率モデル内の見本となるか否か、及び場合によっては特定の非同期リアルタイム・イベントがどの程度確率モデル内の見本となるかを結論付ける。決定した実際の正確さが、確率モデルが予測する正確さを所与の程度を超える程に下回る場合、即ち、サンプル正確さが、モデルが予測した正確さよりも実質的に低い場合、そのイベントは、確率モデル内に含めるように考慮されない。一方、決定した実際の正確さが、確率モデルが予測する正確さを所与の程度よりも低く下回る場合、或いは両方の正確さが同一である、又は決定した実際の正確さが、予測された正確さよりも更に高い場合、そのイベントは、確率モデル内の見本となるように考慮される。両方の正確さの間の差異は、イベントがどの程度モデル内に組み込まれているかという指標でもある。
サンプリング自体が、発生した非同期リアルタイム・イベントを最初の段階で検出する方法として認識できることに留意されたい。特定フライトが欠航になっているという航空会社からの指摘、又は販売促進キャンペーンの指摘等の非同期リアルタイム・イベントの明示的指摘に加えて又は代替的に、サンプリングを利用して、第3者が明示的に指摘しない非同期リアルタイム・イベントを暗示的に検出できる。この目的で、事前計算データベース・クエリ結果の全持ち分の実際の正確さを推定するために、全持ち分にわたって連続的又は規則的なサンプル処理を採用できる。このことにより、決定された実際の正確さと確率モデルが予測する正確さとの比較により、決定された実際の正確さが、確率モデルが予測する正確さよりも実質的に低いことが判明した場合、確率モデル内に反映されないイベントを暗示的に検出可能にする。
検出されたイベントによって影響を受ける可能性がある1つ又は複数の持ち分の特定は、イベントの特性及びイベントについての知識に依存することを更に留意されたい。例えば、イベントが周期的サンプリング処理によって暗示的に検出されている場合、影響を受ける可能性がある持ち分は、同時に決定されている(即ち、実際の正確さを決定されたこれらの持ち分は、予測した正確さよりも実質的に低い)。一方、イベントの明示的シグナリングは、影響を受ける可能性がある事前計算データベース・クエリ結果の指摘を含むこともできる。例えば、航空会社が特定フライトの欠航をシグナリングした場合、欠航便前後の時間の間の同じ起点と目的地との間のフライトの価格は、影響を受ける可能性があると考慮される可能性がある。更に、過去の経験から、どの(明示的にシグナリングした)イベントがどの事前計算データベース・クエリ結果の正確さに影響を与える可能性があるかを知ることができる。例えば、どのリアルタイム・イベント及びリアルライフ・イベントが、連続サンプリング処理により検出された持ち分の正確さの低下に関与しているかを再追跡し、このようにして、いくつかの非同期リアルタイム・イベントの通常の影響についての知識を獲得することが可能である。
次に、上記した、持ち分の実際の正確さ推定に対する分析、及び持ち分の実際の正確さと確率モデルが予測する正確さとの比較をより詳細に、より形式的に説明する。
1つの事前計算データベース・クエリ結果xの実際の正確さをAccと呼ぶ。事前計算データベース・クエリ結果xは、特定の時点で正確(Acc=1)、即ちその再計算結果に等しい、又は不正確(Acc=0)、即ちその再計算結果とは異なる、のいずれかである。全事前計算データベース・クエリ結果の収集を持ち分Dに論理的に分割できる。以下の考慮は、1つの特定の例示的持ち分Dに関連する。持ち分Dに含まれ、確率モデルが予測する事前計算データベース・クエリ結果の平均正確さは、Accmodel(D)と示される。一方、Dにおける実際に正確な事前計算データベース・クエリ結果の割合をAcc(D)と呼ぶ。
上記のように、Acc(D)を決定又は推定するために、DにおけるN個の事前計算データベース・クエリ結果のサンプル再計算を実施する。N個のうち正確な結果の数をACと呼び、即ちN個のサンプル事前計算データベース・クエリ結果を再計算した後、AC個の再計算されたデータベース・クエリ結果は、それらの以前にキャッシュ化した対応物と同一である一方で、(N−AC)個の再計算されたデータベース・クエリ結果は、それらの以前にキャッシュ化した対応物とは異なり、したがって不正確であることがわかっている。
上記のように、持ち分D内の1つの事前計算データベース・クエリ結果xに対する正確さの確率は、Acc(D)である。
このことは、二項式の法則AC〜B(N,ACC(D))を採用することにより、D内のN個のサンプル事前計算データベース・クエリ結果に対して一般化できる。したがって、N個のサンプルのうちK個の事前計算データベース・クエリ結果が正確である確率は、
である。
この法則の統計的期待値は、E(AC)=N×ACC(D)である。
したがって、関係
は、N個の事前計算データベース・クエリ結果のサンプル事前計算の結果により伝えられる、持ち分Dの実際の正確さの推定、Acc(D)である。一方、Accmodel(D)は、確率モデルが示すAcc(D)の正確さの推定である。
所与のリアルタイム・イベントが確率モデル内に存在するか否かを決定するために、両方の値が互いに異なる、具体的には
<<Accmodel(D)である場合の可能性があるケースでは、
又はAccmodel(D)がAcc(D)のより信頼できる近似値であるかどうか判定することが必要である。この判定を準備するために、2つの仮説H及びHを規定できる:
:確率モデルの予測は、持ち分Dの正確さを適切に示し、即ちAcc(D)≒Accmodel(D)である。
は、サンプリング処理によって生じた統計的偏りのためにAccmodel(D)よりも小さい(即ち、偶発的に、選択されたN個の事前計算データベース・クエリ結果は、Dにおける全事前計算データベース・クエリ結果の平均、及びしたがってN個のサンプルがAcc(D)を見本として反映しないという点でより正確である)。
:確率モデルにより予期されなかった何かが発生し、したがってAccmodel(D)は、Acc(D)の不適切な推定である。むしろ、サンプル再計算によって得られた実際の正確さ推定は、最適な利用可能な推定であり、即ちAcc(D)≒
である。
が真であるという判定D、又はHが真であるという判定Dの実施は、以下の方法で行うことができる:
実際の正確さが予測した正確さよりも所与の程度を超えて低い場合、確率モデルが予測する正確さが不適切である可能性は増大し、低減させる必要がある。例えば、Accmodel(D)は85%の正確さAcc(D)を示す一方で、サンプル再計算が受信した実際の正確さは、Dにおける正確な事前計算データベース・クエリ結果の20%のみを示す場合がそうである。この場合、Dが正しい判断である。しかし、サンプリングによって受信された実際の正確さ及びモデルが予測した正確さが類似する場合、即ち、両方の指摘の間の偏りが比較的小さい場合、確率モデルが予測する正確さがおそらく適切である。一例を挙げれば、Accmodel(D)が85%の正確さAcc(D)を示し、
がNが80%の正確さに達する場合がそうであり得る。この場合、Dが正しい判定である。
とDとの間の境界を規定するために、閾値KThを導入する:
AC>KThである場合、確率モデルが予測する正確さAccmodel(D)は、Acc(D)の適切な近似値として考慮され、Dが選択される。AC≦KThである場合、確率モデルが予測する正確さAccmodel(D)は、Acc(D)の適切な近似値として考慮されず、Dが選択される。
Thを適切な値に設定するために、確率モデルの質についての情報を有することが有利である。そのような情報は、通常、モデルを展開する前及び/又はモデルの継続使用中に実施されていたモデル検証処理から入手可能である。例えば、確率モデルの1年の使用の間に、確率モデルによって反映されない非同期リアルタイム・イベントがかなりまれであり、例えば365日のうち3日だけ発生することが観察されていた場合がある。この場合、Accmodel(D)が時間の99%について適切であり(=H)、時間の1%のみについて不適切である(=H)ことが仮定できる。別の例では、確率モデル内に含まれない非同期リアルタイム・イベントが1年のうち180日等、比較的頻繁に発生する場合がある。したがって、Accmodel(D)は1日おきのケースのみで適切である、即ち時間の最大50%で適切であり(=H)、それ以外の場合は不適切である(=H)ことが仮定できる。
確率モデルの過去の質/確実さを考慮することによってKThを設定する1つの例示的方法は、誤りの判定D(即ち、Accmodel(D)は、実際には適切な推定であるにもかかわらず、Acc(D)の適切な推定であるとみなされない)の確率を考慮することである。確率モデルの予測が正しい確率は:
として表すことができる。
仮説Hが真であり、誤りの判定Dが取られる確率αは、ACがKThよりも低い確率:
である。
この式は、確率モデルの過去の確実さに応じてαを選択し、KThを規定可能にする。例えば、確率モデルが時間の99%に関して正しかった場合、αは0.01に設定される。次に、KThの閾値を以前の式を使用して計算できる。K個の正確なサンプル再計算結果の数がKThよりも低い場合、即ち、サンプル再計算によって決定した実際の正確さの推定
は、Accmodel(D)よりも確実なAcc(D)の推定としてみなされる:
したがって、要約すると、ACがKTh以上である場合、非同期リアルタイム・イベントは、確率モデル内の見本となると考慮され、それぞれの事前計算データベース・クエリ結果の確率の修正は必要ではない。しかし、ACがKThを下回る場合、イベントは確率モデル内の見本とならないことが仮定される。
例えば販売促進キャンペーン又は整備イベントのような、予測可能ではないイベント、したがって確率モデル内に全く含まれないイベントに関して、イベントは、できるだけ早く処理される。一般に、このことは、特定のリアルタイム・イベントによって影響を受ける可能性があるこうした事前計算データベース・クエリ結果の確率が、修正、具体的には減少されることを意味する。イベントが確率モデル内に存在するか否かを決定する上記例を続けると、この修正は、サンプル再計算によって獲得したAcc(D)の推定、即ち
を持ち分Dにおける古くなった事前計算データベース・クエリ結果の確率に適用することによって任意選択で達成される。例えば、
がNがAccmodel(D)よりも25%低いことがわかっている場合、持ち分Dにおける事前計算データベース・クエリ結果のための確率モデルの現在の正確さ断定は、例えば同様に25%減少する。この例示的な修正は、図4bによって可視化される(図4のx軸及びy軸は、図4aと同じ意味を有する。即ち、x軸は最終再計算(=寿命t)以来の時間単位での時間を示し、y軸は正確さ/古さの確率を示す)。
この修正を行った後、どの事前計算データベース・クエリ結果を再計算すべきかという判定が通常通り、即ち、同様に確率の修正が起こっていないかのように取られる。上記で概説した例示的履歴統計モデルを再度参照すると、正確さ/古さに関する確率モデルが示す確率は、e−λitiである。しかし、この確率は、例えば上記で詳細に説明した方策を適用することにより、認識した非同期リアルタイム・イベントに応答して修正できるので、この確率は、実際には、時間tにおける推定正確さ/古さAcc tnが時間tn−1におけるその以前の値から計算されるステップ:
の後に計算されるステップであってもよい。
分析器6による次の正確さ計算は、やはり以前の値(リアルタイム・イベントに応答して修正された可能性がある)から開始する。
到来する非同期リアルタイム・イベントに応答する確率の修正、例えば確率モデルが予測する正確さは、それぞれの事前計算データベース・クエリ結果がMCP3によって次に再計算された後に再設定される。
運賃又は利用可能性の変更のような、少なくとも特定の程度に確率モデル内の見本となるイベントは、任意選択で蓄積され、イベントの出現は、確率モデルの予測と定期的に比較される。イベント・ピークがモデルと局所的に一致しないとき、即ち、イベントの突発的な逸脱が確率モデルの基礎をなす統計から著しく外れる場合、影響を受けた価格を古くなった可能性があるとしてマークし、できるだけ早くそれらの価格を再計算するようにする。このことにより、確率モデル内に既に存在する、したがって分析器6が予め行った決定により既に考慮されたイベントにより生じた「ノイズ」を除外する。
任意選択で、到来する非同期リアルタイム・イベントの扱いは、統合器7から機能的に独立した、又は統合器7の副構成要素である専用の構成要素、イベント・マネージャ・モジュールによって行う。イベントは、入力マネージャ5によって受信され、内部データ・リポジトリに集められることなく最初に記憶される。イベント・マネージャは、到来する非同期リアルタイム・イベントがあれば受信し、例えば上記で詳細に説明した方策を適用することによりイベントを処理し、可能性としては影響を受けた事前計算データベース・クエリ結果が古くなった/不正確である確率の修正を実施する。任意選択で、上記した方策を所与の数のイベントがイベント・マネージャによって認識されている場合にのみ適用し、次に、それに従って必要な場合にのみ各事前計算データベース・クエリ結果の推定正確さを修正する。
任意選択で、最適化の目的のために、統合器7は、内部データ見本8の格子面(grid−view)に作用し、即ち、統合器7は、孤立した様式で価格のセットに作用するのではなく、そのアルゴリズムの間で互いに隣接する価格の群を考慮する。このアプローチでは、隣接する価格データ・セットは、集合性質の値を有する単一のデータ・セットとしてみられる。集合データ・セットに作用すると、疎な再計算指令の生成を制限し、したがってMCP3における相互化及び最適化の機会が増大する。このことは、計算費用を低減する。
図5は、上記の詳細な説明を要約し、本明細書で提示するキャッシュ更新方法の概要を示す。
事前計算データベース・クエリ結果のキャッシュを最新に保持する処理は、キャッシュ化クエリ結果の不正確さの確率の決定(14)から開始する。この決定は、2つの論理レベルに位置する2つの行動から構成される。第1に及び一般に、統計及び確率データに基づく予測モデルは、特定のキャッシュ化クエリ結果が(仮説的に)再計算したクエリ結果に対応しない可能性を推定するために採用される。第2に、及びより具体的には、キャッシュ化クエリ結果が古くなる確率に影響を与える可能性があり、その確率が増大する可能性があるリアルタイム・イベントをそれぞれ考慮に入れる。こうしたリアルタイム・イベントは、リアルタイム・イベントが一般に特定のキャッシュ化クエリ結果の不正確さを確実に示すのではなく、この点において非確定的であることを特徴とする。したがって、リアルタイム・イベント発生時に、正確さ及び不正確さそれぞれの可能性に対する確率的な結論のみを出すことができる。
キャッシュ化データベース・クエリ結果が古くなったことが決定される確率に基づいて、DCP2がデータベース再計算指令を自動的に発行する(15)。こうした命令は、MCP3によって受信され、MCP3は、次に、それぞれの結果を再計算し、結果をDCP2に返信する(16)。今度は、DCP2は、結果を受信し、結果をローカル見本部8に記憶する(17)。これにより、1つの更新サイクルを終わりにし、次のサイクルが確率の決定(14)で再反復される。
次に、本発明のキャッシュ更新方策の手順のタイミングに関する特定の例を図6に関して説明する。この例では、DCP2は、再計算指令を20分ごとに生成するように構成され、即ち、キャッシュ化データが古くなったかどうかの確率を決定し、再計算指令を生成、発行するラウンド又はサイクルは、20分かかる。MCP3におけるリソースは、一日中アプリオリに知られ、DCP2は、MCP3で利用可能な計算リソースを認識し、したがって再計算の量をMCP3の利用可能なリソースと同期できる。
再計算サイクルの初めに、DCP2は、内部データベース8に記憶したキャッシュ化データベース・クエリ結果、即ち価格付き旅行推奨の現在の正確さを分析する。ラウンドは、20分のラウンド終了時にMCP3により処理される一組の再計算指令を生じさせることになる。一方、MCP3側では、最終サイクルからの指令が計算され、新たな価格推奨が生成され、DCPに返信され、このDCPで、新たな価格推奨は、記憶され、次のサイクルで繰り返される情報の分析及び更新のために利用可能である。
図6は、MCPが04:00から05:00a.m.の間の時間区間で著しい利用可能リソースを有し、そのため、多くの再計算をこの時間に実施できることを示す。しかし、その後、利用可能リソースは9:00a.m.までなく、そのため、再計算はその時間では可能ではない。その日の後、09:00a.m.から7:00p.m.までにいくつかのリソースがMCP3で利用可能である。
04:20a.m.でサイクルが開始される間、分析器6は、キャッシュの正確さを分析する一方で、統合器7は、それに応じて再計算指令を生成する。こうした指令は、MCP3によって04:40a.m.に実施されることになる。分析器6は、MCPがラウンドの開始時に受信したMCPの価格推奨に注目する。分析器6は、受信した価格と、価格の値が内部リポジトリに記憶されている以前の価格との間の差異を計数する。差異に基づき、分析器6は、繰り返される「揮発性」情報ソースを修正する。入力マネージャ5は、受信したMCP価格を更なる検査のために保存する。
4:40から5:00a.m.のサイクルでは、MCP3は、DCP2から受信した再計算指令を区間04:20から4:40a.m.の間に処理する。DCP2は、DCP2が、到来する時間スライス(05:00a.m.)の間及び09:00a.m.までのその次の時間スライスの間、いかなる再計算指令も生成できないことを認識している。しかし、DCP2は、データ・モデルを依然として連続的に分析して全キャッシュの価格付き旅行推奨の現在の正確さを更新する。DCP2は、08:40a.m.までの将来のサイクルごとに同じことを行うことになる。
08:40a.m.では、分析器6は、再計算を全く行わない前の4時間の間にキャッシュの正確さが低下したことを決定する。分析器6は、それに応じて以下のサイクルにわたって再計算指令を生成するが、09:00a.m.から7:00p.m.までのMCP3における利用可能リソースの量の限度のためにより少ない程度にだけ生成する。次に、09:00a.m.では、MCP3は、MCP3が前の区間(即ち08:40から09:00a.m.)で受信した新たな再計算指令を処理し始め、6:40から7:00p.m.まで続くラウンドの終了後、停止することになる。
その後、MCP3では夜間を通して更なる利用可能リソースはない。したがって、DCP2は、更なる再計算指令を何も生成しないが、確率モデル及び可能性としては到来するリアルタイム・イベントに基づきキャッシュの正確さを分析し続けることになる。
最後に、図7は、図2のキャッシュ・プラットフォーム2の機能を提供するコンピュータ・システムの概略図である。キャッシュ・プラットフォーム2内では、コンピュータ・システムに本明細書で論じる方法のいずれかを実施させる一組の命令を実行できる。キャッシュ・プラットフォーム2は、バス104を介して互いに通信するプロセッサ101、メイン・メモリ102及びネットワーク・インターフェース・デバイス103を含む。任意選択で、キャッシュ・プラットフォーム2は、スタティック・メモリ105及びディスク・ドライブ・ユニット106を更に含むことができる。ビデオ画面107、英数字入力デバイス108及びカーソル制御デバイス109は、配信リスト・ナビゲータ・ユーザ・インターフェースを形成できる。ネットワーク・インターフェース・デバイス103は、データ・キャッシュ・プラットフォーム2を計算プラットフォーム3、統計サーバ9等の予測モデルを満たすのに必要な統計データのリソース、揮発性データベース10及び最初の正確さデータベース11、リアルタイム・イベントのリソース、インターネット及び/又はあらゆる他のネットワークに接続する。上記した方法のいずれか1つ又は全てを具体化する命令のセット(即ちソフトウェア)110は、完全に又は少なくとも部分的に機械可読媒体、例えばメイン・メモリ102及び/又はプロセッサ101内に又はそれに接して存在する。ソフトウェア110が存在する機械可読媒体は、ディスク・ドライブ・ユニット106の一部である不揮発性データ・キャリア111(例えば取外し不可能磁気ハード・ディスク又は取外し可能光ディスク又は磁気ディスク)であってもよい。ソフトウェア110は、伝搬信号112としてインターネットを介し、ネットワーク・インターフェースデバイス103を通して更に送信又は受信できる。
本発明のキャッシュ更新方策は、キャッシュ再計算判定を自動的に生成する手段を提供する。キャッシュ再計算決定を自動的に生成する手段は、どのキャッシュ化クエリ結果を再計算すべきか決定し、計算プラットフォームで利用可能計算リソースを考慮することにより再計算を時間的にも制御する。したがって、一般に、キャッシュ化クエリ結果の正確さは、最新さ及び古さのそれぞれを経時的にモデル化する確率モデルに基づき推定される。この古さの分析は、1時間あたり、キャッシュ化データベース・クエリ結果の再計算の基礎をなす数十億のデータ・セットの処理を可能にする。

Claims (15)

  1. 分散データベース・システム内の事前計算データベース・クエリ結果を更新する方法であって、前記分散データベース・システムは、前記事前計算データベース・クエリ結果を維持するデータ・キャッシュ・プラットフォーム、及び前記計算プラットフォーム内に維持されたデータに基づき前記事前計算データベース・クエリ結果を計算する計算プラットフォームを備える、方法であり:
    −前記データ・キャッシュ・プラットフォームによって、古くなった前記事前計算データベース・クエリ結果の確率を決定することであって、
    −前記決定は、確率モデル及び非同期リアルタイム・イベント発生に依存し、
    −前記確率モデルは、前記データ・キャッシュ・プラットフォーム内に維持する前記事前計算データベース・クエリ結果と仮定した実際のデータベース・クエリ結果との間の不一致をモデル化し、
    −前記リアルタイム・イベントは、前記事前計算データベース・クエリ結果の有効期限に関して非確定的であり、前記データ・キャッシュ・プラットフォーム内に維持する前記事前計算データベース・クエリ結果と仮定した実際の前記データベース・クエリ結果との間の前記不一致に確率的な影響のみを及ぼし、
    −前記確率は、一般に、前記確率モデルに基づき決定され、可能性としては前記非同期リアルタイム・イベント発生時に修正される、決定すること;
    −古くなった前記事前計算データベース・クエリ結果の前記決定した確率に基づき前記事前計算データベース・クエリ結果を更新するために、前記データ・キャッシュ・プラットフォームによって再計算指令を前記計算プラットフォームに自動的に発行することであって、古くなった確率が所与の閾値を超える前記事前計算データベース・クエリ結果を再計算するように指令する、発行すること;並びに
    −前記データ・キャッシュ・プラットフォームにおいて、前記再計算指令の結果として更新した前記事前計算データベース・クエリ結果を受信すること
    を含む方法。
  2. 前記確率モデルは、統計履歴データに基づき前記計算プラットフォーム内に維持される前記データの揮発性をモデル化する、請求項1に記載の方法。
  3. −前記データ・キャッシュ・プラットフォームにおいて、到来する前記非同期リアルタイム・イベントが前記確率モデル内の見本となるかどうかを分析すること
    を更に含む、請求項1又は2に記載の方法。
  4. 到来する前記非同期リアルタイム・イベントが前記確率モデル内の見本となるかどうかを分析することは、
    −前記データ・キャッシュ・プラットフォーム内に維持される前記事前計算データベース・クエリ結果の持ち分の正確さを決定することであって、前記事前計算データベース・クエリ結果の前記持ち分は、到来する前記非同期リアルタイム・イベントによって影響を受ける可能性がある、決定すること;
    −前記確率モデルによって、前記決定した正確さを前記事前計算データベース・クエリ結果の前記持ち分の前記正確さの予測と比較すること;及び
    −前記決定した正確さが前記予測した正確さを所与の程度に下回る場合に、到来する前記非同期リアルタイム・イベントが前記確率モデル内の見本とならないことを決定すること
    を含む請求項3に記載の方法。
  5. 前記事前計算データベース・クエリ結果の前記持ち分の前記正確さを決定することは、サンプル再計算指令を前記計算プラットフォームに発行し、前記サンプル再計算指令の結果を前記データ・キャッシュ・プラットフォーム内に以前に維持されたそれぞれの前記事前計算データベース・クエリ結果と比較することを含む、請求項4に記載の方法。
  6. −前記確率モデル内の見本とならないと決定される前記リアルタイム・イベントに関して、影響を受ける可能性がある前記事前計算データベース・クエリ結果に関する再計算指令をできるだけ早く発行すること
    を更に含む請求項3から5のうちいずれか一項に記載の方法。
  7. −前記確率モデル内の見本となると決定される前記リアルタイム・イベントに関して、前記リアルタイム・イベントを特定の時間期間にわたって蓄積し、実際に発生、蓄積した前記リアルタイム・イベントを前記確率モデル内の見本と比較し、実際に発生、蓄積した前記リアルタイム・イベントが前記確率モデル内の前記リアルタイム・イベント見本から所定の程度に外れる場合、影響を受ける可能性がある前記事前計算データベース・クエリ結果に対して再計算指令をできるだけ早く発行すること
    を更に含む請求項4から6のうちいずれか一項に記載の方法。
  8. 古くなった前記事前計算データベース・クエリ結果の前記確率を決定し、前記再計算を発行するときの前記データ・キャッシュ・プラットフォームは、前記計算プラットフォーム内に維持される隣接データ・セットの群に対応する事前計算データベース・クエリ結果の格子を考慮する、請求項1から7のうちいずれか一項に記載の方法。
  9. 前記データ・キャッシュ・プラットフォームは、前記計算プラットフォームでの利用可能計算リソースの量に基づき前記事前計算指令を発行する、請求項1から8のうちいずれか一項に記載の方法。
  10. 前記分散データベース・システムは、旅行予約システムであり、前記計算プラットフォームは、旅行利用可能性及び運賃に関する情報を維持し、前記データ・キャッシュ・プラットフォームは、前記旅行利用可能性情報及び前記運賃から計算された、価格付き旅行推奨を維持する、請求項1から9のうちいずれか一項に記載の方法。
  11. 前記リアルタイム・イベントは、フライト運賃の変更、飛行機座席利用可能性の変更、顧客の航空券要求及び/又は欠航を含む、請求項10に記載の方法。
  12. 前記分散データベース・システムは、前記計算プラットフォームに接続された少なくとも1つのアプリケーション・プラットフォームを含み、前記少なくとも1つのアプリケーション・プラットフォームは、前記事前計算データベース・クエリ結果を維持、構成し、前記少なくとも1つのアプリケーション・プラットフォーム内に記憶した前記データベース・クエリ結果は、前記データ・キャッシュ・プラットフォームが発行した前記再計算指令の結果、前記計算プラットフォームによってポピュレート及び/又は更新される、請求項1から11のうちいずれか一項に記載の方法。
  13. 計算プラットフォーム内に維持されるデータに基づき前記計算プラットフォームが計算した事前計算データベース・クエリ結果を維持するデータ・キャッシュ・プラットフォームであって、
    −古くなった前記事前計算データベース・クエリ結果の確率を決定し、
    (−前記決定は、確率モデル及び非同期リアルタイム・イベント発生に依存し、
    −前記確率モデルは、前記データ・キャッシュ・プラットフォーム内に維持する前記事前計算データベース・クエリ結果と仮定した実際のデータベース・クエリ結果との間の不一致をモデル化し、
    −前記リアルタイム・イベントは、前記事前計算データベース・クエリ結果の有効期限に関して非確定的であり、前記データ・キャッシュ・プラットフォーム内に維持する前記事前計算データベース・クエリ結果と仮定した実際の前記データベース・クエリ結果との間の前記不一致に対し確率的な影響のみを及ぼし、
    −前記確率は、一般に、前記確率モデルに基づき決定され、可能性としては前記非同期リアルタイム・イベント発生時に修正される);
    −古くなった前記事前計算データベース・クエリ結果の前記決定した確率に基づき前記事前計算データベース・クエリ結果を更新するために、再計算指令を前記計算プラットフォームに自動的に発行し(古くなった確率が所与の閾値を超える前記事前計算データベース・クエリ結果を再計算するように命令する);及び
    −前記再計算指令の結果として更新した前記事前計算データベース・クエリ結果を受信する
    ように構成したデータ・キャッシュ・プラットフォーム。
  14. −到来する非同期リアルタイム・イベントが前記確率モデル内の見本となるかどうかを分析し;
    −前記確率モデル内の見本とならない前記リアルタイム・イベントに関して、それぞれの特定の前記事前計算データベース・クエリ結果に関する再計算指令をできるだけ早く発行し;
    −前記確率モデル内の見本となる前記リアルタイム・イベントに関して、前記リアルタイム・イベントを特定の時間期間にわたって蓄積し、実際に発生、蓄積した前記リアルタイム・イベントを前記確率モデル内の前記リアルタイム・イベント見本と比較し、実際に発生、蓄積した前記リアルタイム・イベントが前記確率モデル内の前記リアルタイム・イベント見本から所定の程度に外れる場合、影響を受ける可能性がある前記事前計算データベース・クエリ結果に関する再計算指令をできるだけ早く発行する
    ように更に構成した請求項13に記載のデータ・キャッシュ・プラットフォーム。
  15. コンピュータ・プログラム命令を中に記憶させた非一時的コンピュータ可読記憶媒体であって、前記コンピュータプログラム命令がコンピュータ・システム上で実行されると、前記コンピュータ・システムは:
    −古くなった事前計算データベース・クエリ結果の確率を決定し、
    (−前記決定は、確率モデル及び非同期リアルタイム・イベント発生に依存し、
    −前記確率モデルは、前記コンピュータ・システム内に維持する前記事前計算データベース・クエリ結果と仮定した実際のデータベース・クエリ結果との間の不一致をモデル化し、
    −前記リアルタイム・イベントは、前記事前計算データベース・クエリ結果の有効期限に関して非確定的であり、前記コンピュータ・システム内に維持する前記事前計算データベース・クエリ結果と仮定した実際の前記データベース・クエリ結果との間の前記不一致に対し確率的な影響のみを及ぼし、
    −前記確率は、一般に、前記確率モデルに基づき決定され、可能性としては前記非同期リアルタイム・イベント発生時に修正される);
    −古くなった前記事前計算データベース・クエリ結果の前記決定した確率に基づき前記事前計算データベース・クエリ結果を更新するために、再計算指令を自動的に発行し(古くなった確率が所与の閾値を超える前記事前計算データベース・クエリ結果を再計算するように指令する);及び
    −前記再計算指令の結果として、更新した前記事前計算データベース・クエリ結果を受信する、非一時的コンピュータ可読記憶媒体。
JP2015526899A 2012-08-14 2013-08-09 キャッシュ化データベース・クエリ結果の更新 Active JP6162240B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/585,286 US9235620B2 (en) 2012-08-14 2012-08-14 Updating cached database query results
EP12368020.9A EP2698729B1 (en) 2012-08-14 2012-08-14 Updating cached database query results
EP12368020.9 2012-08-14
US13/585,286 2012-08-14
PCT/EP2013/002390 WO2014026753A1 (en) 2012-08-14 2013-08-09 Updating cached database query results

Publications (2)

Publication Number Publication Date
JP2015531129A true JP2015531129A (ja) 2015-10-29
JP6162240B2 JP6162240B2 (ja) 2017-07-12

Family

ID=49003740

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015526899A Active JP6162240B2 (ja) 2012-08-14 2013-08-09 キャッシュ化データベース・クエリ結果の更新

Country Status (11)

Country Link
EP (1) EP2885725B1 (ja)
JP (1) JP6162240B2 (ja)
KR (1) KR101972199B1 (ja)
CN (1) CN104471573B (ja)
AU (1) AU2013304366B2 (ja)
BR (1) BR112014031390A2 (ja)
CA (1) CA2875735C (ja)
ES (1) ES2714676T3 (ja)
IN (1) IN2014DN10461A (ja)
SG (1) SG11201408814XA (ja)
WO (1) WO2014026753A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984165B2 (en) 2014-02-13 2018-05-29 Amadeus S.A.S. Increasing search result validity
WO2015120968A1 (en) * 2014-02-13 2015-08-20 Amadeus S.A.S. Increasing search result validity
ES2689305T3 (es) * 2014-02-13 2018-11-13 Amadeus S.A.S. Aumentar la validez del resultado de búsqueda
US9582536B2 (en) 2014-02-19 2017-02-28 Amadeus S.A.S. Long-term validity of pre-computed request results
US10395294B2 (en) 2014-11-03 2019-08-27 Amadeus S.A.S. Managing pre-computed search results
EP3016000A1 (en) 2014-11-03 2016-05-04 Amadeus S.A.S. Managing pre-computed search results
CN107004026B (zh) * 2014-11-03 2020-09-22 艾玛迪斯简易股份公司 管理预先计算的搜索结果
EP3392788A1 (en) 2015-08-03 2018-10-24 Amadeus S.A.S. Handling data requests
US20180075391A1 (en) * 2016-09-15 2018-03-15 Travelator Inc. Network-based real-time enterprise travel management apparatus, methods, and systems
CN110858204B (zh) * 2018-08-16 2023-09-19 中国移动通信集团重庆有限公司 查询请求的处理方法、设备和介质
FR3086412B1 (fr) 2018-09-20 2020-10-30 Amadeus Sas Recalcul des resultats de recherche precalcules
CN109788305B (zh) * 2018-12-10 2021-03-02 北京爱奇艺科技有限公司 一种缓存数据的刷新方法及装置
FR3092920B1 (fr) * 2019-02-14 2022-04-01 Amadeus Traitement d’interrogations de base de données complexes
FR3093574B1 (fr) 2019-03-04 2021-10-01 Amadeus Traitement de données distribuées
FR3093575B1 (fr) * 2019-03-04 2021-12-03 Amadeus Traitement de données distribuées
CN110795457B (zh) * 2019-09-24 2023-05-05 苏宁云计算有限公司 数据缓存处理方法、装置、计算机设备和存储介质
US11409740B2 (en) 2020-08-10 2022-08-09 Google Llc Anticipatory pre-execution of data queries
US11593356B2 (en) * 2020-09-11 2023-02-28 ForgeRock, Inc. Never stale caching of effective properties
AU2021393771A1 (en) 2020-12-04 2023-06-22 Amadeus S.A.S. Processing search requests
US11341137B1 (en) 2020-12-04 2022-05-24 Amadeus S.A.S. Processing search requests
EP4009188A1 (en) 2020-12-04 2022-06-08 Amadeus S.A.S. Processing search requests

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004504681A (ja) * 2000-07-17 2004-02-12 エプリケーション ネットワークス リミテッド キャッシュ分散ネットーク上に静的及び動的コンテンツをキャッシュすることによる、WWWサイトのビット・レートの節約及びQoS改善
WO2006046486A1 (ja) * 2004-10-27 2006-05-04 Nec Corporation 資源管理システム、資源情報提供方法、及び、プログラム
JP2011186903A (ja) * 2010-03-10 2011-09-22 Fuji Electric Co Ltd 遠隔監視装置および該装置におけるデータアクセス方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128701A (en) * 1997-10-28 2000-10-03 Cache Flow, Inc. Adaptive and predictive cache refresh policy
US6725333B1 (en) * 1999-04-22 2004-04-20 International Business Machines Corporation System and method for managing cachable entities
AU3638401A (en) 1999-11-01 2001-05-14 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US7085747B2 (en) * 2001-09-26 2006-08-01 J Koninklijke Philips Electronics, Nv. Real-time event recommender for media programming using “Fuzzy-Now” and “Personal Scheduler”

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004504681A (ja) * 2000-07-17 2004-02-12 エプリケーション ネットワークス リミテッド キャッシュ分散ネットーク上に静的及び動的コンテンツをキャッシュすることによる、WWWサイトのビット・レートの節約及びQoS改善
WO2006046486A1 (ja) * 2004-10-27 2006-05-04 Nec Corporation 資源管理システム、資源情報提供方法、及び、プログラム
US20080141261A1 (en) * 2004-10-27 2008-06-12 Nec Corporation Resource Management System, Resource Information Providing Method and Program
JP2011186903A (ja) * 2010-03-10 2011-09-22 Fuji Electric Co Ltd 遠隔監視装置および該装置におけるデータアクセス方法

Also Published As

Publication number Publication date
CA2875735A1 (en) 2014-02-20
BR112014031390A2 (pt) 2017-06-27
CN104471573A (zh) 2015-03-25
CA2875735C (en) 2020-09-15
IN2014DN10461A (ja) 2015-08-21
ES2714676T3 (es) 2019-05-29
AU2013304366A1 (en) 2015-02-26
KR20150043338A (ko) 2015-04-22
WO2014026753A1 (en) 2014-02-20
SG11201408814XA (en) 2015-01-29
CN104471573B (zh) 2017-07-18
EP2885725A1 (en) 2015-06-24
EP2885725B1 (en) 2018-12-12
KR101972199B1 (ko) 2019-04-24
JP6162240B2 (ja) 2017-07-12
AU2013304366B2 (en) 2016-05-12

Similar Documents

Publication Publication Date Title
JP6162240B2 (ja) キャッシュ化データベース・クエリ結果の更新
US9235620B2 (en) Updating cached database query results
US20160171008A1 (en) Updating cached database query results
EP2842085B1 (en) Database system using batch-oriented computation
US6804658B2 (en) Method and system for origin-destination passenger demand forecast inference
US20110106574A1 (en) Query Widening for Query Caches for Travel Planning Systems
US20040249799A1 (en) Query caching for travel planning systems
US7840587B2 (en) Query caching for travel planning systems
EP2911070B1 (en) Long-term validity of pre-computed request results
EP3128441A1 (en) Handling data requests
US10956955B2 (en) Managing pre-computed search results
EP2698729B1 (en) Updating cached database query results
KR101593890B1 (ko) 네트워크에서 부하를 분배하는 시스템 및 방법
WO2015124275A1 (en) Long-term validity of pre-computed request results
CN107004026B (zh) 管理预先计算的搜索结果
EP3016000A1 (en) Managing pre-computed search results

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20150831

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151014

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160509

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170509

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170614

R150 Certificate of patent or registration of utility model

Ref document number: 6162240

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250