CN104471573A - 更新高速缓存的数据库查询结果 - Google Patents

更新高速缓存的数据库查询结果 Download PDF

Info

Publication number
CN104471573A
CN104471573A CN201380037889.4A CN201380037889A CN104471573A CN 104471573 A CN104471573 A CN 104471573A CN 201380037889 A CN201380037889 A CN 201380037889A CN 104471573 A CN104471573 A CN 104471573A
Authority
CN
China
Prior art keywords
query result
database query
precomputation
probability
real
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
CN201380037889.4A
Other languages
English (en)
Other versions
CN104471573B (zh
Inventor
D·克拉博瑞尼
G·莱纳德
B·贾宁
L·伊斯纳尔迪
N·麦洛特
C-A·罗伯林
R·达尼埃罗
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.)
This Simple And Easy Joint-Stock Co Of Emma's Enlightening
Amadeus SAS
Original Assignee
This Simple And Easy Joint-Stock Co Of Emma's Enlightening
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 This Simple And Easy Joint-Stock Co Of Emma's Enlightening filed Critical This Simple And Easy Joint-Stock Co Of Emma's Enlightening
Publication of CN104471573A publication Critical patent/CN104471573A/zh
Application granted granted Critical
Publication of CN104471573B publication Critical patent/CN104471573B/zh
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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/14Travel agencies

Abstract

一种数据高速缓存平台维护由计算平台基于在计算平台中维护的数据计算的预计算的数据库查询结果并且被配置为确定预计算的数据库查询结果是过时的概率,以基于确定的预计算的数据库查询结果是过时的概率向计算平台自动地发出用于更新预计算的数据库查询结果的重新计算命令并且接收作为重新计算命令的结果的更新的预计算数据库查询结果。概率确定取决于概率模型和异步实时事件的发生,实时事件关于高速缓存数据库查询结果的期满是不确定的并且对在数据高速缓存平台中维护的预计算数据库查询结果与推测的实际数据库查询结果之间的差异仅仅具有概率性的影响。

Description

更新高速缓存的数据库查询结果
技术领域
本发明针对数据库技术领域。更具体地,它关注预计算和高速缓存数据库查询结果并且保持这些结果最新的策略。
背景技术
在数据库技术中常见的问题是确保对需要处理大量数据的数据库查询的短的响应时间。例如,此类计算能力消耗处理不得不响应于仅包含很少的输入信息(例如仅仅指定一打可能参数中的一两个参数和/或指定的参数值范围是广泛的)的所谓的“开放查询”而执行,并且因此,一般导致大量的结果。通过增加硬件性能加速数据处理的可能性是有限的。因此,改善大数据量处理下的机制引起人们关注。
缩短查询时间的一种一般方法是预计算期望的查询并且在高速缓存系统中维护对应的查询结果。查询接着实际上不在大的数据库上处理,而是针对高速缓存系统。
但是,此类高速缓存方法伴随的另一个问题是保持预计算的查询结果最新以便保证由高速缓存的结果响应的查询正确地反映对应大型数据库的状态。在基础数据改变情况下,高速缓存的查询结果变得过时并且高速缓存系统将返回不正确的结果。因此,需要高速缓存系统如何可以保持最新的策略。
现有技术领域已知各种相对简单的更新策略,类似例如,频繁地重新计算整个数据域、手动地建立并且维护重新计算计划表并且当它们变得太旧时重新计算数据。
稍微更加复杂的更新策略已被开发,如例如由WO 01/33472和WO 02/25557描述的。
WO 01/33472关注用在旅行计划系统中的可用性系统。该系统包括具有关于航空公司座位的可用性信息条目的高速缓存。高速缓存管理器管理高速缓存中的条目信息以便保持高速缓存中的信息正确、最新、完全或尽可能有用。响应于针对高速缓存的查询,高速缓存管理器确定存储的回答是否失效并且如果是此情况,则向可用性信息的源发送可用性查询。要被修改的高速缓存条目被异步通知从外部系统获得并且由确定性的、预测性的或统计性的模型确定。
类似地,WO 02/25557涉及信息检索系统,其中从信息源接收到的信息被高速缓存以备将来使用,诸如未来客户端请求。可以生成主动查询以填充高速缓存和/或更新目前高速缓存的信息。在航空公司信息系统中,基于诸如起飞时间的接近度、高速缓存数据的年龄、在飞机中的剩余座位、假日或特别事件或装置类型之类的统计量或预测指示对主动查询进行排序。此外,由外部通知从诸如AVS消息之类的航空公司接收更新。
此外,WO 99/22315描述用于通过利用基于统计量的概率模型自动地刷新高速缓存中的文档的机制。对于每个文档,高速缓存确定概率高速缓存的对象i在特定时间t处失效(即服务器已经改变了那个对象)的Psi(t),和由用户以请求时间h请求对象i的概率Pri(h)。高速缓存刷新具有最高乘积Pi=Psi(t)×Pri(h),即过时的对象应下一个请求被返回到用户的概率,的那些对象。为了维护这些概率值,高速缓存维护并跟踪诸如在服务器更新之间的估计的平均间隔EUI之类的高速缓存的对象的历史统计。对象的EUI例如在对象本身被服务器更新或在它的估计的平均刷新时间已经过去之后对象不被更新时更新。
发明内容
根据本发明,提供了在分布式数据库系统中更新预计算的数据库查询结果的方法。分布式数据库系统包括维护预计算的数据库查询结果的数据高速缓存平台和基于在计算平台中维护的数据计算预计算的数据库查询结果的计算平台。数据高速缓存平台确定预计算的数据库查询结果是过时的概率。此确定取决于概率模型和异步实时事件的发生。概率模型对维护在数据高速缓存平台中的预计算的数据库查询结果与推测的实际数据库查询结果之间的差异建模。实时事件关于预计算的数据库查询结果的到期是不确定的并且对维护在数据高速缓存平台中的预计算的数据库查询结果与推测的实际数据库查询结果之间的差异仅仅具有概率性的影响。概率一般基于概率模型确定并且在异步实时事件的发生时可能进行修改。数据高速缓存平台基于确定的预计算的数据库查询结果是过时的概率向计算平台自动地发出用于更新预计算的数据库查询结果的重新计算命令。具有比其它结果更高的过时概率的预计算的数据库查询结果被命令以被重新计算。作为重新计算命令的结果,数据高速缓存平台接收更新的预计算的数据库查询结果。
根据另一个方面,数据库高速缓存平台被配置为运行上面描述的方法。
根据另一个方面,提供非瞬时的计算机可读存储介质,其被布置为在计算机系统上运行时执行如上所述的方法。
在从属权利要求中阐述进一步的方面。
附图说明
将参考附图描述本发明。相似的参考标号一般指示相同或功能上类似的元件。
图1示出了分布式数据库系统的概览;
图2显示了根据实施例的分布式数据库系统的更详细的视图;
图3示出了根据实施例的高速缓存平台的组件;
图4a可视化了根据概率模型随时间的波动效果;
图4b可视化了响应于实时事件的概率模型的修正;
图5描述根据方法的实施例的流程图;
图6显示了根据实施例的可用于重新计算的示例性资源;
图7显示了根据实施例的高速缓存平台计算机的示意性表示。
具体实施方式
一般性描述
在转向基于图的详细描述之前,首先将参考图1阐述一些一般方面。
为了能够处理需要基于大量基础数据的计算的批量计算请求或数据库查询,对应于期望的查询的数据库查询结果一般被预计算并且高速缓存(随后,术语“查询”被用作包括诸如事务查询之类的任何类型的信息检索请求、对批量计算和其它形式的请求的一般术语)。高速缓存的结果被存储并响应于实际上发生的查询返回给查询实体。图1示出了在抽象级别上的此类数据库系统1。基本数据被保存在连接到高速缓存平台2的计算平台3中。高速缓存平台2将重新计算命令发出到计算平台3,其随后将对应的结果发回到其中存储预计算的查询结果的高速缓存平台2。
高速缓存预计算的查询结果的此方法导致一般问题,即基础数据域的数据可以随时间变化,并且因此高速缓存的预计算的查询结果变得过时。仍然是最新的,即匹配对应的实时计算等价物的高速缓存的查询结果(将根据需要实际计算而不让高速缓存预计算的结果可用的结果)在下文中被称为“准确的”高速缓存的结果。因此,当高速缓存正确地表示高速缓存的查询结果基础下的数据域的当前状态时,高速缓存一般是准确的。
一般地,为了基于高速缓存返回正确结果,人们想要维护响应于数据库查询被提供到查询实体的高速缓存的数据库查询结果与他们的实时计算等价物之间的高度相关性。但是,同时期望最小化由重新计算引起的计算资源消耗,即避免诸如对仍然准确的高速缓存的查询结果的重新计算之类的任何不必要的重新计算。计算资源是有限的,并且一般地不存在足够的计算资源以在所有时间重新计算所有高速缓存的查询结果。因此,需要找到高速缓存准确性与可用的计算能力的利用率之间的折衷。
保持预计算的查询结果的高速缓存最新的简单方法具有若干缺点。
根据数据量和可用计算资源频繁重新计算整个数据域,例如每日一次,可以确保高速缓存准确性与实时响应之间的合理平衡。但是,此方法就硬件资源消耗而言都是几乎不可升级并且效率低的。尤其是,那些因为对应的基础数据未曾改变而仍然有效的查询数据也被重新计算。
由人类管理员手动地制定重新计算计划表以确定哪些查询结果是在哪些时间被重新计算可以证明对特定目是高效的,但是它是刚性的并且不灵活。当计划表下面的假设和条件改变时,计划表需要再次被重新制定。它也不能动态地跟踪在基础数据域中发生大量改变时可能发生的高速缓存质量的急剧降低。也难以手动地设计此类计划表,例如由于缺少客观质量标准,并且就人工成本而言难以维护。
更进一步方法是当数据变得太旧时重新计算数据。但是,根据基础数据的本质和要被预计算的查询结果,可能难以评估“旧”的良好阈值。
为了使重新计算更高效,应当定义度量以评估重新计算是多么“不必要”。例如,如果证明小于计算的查询结果的一半是过时的则不值得每天重新激发整个大量的预计算。另一方面,如果已知特定类的查询结果频繁地改变,则每日重新计算它们若干次可能对准确性有好处。因此,考虑关于准确性的关联的收益和重新计算的成本这两者,需要评价或估计查询结果准确性的有效方式。
根据这里呈现的高速缓存更新策略,数据库查询结果的重新计算被基于高速缓存的数据库查询是过时的,即潜在地不同于由另一个重新计算获得的结果的概率决定。仅仅那些至少具有特定的、预先确定的概率的不准确性的高速缓存的查询结果被重新计算,而其它仍然可能准确地反映基础数据,即它们具有是过时的较低概率的高速缓存的查询结果不被重新计算。
作为第一方面,更新这里呈现的高速缓存的策略依赖于基于预测模型估计预计算的数据库查询结果的整个高速缓存的准确性。作为第二方面,也检查那些估计是否一般符合事实,验证基于模型的重新计算策略仍然对可以充当指示的实际实时(和现实)事件的发生有效,所述指示是例如,高速缓存的查询之下的数据的有效部分已被改变并且–由于这些改变-同时对应的高速缓存的查询是过时的。
高速缓存准确性的估计一般依赖的预测模型对高速缓存的查询结果与推测的实际数据库查询结果之间的差异建模,即它接近任何高速缓存的查询结果的准确性或不准确性。模型对例如高速缓存的结果随时间的可能波动建模。对高速缓存的结果波动的推测是从关于相应的数据域的主题的(过去的)真实世界经验中推出和断定的。因此,预测模型通常是根据预计算的数据库查询结果的波动和/或准确性对现实的表示。
可以采用各种类型的模型。例如,预测模型可以是由被称为科学建模的结构化建模过程生成的概念模型。建模需要识别并选择现实世界环境的那些方面和事件(这里例如:对预计算和高速缓存的查询结果随时间降低的波动和准确性有影响的方面和事件)并且不考虑可能对建模目的不特别相关的其他方面。此外,识别和选择的方面可以被以诸如计算机程序和/或数学等式之类的可处理的形式抽象并公式化/实施。此类概念模型也可以充当用于模拟预计算的数据库查询结果随时间的行为(即波动/准确性)的模拟方法。可替换地,采用的预测模型可以是基于在过去(例如三个月)在给定时间段中监控并评估例如预计算的查询结果的波动/准确性并且外推将来确定的趋势的历史统计模式。以下进一步给出此类历史统计模式的具体示例。
例如,基础数据可以位于航空旅行的范围并且包含关于诸如出发地和目的地机场、航空公司、出发和返回日期、费用、订位级别之类的航班信息。此航空旅行相关数据被保存在计算平台并由顾客查询以便获得航空航班的可用性和价格的了解。基于基本航班数据计算价格是费资源和费时的。因此,在本高速缓存平台中预计算并且高速缓存实际价格。在此示例中,概率模型建模航班价格随时间的波动。
建立此类模型需要的知识可以取自先于在出发日期之前的航班价格的情况和发展的现实世界经验。例如,大家都知道航班价格在相应的出发日期以前的一个月前的时间段内保持相对稳定,但是在出发日期以前的本月期间变得更加波动。因此,概率模型指示属于在下月即将到来的航班的预计算的高速缓存的价格应当比与在更远的将来航班相关联的此类预计算的价格更经常地重新计算。
除利用概率模型建模高速缓存准确性之外,通过对实时事件的反应防止高速缓存准确性的严重下降。在接收可能具有对高速缓存的查询结果的正确性有影响的预定实时事件时,改进重新计算的决定。实时事件是异步的,即它们发生的时间点不是预先确定的–它们可以在任何时候发生。为了能够接收并处理到来的实时事件,高速缓存数据平台2安装有到通信源的外部接口,此通信源根据有关信息通知高速缓存数据平台。
此类实时事件可以涉及在预测模型中未考虑的特定情况。例如,一部分高速缓存的价格可以受促销的影响,而其它价格可以在一年的特定时间(诸如度假季,圣诞节等等)变得更波动。还有类似交易会、运动会等的“例外”情况,诸如罢工或自然灾害之类的随机事件可以改变“正常”模型因果性下的推测。当响应于表示此类例外情况的相应实时事件确定高速缓存的查询结果是过时的概率时,这些具体影响可以得到考虑。可替换地,诸如交易会、度假季、运动会等等之类的预定事件的影响可以在事件日期之前及时被引入概率模型。
重要的是注意这里呈现的更新策略能够考虑“不确定的”事件,即此类事件并非令具备确定性的一个或多个预计算的高速缓存查询结果无效,而是仅仅指示高速缓存的数据库查询结果过时的概率可能增加。换句话说,这些事件相对于高速缓存的查询结果的准确性是不确定的并且仅仅对维护在高速缓存平台2中的高速缓存的查询结果与从假设的重新计算产生的推测的实际数据库查询结果之间的差异有概率性的影响。这不同于在WO 01/33472和WO 02/25557中描述的提议,在这两个文献中,AVS消息,例如,指示特定航班已被取消。因此,在接收这样的AVS消息时,肯定地知道相应的飞机座位不再可用。
例如,关于如上所述的旅行相关数据存储的情况,仅仅对高速缓存的查询结果的准确性具有潜在影响的实时事件可能是费用更新。费用是包括类似出发和目的地城市、订位级别、航班类型(单程或往返旅程)、金额和限定对于实际上应用的费用必须满足的约束的规则之类的参数的数据集合。因此,费用表示用于具体航班的价格计算的基本数据。如果用于具体的起点-目的地-城市对的费用由航空公司更新,则可以增加关于此城市对的预计算和高速缓存的航班价格不再正确的可能性。但是,从数据高速缓存平台2的视角,这不确定,因为由预计算平台3在预计算高速缓存价格时实际上应用的费用是数据高速缓存平台2所不知道的。例如,应用于先前预计算的费用可能实际上没有被改变,并且由费用改变事件指示的费用改变没有改变先前相关的费用仍然适用并且因此以前计算的价格保持有效的事实。或者,预先应用的费用实际上被改变,但是–由于改变–另一个费用现在应用于正被讨论的航班价格的计算,最后它具有高速缓存的价格实际上保持有效的效果。
因此,基于此类实时事件的观察,数据高速缓存平台2只能猜测某些高速缓存的查询结果现在是过时的不确定的可能性,并且为保持高速缓存准确性,重新计算它们会是有利的。但是,这不是确定事实并且很可能是相应的高速缓存的查询结果实际上仍然是准确的–虽然它们是过时的概率已经增加。
高速缓存的数据库查询结果是过时的概率的确定被分为两个逻辑步骤执行:通常,在第一逻辑层次,通过利用概率性预测模型标识概率。随后,在第二逻辑层次,这些确定的概率可以响应于到来的实时事件修正。
基于以这样的方式确定的概率,数据高速缓存平台2自动地生成并且经由两个实体(参见图1)之间的适当网络接口向重新计算平台3发出重新计算命令。通常,对于与具有较低的过时概率的其它高速缓存的查询结果相比具有高的过时概率的那些高速缓存的查询结果生成重新计算命令。此一般经验法则可以通过使用概率的阈值实施:具有在此类阈值上的确定的过时的概率的高速缓存的查询结果需要被重新计算。相应地,发出相应的重新计算命令。具有等于或低于此类阈值的确定的过时的概率的高速缓存的查询结果被认为仍然有可能是准确的并且因此不需要被重新计算。因此,相对于这些高速缓存的查询结果没有发出重新计算命令。
在发出重新计算命令之前由数据高速缓存平台2考虑在特定时间可用的计算容量。为了能够考虑可用资源,数据高速缓存平台2需要具有关于计算平台3的容量利用率和空闲计算资源的程度和/或计划表的相应了解。经由两个平台之间的通信链路填充相关信息。
响应于接收重新计算命令,重新计算平台3重新计算相应的查询结果并且将它们返回到数据高速缓存平台2,其中它们被存储并且监控和确定概率重现。
在响应于特定实时事件决定重新计算决策是否应当被修正或重写之前,优选考虑概率模型与发生的实时事件之间的关系。基本上,实时事件应当被分析它们是否已经存在于概率模型中和存在到什么程度。
事件是否存在于概率模型中和存在的程度的确定通常取决于使用的模型的类型。例如,如果模型是科学模型生成过程(如同以上简要概述的)的结果的概念模型,则生成此模型的技术人员知道哪些方面、事件和假设已被认为是相关的并且并入到模型中,以及其它方面、事件和假设已被认为是不太相关的并且因此未被包括在模型中。在这种情况下,因此通常已知在模型中哪些异步的实时事件被表示和哪些未被表示。
另一方面,如果模型是主要基于预计算的数据库查询结果的波动、准确性和/或受欢迎度的过去发展和趋势的历史统计模型,则从一开始它可能不能得知什么事件导致了过去的预计算的查询结果的波动/准确性/受欢迎度的这个特定行为。但是,也可能在这种情况下做出特定异步是否包括在概率模型中的近似。例如,一种方法是确定预计算的数据库查询事件的实际准确性(例如通过重新计算它们的代表性样本并将重新计算结果与高速缓存的查询结果比较)并且把它与由概率模型指示的预测的准确性相比较。如果实际(样本)准确性基本上低于预测的准确性,例如在给定阈值以下,则假定概率模型不知道特定异步的实时事件,即事件未被表示在模型中(否则,模型也将指示较低的准确性)。另一方面,如果实际(样本)准确性处于由概率模型预测的准确性的区域(即仅仅略微低于,相同乃至高于),则可以假定异步的实时事件已被包括在概率模型中(或者它仅仅是具有对预计算的数据库查询结果的波动或者准确性有有限影响的可忽略的事件)。以下进一步给出此方法的更详细的示例。
对于充分地在模型中表示的此类事件,不必需概率的修正,因为它们的发生已经考虑了什么时候基于概率模型确定相应的高速缓存数据库查询结果的概率。另一方面,如果发现实时事件没有被表示在概率模型中,则它被立即考虑并且概率被修正(即增加),并且由于修正的概率可能发出关于相应的高速缓存的数据库查询结果的重新计算命令。
可选地,发生在一定程度上存在于概率模型中的实时事件被积累以便估计趋势。如果通常由概率模型建模的实际上发生的实时事件的积累指示了超出模型概率考虑被修改的程度的突发事件,并且如果适用,则相应地重写重新计算命令。
可选地,事件也被积累并且成群分析以便过滤出可能使太少的高速缓存的查询结果过时和/或可能被认为不相关的事件。也为此,事件被随时间记录、收集并且以集总的方式处理。以这种方式,防止了响应于低影响事件生成太多重新计算命令,并且因此避免计算资源成本的不相称增加。
总之,考虑至少在高于预定程度上潜在地影响高速缓存的数据库查询结果的准确性的实时事件提供了对高速缓存退化的高反应性。
例如,本高速缓存更新策略可以结合EP 2521074 A1中记载的Amadeus的Massive Computation Platform(MCP)使用。采用与MCP共存的本数据高速缓存平台,增强的子系统可用于触发MCP重新计算。诸如由MCP生成的旅行推荐之类的数据库查询结果被复制并且存储在数据高速缓存平台中以用于进一步分析。基于概率模型做出重新计算决定,概率模型本身可以被基于取自其它Amadeus服务的统计数据构建。此外,考虑诸如航班费用变动、飞机座位可用性改变、预订等级无效、客户机票请求、用户质量反馈事件、航班取消和/或同类的事情之类的实时事件。
用于本高速缓存更新方法的一种示例性应用是预购物。在实际预订旅行之前,旅游业的终端用户通常想要通知他们自己关于包括当前航班价格的可用航班,而没有对实际上预订航班的任何承诺。经常,对事先预定信息的此类非约束请求采取开放和广泛数据库查询的形式,其仅仅在查询时被计算时将需要大量计算资源。此外,用户期望请求的信息被响应于他们的查询实质上瞬时传达。因此,诸如标价的航空旅行推荐之类的预购物查询结果通常被预计算并且被高速缓存。因此,旅游业预购物形成对于这里提出的高速缓存更新策略的适合的应用。
详细描述
现在转向更详细描述,图2示出根据示例性实施例的分布式数据库系统1的概述。随后描述的实施例涉及旅游业中的数据库。具体地,呈现了这样的实施例,其中计算平台3维护关于航空旅行供应的数据并且高速缓存数据平台2存储由计算平台3基于计算规则计算的这些有关航空旅行供应的价格,尤其是航班费用和它们的关联的计算规则。但是,应当注意这些实施例是仅仅为更详细示出本高速缓存更新策略的目的的示例。这里呈现的高速缓存更新策略可以应用于任何种类的数据和数据库查询结果,而独立于数据和高速缓存的结果的结构和/或语义。
如上所述,分布式数据库系统1的主实体是数据高速缓存平台2(在下文中简称为DCP)和计算平台3。在图2的示例中,计算平台3是如在欧洲专利申请11305518中公开的大规模计算平台(MassiveComputation Platform)(MCP)。DCP 2和MCP 3经由至少一个通信链路耦接,所述链路被利用以将重新计算命令从DCP 2发送到MCP 3的,并且作为响应,将预计算的标价的旅行推荐(在下文中也简短地被称为“价格”)从MCP 3返回至DCP 2。
DCP 2安装有附加通信接口以用于合并它使用于确定高速缓存的价格的准确性概率的数据。这些接口包括,例如,用于合并形成概率模型的基础的统计数据和用于接收诸如票价变动和由航空公司或用户促销活动填充的航班可用性公告之类的异步实时事件的通信链路。
此外,分布式数据库系统1可以包括组织并维护可以由终端用户或诸如旅行代理之类的外部用户查询的数据的应用平台4。应用平台4被MCP 3经由MCP 3与应用平台4之间的相应的通信链路填充并更新。此填充和更新由DCP 2发出的重新计算命令触发。
如以上一般的描述和以下更具体地描述的,响应于从DCP 2接收到的重新计算命令,MCP 3重新计算旅行推荐的价格并且将它们返回到DCP 2。但是同时,MCP 3也将重新计算的标价的旅行推荐转发到应用平台4并且也存储它们(由在图2中“旅行推荐综合”指示的)。因此,同样基于由DCP 2实施的高速缓存更新策略,应用平台4高速缓存由用户查询的预计算的标价的旅行推荐。因此,本高速缓存更新策略被利用到向用户提供益处的应用,例如以瞬时响应于开放查询的形式。在这样的布置中,数据高速缓存平台2充当被布置以控制并触发应用平台4的高速缓存的更新的控制平台。因此,存储在数据高速缓存平台2中的高速缓存的数据库查询结果实际上不被任何使用者或用户访问或查询,而是仅仅形成高速缓存更新策略执行的控制数据基础。但是,在其它布置中,数据高速缓存平台2也可以直接由使用者或用户查询,或-换句话说-本高速缓存更新策略可以被直接实施在与单独的控制实体对照的一个或若干应用平台4中。
应用平台4包括例如,预购物应用平台、费用分析应用平台和其它平台。预购物应用平台被想要关于航班可用性和价格的信息的终端用户查询。例如,终端用户可以将查询指引到预购物应用以便获得在度假季期间从Nice离开的500欧元以下的旅行供应的价格的概览。由于在符合本高速缓存更新策略更新的预购物应用中高速缓存了预计算的标价的旅行推荐,相应的航班价格不需要在查询发生时被计算。相反,可以基于在预购物应用平台中高速缓存的标价的旅行推荐非常迅速地返回满足这些相当不具体的约束的旅行供应的列表。用户然后可以从返回的列表中选择最佳适合他/她的旅行并且然后可以发出对实际上预订此旅行的进一步请求。然后由计算当前和实际价格并向用户建议绑定供应的预订引擎(未显示)处理第二请求。
现在细看由图3描述的数据高速缓存平台2的结构,数据高速缓存平台2由三个模块组成:
-输入管理器5负责接收诸如来自于MCP 3的预计算的数据库查询、异步的实时事件和诸如统计数据之类的其它信息之类的输入以馈送并更新概率模型。
-分析器6利用概率模型,它被布置以基于概率模型确定要被更新的高速缓存的查询结果的候选者。
-最后,合并器7修正由分析器6确定的概率并且必要时也基于观察的实时事件(后者未在图3中示出)修正概率模型。
此外,DCP 2包括保持高速缓存的标价的旅行推荐数据的内部数据库8。此表示仅仅保留对估计过时的概率和决定重新计算决定相关的价格信息的属性,诸如,例如:城市对、出发日期、停留持续时间、和最后计算的日期,所有都是由MCP 3返回的计算的输出。由MCP3利用以便执行诸如费用之类的它的计算的其它数据没有被反射到DCP 2,因为它们不是执行高速缓存更新策略所必需的。但是,另一方面,DCP 2使它的数据具有元数据属性(其不是由MCP 3返回的数据集合的一部分),诸如初始推测的准确性(由MCP 3刚刚重新计算的价格不同于用于预订的计算的可能性),波动(自它的最后计算以后价格不同于用于预订的计算的概率指示)和受欢迎度(多少次被搜索并预订)。设置这些属性所需的数据被保持在诸如波动数据库10、初始准确性数据库11和统计服务器9之类的外部数据库中。元数据属性代表概率模型(并且因此取决于概率模型的特性),基于该概率模型,分析器6确定高速缓存的价格是否可能是过时的概率(如下面将更详细说明的)。
输入管理器5被布置为将所有不同来源的信息转换并且集成到由MCP 3返回的价格的局部表示数据库8中。它记录潜在地影响建模的价格的事件和动作。这些事件包括顾客促销和顾客差异反馈。此外,类似取消航班的航班可用性事件不仅仅使直接基于取消的航班的高速缓存的旅行推荐无效,而且也可以影响诸如与被取消的航班同时计划的相同城市对的航班之类的并行高速缓存的数据。这些实时事件然后被转发到进一步处理它们以便修正过时概率和重新计算决定的合并器7。
由于高速缓存的标价的旅行推荐中涉及的信息量,采用编码技术是有益的。由此,在DCP 2中高速缓存的标价的数据被全局映射到保持在MCP 3的基础数据域同时显著地降低用于存储资源的成本。概率性的编码例如通过利用Bloom滤波器被实施。此类编码的效果是两倍。首先,Bloom滤波器是保守的。它们允许积极地跟踪至少和在任何情况下的可能由指示费用变动的实时事件影响的那些价格,但是反过来它们不是错误的,被认为不影响的价格实际上未受影响。因此没有不能识别潜在地受此类费用改变事件影响的价格的风险。其次,假积极指示的量严格地取决于Bloom滤波器的分配的大小,这样可以按需限制他们的发生。
第二模块,分析器6基于保持在DCP 2中的预计算的价格的准确性的概率性恶化的模型执行高速缓存的标价的旅行推荐是否是过时的的概率的第一一般级别的确定。它检查并评估由输入管理器5增加到价格的元数据,如以上说明的。由此元数据表示的概率模型因此包括关于由波动数据库10包括的有关价格波动的度量、从初始准确性数据库11合并的价格的初始准确性和由来自统计服务器9的受欢迎度报告返回的航班推荐的受欢迎度。它向合并器7输出关于高速缓存的价格的优先级信息和概率,即哪些价格需要仅基于静态概率信息(即不考虑任何事件)被优先重新计算的指示。
更具体地,示例性概率模型基于用于预计算的数据库查询结果xi的以下参数:
-预计算的查询结果的年龄ti:自从MCP 3的预计算的查询结果的最后计算以来的时间。
-预计算的查询结果的波动λi,其可以由过去计算的发生和结果得出。
-波动λi可以被采用以提供用于预计算的查询结果在给定时间之后保持未改变的概率的估计:这也被称为预期准确性的概率,或更一般被称为预计算的数据库查询结果是过时的概率。在图4a中描述随时间降低的此可能准确性的两个示例性函数。
-初始准确性:由MCP 3生成的预计算的数据库查询结果即使在计算时间处可以不一定是准确的,如果例如MCP 3本身基于高速缓存(并且因此过时)的数据做出它的计算的话。这导致由MCP 3计算的预计算的数据库查询结果与由准确的基础数据假设地生成的计算结果之间的额外差异。如果相应的反馈可用则此差异可以被测量。例如可以从先前的计算中推断预计算的数据库查询结果xi具有在由MCP 3计算时是准确的的概率ai。这指的是预计算的数据库查询结果在给定时间t之后准确的概率是
-根据此模型保持在DCP 2中的总体预计算的数据库查询结果的准确性接着可以被认为是平均准确性:
GlobalAccuracy = Avg ( a i e - λ i t i )
-预计算的数据库查询结果的受欢迎度pi:它是由终端用户对此预计算的数据库查询结果的平均访问频率。还有以下简要呈现的,可能期望实现对用户经常请求的预计算的数据库查询结果的更好的准确性。因此,从用户来看整个高速缓存的准确性也可以被限定,因为每个准确性值由受欢迎度加权。因此,与准确的预计算的数据库查询结果的期望比例对照,准确地访问预计算的数据库查询结果的比例被包括:
UserAccuracy = Σ p i p tot a i e - λ i t i
例如根据从统计服务器9基于历史的若干天、星期或月得出的统计的历史数据,设置概率性的准确性模型的这些参数。每一个预计算的数据库查询结果被利用这些参数建模以便预测预计算的数据库查询结果的状态并且因此预测整个高速缓存的质量。
存在利用概率模型的信息以便划分优先顺序并决定接下来哪些价格要重新计算的若干方式。分析器6可配置以根据情况应用那些策略或策略混合(例如根据与拥有MCP 3中基础旅行数据的用户的协议、根据数据量、根据可用的计算资源、根据应当用以优化高速缓存的异议)。以下策略可以被应用:
·价格的准确性:此目的在于最大化日期域的全局准确性。推测不准确的价格首先被重新计算。
·价格的准确性,利用受欢迎度加权:在标价的哪些当中可能是不准确的,更受欢迎的价格将比较不受欢迎的价格以较高优先级被重新计算。
·价格的准确性,利用受欢迎度和由它们的年龄加权:类似先前的策略,而且考虑上一次重新计算的时间。此策略防止由非常剧烈变动的价格引起的重新计算缺乏,尤其是在其中与通常应当被重新计算的价格量相比重新计算资源是有限的环境中。
·基于它们的地理位置和重新计算小时调整受欢迎的城市对:此策略另外考虑通常在一天的特定时间哪些城市对航班被更经常地查询的统计量。作为结果,在特定城市对的航班很少被访问的那些时间避免频繁的重新计算(因为只要相应的查询实际上未实质发生,则不准确的高速缓存的数据无害)。
作为附带效果,分析器6基于从MCP 3接收到并被并入DCP 2的最近重新计算的价格的值更新波动模型数据库10。因为分析器可以基于重复重新计算跟踪高速缓存的价格的实际波动,所以它可以将这些统计信息馈送回到波动模型数据库10。为了更新波动模型,分析器6计算新计算的价格结果与先前接收的价格值之间的差异的数。由这些差异,它更新用于分析的价格的相应部分的波动参数。
同样,分析器6可以以同样方式更新初始准确性数据库11。也可以请求其它受欢迎度报告,例如,如果来自于新的城市对的价格已被首次集成到DCP 2中。
在没有分别用于价格的波动、准确性或受欢迎度的历史和统计数据的情况下,分析器6利用尽可能保守的缺省参数执行它的处理。
现在转到第三模块,合并器7通过考虑到来的实时事件执行第二级别的概率确定。此外,是实体生成重新计算命令并且将它们发出到MCP 3。它采用分析器6的输出作为用于它决定的基础。这些为数据域的所有价格提供重新计算优先级的第一估计。然后,它将从实时事件的各种源中收集的全部信息叠加以修正重新计算优先级。这导致增强的重新计算优先级。
可选地,它可以考虑任何顾客服务水平协议,诸如例如,“所有价格将至少每个星期被重新计算一次”,并且相应地修正优先级。它首先选择在内部价格数据表示8中具有最高优先级的那些条目并且标记它们以用于重新计算。因为合并器优选地具有对在MCP 3处可用计算资源的认识,所以它能够标记与MCP 3在特定时间间隔重新计算的价格一样多的高速缓存的价格。然后将结果重新计算命令发送到MCP 3。
来自于实时事件中的信息是改善高速缓存的数据在严格的统计建模上的准确性的方式。它们可以被用于跟踪实际上发生的而不是仅仅是预期的。它是控制统计模型的预测并且在预测被证明是错误的或不合适的时修正它们/它的方式。可以相对于本实施例预计若干类实时事件:
动作者的事件通常选择性发生(即有时),但是可以对重新计算决定具有强烈影响。外部顾客可以提供关于高速缓存和他正在自己的平台上体验的购物之间的差异的反馈。此反馈可以用于修正由统计模型预测的准确性并且因此在必要时施加更迅速的重新计算。当存储在MCP 3中的数据的提供者(例如供应旅行的旅行提供者)执行促进某些城市对的航班的促销活动时,假定这些价格是更波动的并且更经常变得过时。因此,在促销活动期间这些价格的重新计算频率可能需要增加。如另一个示例,对于MCP 3的维护操作有时可能是必需的或在系统1内经受操作问题。在此情况下,DCP 2可以被命令以生成较少或没有重新计算命令直到维护被完成和问题被恢复。
可用性事件指示关于高速缓存的航班的准确性的实时状态。根据事件的状态,可能肯定地已知MCP 3中基础数据域的特定价格已经改变并且由DCP 2高速缓存的价格因此已经无效。但是,同时其它价格可以被影响,其中影响不确定,并且因此这些价格是过时的概率可能被增加。例如,“等级关闭”事件指示对特定航班特定预订等级已经变满。在此航班和等级中的座位不再可预定并且因此由DCP 2高速缓存的相应价格已经肯定地变为无效。但是,这可能被认为是在此航班之前或之后不久离开的相同航班的其它等级和/或在其它航班中的同等级座位可能变得更波动的指示。因此,它们变得过时的概率可能增加并且重新计算这些价格可能是有利的。如另一个示例,经验是低成本航空公司根据航班占用率来设置它们座位的价格。在占用率的通知改变时,相应的高速缓存的价格可以快速被重新计算并且因此高速缓存准确性被改善/重新获得。
费用改变事件的暗示难以估计。简单说,费用包含信息和诸如用于计算特定航班的价格的规则之类的逻辑。因此,当计算特定航班的实际价格时,费用的集合被访问,决定哪一个费用是相关的并且实际上要被应用,并且最后计算价格。因此,存在“航班→费用”的关系(但是,其也可以随时间变化,因为哪个费用应用于特定航班的约束可以改变)。但是,在另一个方向“费用→航班”的关系通常未被跟踪,即它不清楚哪一个费用应用于哪些航班。此外,费用的变化潜在地影响由基础数据域计算的巨大的价格量。
为了确定费用事件的影响,MCP 3与DCP 2之间的通信可以被利用以向DCP 2提供到由MCP 3计算价格所施加的费用的映射。当响应于重新计算命令计算价格时,MCP 3记录为计算请求的价格而访问的所有费用。此信息然后以映射费用航班被全局存储并且在MCP3的每个计算期间维护。在接收到费用变化事件的时候,输入管理器5搜索这个全局映射以便确定由费用改变事件影响的航班并且将它们标记为“更新”。注意费用改变不一定暗示用于旅行推荐的价格变动,如以上简要说明的。
在没有考虑事件与基本概率模型的关系的情况下,合并器7首先估计实时事件对高速缓存的价格的潜在影响而不是发起高速缓存的旅行推荐的重新计算。此类事件首先被相对于它们在概率模型中的表示进行分析。
如以上概述,此分析的特性取决于使用的概率模型的类型。在概念模型情况中,从模型生成过程中已知哪些事件已被考虑在概率模型中。因此,到来的事件被对照从模型生成处理已知的概率模型的特性加以检查以便确定特定事件是否存在于模型中。
另一方面,历史统计模型可以被使用并且它可以相应地不先验地知道哪些事件导致模型的历史统计数据的基础。在这种情况下,可以采取以下方法以便确定特定事件是否被表示在概率模型中(为完整起见:以下方法并不局限于任何特定类型的概率模型并且也可以被采用例如用于概念模型)。
根据由所有高速缓存的预计算的数据库查询结果形成的数据域的大小,高速缓存的数据库查询结果被再分成更小的部分,在下文中被称为“份额(share)”。在预计算的数据库查询结果是标价的旅行推荐的示例中,份额例如由起点-目的地对形成,即一个份额包括具有相同起点和目的地位置的所有预计算的标价的旅行推荐。可替换地,如果数据域仅仅是有限大小,则不执行再分。换句话说,在这种情况下,仅存在覆盖保持在DCP 2中的所有预计算的数据库查询结果的一个份额。
在异步实时事件被检测到之后,识别潜在地受此事件影响的一个份额或更多份额,即哪些份额包含由于检测到的事件而可能具有增加的过时的概率的预计算的数据库查询结果。确定至少一个份额的实际准确性,例如通过重新计算份额中预计算的数据库查询结果的特定或随机样本估计它的准确性。例如,如果份额包含10,000个预计算的数据库查询结果,则20个预计算的数据库查询结果的样本被重新计算。类似于其它重新计算执行这个重新计算。DCP 2生成并向MCP 3发出重新计算命令。MCP 3执行重新计算并且返回它们的结果,即更新的样本预计算的数据库查询结果,到DCP 2。DCP 2将样本重新计算的结果与先前高速缓存的对应数据库查询结果进行比较,并且例如确定已经改变的样本预计算的数据库查询结果(即,已经过时或不准确的)的百分比和/或样本预计算的数据库查询结果(即没有过时并且仍然是准确的)是未改变的百分比。样本预计算的数据库查询结果的这些百分比可以被传递到整个份额作为对整个份额的准确性的估计,即可以通常被由这些样本百分比推断整个份额具有跟样本相似的准确性(不准确性)。
在下一步,份额的确定的实际准确性与由概率模型预测的份额的准确性相比较。根据这个比较的结果,推断特定的异步实时事件是否被表示在概率模型中并可能地到哪个程度。如果确定的实际准确性低于由概率模型预测的准确性的程度大于了给定程度,即样本准确性基本上低于由模型预测的准确性,则所述事件不认为被包括在概率模型中。另一方面,如果确定的实际准确性低于由概率模型预测的准确性的程度小于给定程度,或两个准确性相等或确定的实际准确性甚至比预测的准确性更高,则认为事件被表示在概率模型中。两个准确性之间的差异也是事件已被并入模型中的程度的指示器。
应当注意样本本身可以被认为是检测一开始就发生的异步实时事件的手段。除了诸如来自航空公司的特定航班已被取消的指示或促销活动的指示之类的异步实时事件的显式指示之外或对其的替代,可以利用抽样以隐式地检测未显式地由第三方指示的异步实时事件。为此,对所有份额的连续或正规的样本处理可以被采用以便估计预计算的数据库查询结果的所有份额的实际准确性。如果确定的实际准确性和由概率模型预测的准确性的比较被证明是第一个基本上低于后一个,则这允许隐式地检测未反映在概率模型的事件。
还注意潜在地受检测的事件影响的一个份额或多个份额的识别取决于事件的特性和对事件的认知。如果例如事件已被由循环抽样处理隐式地检测到,则潜在影响的份额已同时被确定(即确定的实际准确性基本上低于预测的准确性的那些份额)。另一方面,事件的显式信令也可以包含潜在地影响的预计算的数据库查询结果的指示。例如,如果航空公司已经发信号取消特定航班,则在被取消的航班之前和之后的时间期间在相同的起点和目的地之间的航班的价格可能被认为要被潜在地影响。此外,也可能从过去经验中知道(显式地发信号)哪些事件潜在影响哪些预计算的数据库查询结果的准确性。例如,可以重新跟踪哪些实时和现实事件对由连续抽样处理检测的份额的减少的准确性负责并且以这样的方式获得关于某些异步实时事件的常见影响的认知。
现在更详细地并且以更正式的方式描述估计份额的实际准确性和把它与由概率模型预测的准确性相比较的以上分析。
一个预计算的数据库查询结果xi的实际准确性被称为Acci。预计算的数据库查询结果xi在特定时间点处或者是准确的(Acci=1),即等于它重新计算的结果,或者是不准确的(Acci=0),即不同于它重新计算的结果。所有预计算的数据库查询结果的集合可以被逻辑上分成份额Dj。以下考虑涉及一个具体的示例性份额D。正如由概率模型预测的,包含在份额D中的预计算的数据库查询结果的平均准确性被表示为Accmodel(D)。另一方面,在D中实际上准确的预计算的数据库查询结果的比例被称为Acc(D)。
如上所述,为了确定或者估计Acc(D),执行在D中N个预计算的数据库查询结果的样本重新计算。在N个当中的准确结果数被称为ACN,即在已经重新计算N个样本预计算的数据库查询结果之后,ACN个重新计算的数据库查询结果等于他们先前高速缓存的对应物,而(N–ACN)个重新计算的数据库查询结果不同于他们先前高速缓存的对应物并且因此被发现是不准确的。
如上所指出,对于在份额D内的一个预计算的数据库查询结果xi的准确性概率是Acc(D)。
这可以通过采用二项定律ACN~B(N,Acc(D))将D内的样本N个预计算的数据库查询结果概括。因此,从N个样本当中的K个预计算的数据库查询结果是准确的概率是
P ( AC N = K ) = K N × Acc ( D ) K × ( 1 - Acc ( D ) ) N - K
此定律的统计期望是E(ACN)=N x Acc(D)。
因此,关系是份额D的实际准确性的估计Acc(D),其由N个样本预计算的数据库查询结果的样本重新计算的结果传达。另一方面,Accmodel(D)是由概率模型给出的Acc(D)的准确性估计。
为了确定给定实时事件是否存在于概率模型中,需要决定或Accmodel(D)在两个值不同于彼此的可能的情况中谁是Acc(D)的更可信赖的近似值,尤其是是否为了准备此决定,可以规定两个假设H0和H1
H0:概率模型的预测适当地指示了份额D的准确性,即Acc(D)≌Accmodel(D)。由于抽样处理引起的统计差异,低于Accmodel(D)(即偶然地,选择的N个预计算的数据库查询结果比在D中所有预计算的数据库查询结果的平均值更不准确并且因此N个样本不代表性地反映Acc(D))。
H1:概率模型不期望的某些事情发生并且因此Accmodel(D)是Acc(D)的不适当的估计。相反,由样本重新计算得到的实际准确性估计是可用的最佳估计,即
采用以下方法可以完成决定D0:H0是真的,或决定D1:H1是真的:
如果实际准确性低于预测的准确性的程度大于给定程度,则由概率模型预测的准确性是不适当的可能性增加并且需要被降低。此情况是,例如如果Accmodel(D)指示85%的准确性Acc(D),而从样本重新计算接收到的实际准确性仅仅指示在D内准确的预计算的数据库查询结果的20%。在这种情况下,D0是正确的决定。但是,如果从样本接收到的实际准确性和由模型预测的准确性类似,即两个指示之间的差异相对较小,则由概率模型预测的准确性可能是适当的。为了举例,可以是此情况,如果Accmodel(D)指示85%的准确性Acc(D)并且达到80%的准确性。在这种情况下,D1是正确的决定。
为了限定D0和D1之间的界线,引入阈值KTh
如果ACN>KTh,则由概率模型预测的准确性Accmodel(D)被认为是Acc(D)的适当的近似值,选择D0。如果ACN≤KTh,则由概率模型预测的准确性Accmodel(D)不被认为是Acc(D)的适当的近似值,选择D1
为了设置KTh到适当的值,具有关于概率模型质量的信息是有利的。此类信息通常可以从在布置模型之前和/或在它正在使用期间执行的模型验证处理中获得。例如,可以已经在概率模型的使用的一年期间观察到,未由概率模型反映的异步实时事件相当稀少并且例如在365天当中仅仅发生三天。在这种情况下,可以假定Accmodel(D)在大约99%的时间是适当的(=H0)并且仅仅大约1%的时间不适当的(=H1)。在另一个示例中,未包括在概率模型内的异步实时事件可以相对频繁发生,诸如一年发生180天。因此,可以假定Accmodel(D)是仅仅是隔日适当的,即达到50%的时间是适当的(=H0)并且其它时间是不适当的(=H1)。
通过考虑概率模型的过去质量/可靠性设置KTh的一个示范性方式是考虑错误决定D1的概率,即Accmodel(D)不被考虑是Acc(D)的适当的估计,虽然它实际上是。概率模型的预测是正确的概率可以表示为:
P ( AC N = K | H . 0 ) = K N × Acc mode l ( D ) K × ( 1 - Acc mode l ( D ) ) N - K
假设H0是真并且采取错误决定D1的概率α是ACN低于KTh的概率:
此公式允许选择α并且根据概率模型的过去可靠性定义KTh。例如,如果概率模型对99%的时间是正确的,则α被设置为0,01。KTh的阈值然后可以被利用先前的公式计算。如果准确的样本重新计算结果的数目K低于KTh,即由样本重新计算确定的实际准确性估计被认为是比Accmodel(D)更可靠的对Acc(D)的估计:
因此,概括来说,如果ACN等于或大于KTh,则异步的实时事件被认为表示在概率模型中并且相应的预计算的数据库查询结果的概率无需修改。但是,如果ACN低于KTh,则假定事件未被表示在概率模型中。
对于不可预测并且因此根本未包括在概率模型内的事件,例如,促销活动或维护事件,所述事件被尽快处理。通常,这意味着潜在地受特定实时事件影响的那些预计算的数据库查询结果的概率被修正,具体地被降低。继续确定事件是否呈现在概率模型的以上示例,此修正可选地通过将由样本重新计算得到的Acc(D)的估计,即应用到过时的份额D中的预计算的数据库查询结果的概率,来实现。例如如果已被查明比Accmodel(D)低25%,则用于份额D中预计算的数据库查询结果的概率模型的当前准确性例如是同样降低25%。此示例性修正由图4b可见(在图4中的x和y轴具有与在图4a中相同的意义,即x轴描述以小时记的从上次重新计算(=年龄t)以后的时间,y轴描述准确性/过时概率)。
在已经进行此修正之后,照常进行哪些预计算的数据库查询结果将要被重新计算的决定,即采取跟未发生概率修正时同样的方式。再参考以上概述的示例性历史统计模式,用于准确性/过时性的概率模型说明的概率是但是,自它可以被响应于识别的异步实时事件,例如通过应用以上详细描述的策略修正以后,它可以实际上被逐步计算:在时间τn处,可能的准确性/过时性由在时间τn-1处它的先前的值计算:
分析器6的下一个准确性计算也从先前的值(其已经潜在地被响应于实时事件修正)开始。
响应于到来的异步实时事件的概率的修正,例如由概率模型预测的准确性,在相应的预计算的数据库查询结果被MCP 3下一次重新计算之后被重置。
类似费用或可用性变化的至少在一定程度上在概率模型中被表示的事件被可选地积累并且它们的发生被常规性地与概率模型的预测相比较。当事件峰值局部地不匹配模型时,即一系列事件显著地在概率模型的基础统计量之外,影响的价格被标记为潜在过时的以便尽快重新计算它们。由此,已经存在于概率模型中的事件引起的并且因此已经由分析器6预先进行的确定认为的“噪声”被滤出。
可选地,由功能上与合并器7分离的专用部件或合并器7的子部件、事件管理器模块处理到来的异步实时事件。事件由输入管理器5接收并且开始在未聚合时存储在内部数据仓库中。事件管理器接收任何到来的异步实时事件、处理所述事件,例如通过应用以上详细描述的策略,并且可能地执行对影响的预计算的数据库查询结果是过时/不准确的概率的修正。可选地,仅仅在事件的给定数目被事件管理器识别时应用上面描述的策略并且仅仅在必要时修改每个预计算数据库查询结果的可能准确性。
可选地,为优化目的,合并器7处理内部数据表示8的网格视图,即在它的算法期间它将相邻价格组一起考虑而不是以分离方式处理价格集合。在此方法中,相邻的价格数据集被看作具有集总属性的值的单个数据集。处理集总的数据集限制了稀疏的重新计算命令的生成,并且因此在MCP 3中增加互利和优化机会。这降低了计算成本。
图5概括了以上详细描述并且给出呈现于此的高速缓存更新方法的概述。
保持预计算的数据库查询结果的高速缓存最新的过程从高速缓存的查询结果的不准确性的概率的确定14开始。此确定由位于两个逻辑级别上的两个活动组成:第一并且一般地,采用基于统计和概率性数据的预测模型以便估计特定高速缓存的查询结果不对应于(假设地)重新计算的查询结果的可能性。第二并且更具体地,考虑可分别潜在地影响并增加高速缓存的查询结果是过时的概率的实时事件。这些实时事件的特征在于一个事实是,它们一般不确定地指示特定高速缓存查询结果的不准确性,而是在这方面是不确定的。因此,在它们发生时,只能分别提取关于准确性和不准确性的可能性的概率性结论。
基于确定的高速缓存的数据库查询结果是过时的概率,数据库重新计算命令由DCP 2自动地发出15。这些命令由MCP 3接收到,其然后重新计算相应的结果并且将它们返回16到DCP 2。随后,DCP 2接收结果并且在局部表示8中存储它们17。这结束一个更新周期并且下一个周期利用概率确定14重新迭代。
接下来,参考图6描述相对于本高速缓存更新策略的过程的定时的特定示例。在此示例中,DCP 2被配置为每20分钟生成重新计算命令,即确定高速缓存的数据是否过时的概率并且生成和发出重新计算命令的一轮或一周期花费20分钟。在MCP 3处的资源对一整天是先验地已知的并且DCP 2知道在MCP 3处可用的计算资源并且因此能够将重新计算的量与MCP3的可用资源同步。
在重新计算周期开始时,DCP 2分析高速缓存的数据库查询结果,即存储在内部数据库8中的标价的旅行推荐,的当前准确性。此轮将产生重新计算命令的集合,它们将由MCP 3在此20分钟的一轮结束处处理。同时,在MCP 3侧,来自最后周期的命令正被计算并且新的价格推荐被生成并且被发送回DCP,其中它们被存储并且可用于分析并在下一个周期更新再现的信息。
图6显示MCP在上午04:00和05:00之间的时间间隔中具有显著的可用资源,因此许多的重新计算可以在这个小时执行。但是之后,直到上午9:00没有资源可用,这样在那个时间不可能有重新计算。稍后的日间,从上午09:00到下午7:00,某些资源在MCP 3处可用。
在起始于上午04:20的周期期间,分析器6分析高速缓存准确性,同时合并器7因此生成重新计算命令。那些命令将由MCP 3在上午04:40实施。分析器6关注在一轮开始时接收到的MCP价格推荐。它将接收到的价格和值已被存储在内部储存库中的先前价格之间的差异计数。基于差异,它修正再现信息源的“波动”。输入管理器5保存接收到的MCP价格以用于进一步检查。
在周期的上午4:40到5:00,MCP 3处理在上午04:20到4:40时间期间从DCP 2接收到的重新计算命令。DCP 2知道对于将到来的时间片(上午05:00)以及继续的时间片它不能生成任何重新计算命令,直到上午09:00。但是,它仍然连续地分析数据模型以更新所有高速缓存标价的旅行推荐的当前准确性。它将对每个未来的周期进行相同的处理直到上午08:40。
在上午08:40,分析器6在没有任何重新计算的情况下确定高速缓存的准确性在前四个小时降低。因此它通过后续周期生成重新计算命令,但是由于在MCP 3处从上午09:00到下午07:00的可用资源的有限量,仅仅是到较少的程度。然后,在上午09:00,MCP 3开始处理以前的间隔(即上午08:40到09:00)接收到的新的重新计算命令并且将在从下午6:40持续到7:00的一轮结束之后停止。
在那之后,在MCP 3处整夜没有进一步资源可用。因此,DCP 2不会生成任何进一步的重新计算命令,而是继续基于概率模型和可能到来的实时事件分析高速缓存准确性。
最后,图7是提供图2所述的高速缓存平台2的功能的计算机系统的图形表示。在高速缓存平台2内,可以运行使得计算机系统执行这里讨论的方法中的任何一个的指令集。高速缓存平台2包括处理器101、主存储器102和网络接口设备103,其经由总线104彼此通信。可选地,它还可以包括静态存储器105和盘驱动器单元106。视频显示器107、字母数字输入设备108和光标控制设备109可以形成分发列表导航用户接口。网络接口设备103将数据高速缓存平台2连接到计算平台3、诸如统计服务器9、波动性数据库10和初始准确性数据库11之类的填充预测模型所需的统计数据的源、实时事件的源、互联网和/或任何其它网络。实现上面描述的方法论的任何一个或所有的指令集(即软件)110,完全地或至少部分地驻留于机器可读介质中或在机器可读介质上,例如主存储器102和/或处理器101。软件110驻留于其上的机器可读介质也可以是作为盘驱动器单元106的一部分的非易失性数据载体111(例如不可拆卸的磁硬盘或光或磁可拆卸盘)。软件110还可以被作为传播信号112经由互联网通过网络接口设备103发送或接收。
本高速缓存更新策略提供自动地生成高速缓存重新计算决定的方式。它确定哪些高速缓存的查询结果将要被重新计算并且通过考虑在计算平台处的可用计算资源也以时间方式控制重新计算。因此,一般,高速缓存的查询结果的准确性在随时间分别建模最新性和过时性的概率模型上进行估计。此过时分析能够在高速缓存的数据库查询结果的重新计算基础下每小时处理数十亿的数据集合。

Claims (15)

1.一种在分布式数据库系统中更新预计算的数据库查询结果的方法,其中分布式数据库系统包括维护预计算的数据库查询结果的数据高速缓存平台和用于基于在计算平台中维护的数据计算所述预计算的数据库查询结果的计算平台,所述方法包括:
-由数据高速缓存平台确定预计算的数据库查询结果是过时的概率,其中
-所述确定取决于概率模型和异步实时事件的发生,
-所述概率模型对在数据高速缓存平台中维护的预计算的数据库查询结果与推测的实际数据库查询结果之间的差异建模,
-所述实时事件关于预计算的数据库查询结果的期满是不确定的,并且对在数据高速缓存平台中维护的预计算数据库查询结果与推测的实际数据库查询结果之间的差异仅仅具有概率性的影响,
-所述概率一般基于概率模型被确定并且在异步实时事件发生时可能被修改;
-由数据高速缓存平台基于确定的预计算的数据库查询结果是过时的概率向计算平台自动地发出用于更新预计算的数据库查询结果的重新计算命令,其中具有高于给定阈值的是过时的概率的预计算的数据库查询结果被命令要被重新计算;以及
-在数据高速缓存平台处接收作为重新计算命令的结果的更新的预计算的数据库查询结果。
2.根据权利要求1所述的方法,其中概率模型基于统计历史数据对在计算平台中维护的数据的波动性建模。
3.根据权利要求1或权利要求2所述的方法,所述方法还包括
-在数据高速缓存平台处分析到来的异步实时事件是否被表示在概率模型中。
4.根据权利要求3所述的方法,其中分析到来的异步实时事件是否被表示在概率模型中包括:
-确定在数据高速缓存平台中维护的预计算的数据库查询结果的份额的准确性,所述预计算的数据库查询结果的份额潜在地受到来的异步实时事件的影响;
-将确定的准确性与由概率模型对预计算的数据库查询结果的份额的准确性的预测进行比较;以及
-如果确定的准确性低于预测的准确性到给定程度,则确定到来的异步实时事件未被表示在概率模型中。
5.根据权利要求4所述的方法,其中确定预计算的数据库查询结果的份额的准确性包括向计算平台发出样本重新计算命令并且将样本重新计算命令的结果与先前在数据高速缓存平台中维护的相应预计算的数据库查询结果进行比较。
6.根据权利要求3到5中的任何一个所述的方法,还包括:
-对于被确定未被表示在概率模型中的实时事件,尽可能快地发出关于潜在地受影响的预计算的数据库查询结果的重新计算命令。
7.根据权利要求4到6中的任何一个所述的方法,还包括:
-对于被确定被表示在概率模型中的实时事件,在特定时间段内积累这样的实时事件,将实际上发生并积累的实时事件与它们在概率模型中的表示进行比较,并且如果实际上发生的积累的实时事件偏离它们在概率模型中的表示到预确定程度,则尽可能快地发出关于潜在地受影响的预计算的数据库查询结果的重新计算命令。
8.根据前面权利要求中的任何一个所述的方法,其中当数据高速缓存平台确定预计算的数据库查询结果是过时的概率并且发出重新计算时,考虑与在计算平台中维护的相邻数据集合的组对应的预计算的数据库查询结果的网格。
9.根据前面权利要求中的任何一个所述的方法,其中数据高速缓存平台基于在计算平台处可用的计算资源量发出重新计算命令。
10.根据前面权利要求中的任何一个所述的方法,其中分布式数据库系统是旅行预订系统,其中计算平台维护关于旅行可用性和费用的信息,并且数据高速缓存平台维护从旅行可用性信息和费用计算的标价的旅行推荐。
11.根据权利要求10所述的方法,其中实时事件包括航班费用改变、飞机座位可用性改变、客户机票请求和/或取消航班。
12.根据前面权利要求中的任何一个所述的方法,其中分布式数据库系统包括连接到计算平台的至少一个应用平台,所述至少一个应用平台维护并且组织预计算的数据库查询结果,存储在至少一个应用平台中的数据库查询结果作为由数据高速缓存平台发出的重新计算命令的结果而被计算平台填充和/或更新。
13.一种数据高速缓存平台,维护由计算平台基于在计算平台中维护的数据计算的预计算的数据库查询结果,所述数据高速缓存平台被配置为:
-确定预计算的数据库查询结果是过时的概率,
-其中所述确定取决于概率模型和异步实时事件的发生,
-其中概率模型对在数据高速缓存平台中维护的预计算的数据库查询结果与推测的实际数据库查询结果之间的差异建模,
-其中实时事件关于预计算的数据库查询结果的期满是不确定的,并且对在数据高速缓存平台中维护的预计算的数据库查询结果与推测的实际数据库查询结果之间的差异仅仅具有概率性的影响,
-其中所述概率一般基于所述概率模型被确定并且在异步实时事件发生时可能被修改;
-基于确定的预计算的数据库查询结果是过时的概率向计算平台自动地发出用于更新预计算的数据库查询结果的重新计算命令,其中具有高于给定阈值的是过时的概率的预计算的数据库查询结果被命令要被重新计算;以及
-接收作为重新计算命令的结果的更新的预计算的数据库查询结果。
14.根据权利要求13所述的数据高速缓存平台,其还被配置为
-分析到来的异步实时事件是否被表示在概率模型中;
-对于未被表示在概率模型中的实时事件,尽可能快地发出关于相应的特定预计算的数据库查询结果的重新计算命令;
-对于被表示在概率模型中的实时事件,在特定时间段内积累这样的实时事件,将实际上发生并积累的实时事件与它们在概率模型中的表示进行比较,并且如果实际上发生的积累的实时事件偏离它们在概率模型中的表示到预定程度,则尽可能快地发出关于潜在地受影响的预计算的数据库查询结果的重新计算命令。
15.一种其中存储有计算机程序指令的非瞬时计算机可读存储介质,所述指令在计算机系统上被运行时使得计算机系统:
-确定预计算的数据库查询结果是过时的概率,
-其中所述确定取决于概率模型和异步实时事件的发生,
-其中概率模型对在计算机系统中维护的预计算的数据库查询结果与推测的实际数据库查询结果之间的差异建模,
-其中实时事件关于预计算的数据库查询结果的期满是不确定的,并且对在计算机系统中维护的预计算的数据库查询结果与推测的实际数据库查询结果之间的差异仅仅具有概率性的影响,
-其中所述概率一般基于所述概率模型被确定并且在异步实时事件发生时可能被修改;
-基于确定的预计算的数据库查询结果是过时的概率自动地发出用于更新预计算的数据库查询结果的重新计算命令,其中具有高于给定阈值的是过时的概率的预计算的数据库查询结果被命令要被重新计算;以及
-接收作为重新计算命令的结果的更新的预计算的数据库查询结果。
CN201380037889.4A 2012-08-14 2013-08-09 更新高速缓存的数据库查询结果 Active CN104471573B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP12368020.9 2012-08-14
US13/585,286 2012-08-14
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
PCT/EP2013/002390 WO2014026753A1 (en) 2012-08-14 2013-08-09 Updating cached database query results

Publications (2)

Publication Number Publication Date
CN104471573A true CN104471573A (zh) 2015-03-25
CN104471573B CN104471573B (zh) 2017-07-18

Family

ID=49003740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380037889.4A Active CN104471573B (zh) 2012-08-14 2013-08-09 更新高速缓存的数据库查询结果

Country Status (11)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109788305A (zh) * 2018-12-10 2019-05-21 北京爱奇艺科技有限公司 一种缓存数据的刷新方法及装置
CN110235151A (zh) * 2016-09-15 2019-09-13 移动步道有限公司 基于网络的实时企业旅行管理设备、方法和系统
CN110347707A (zh) * 2018-04-03 2019-10-18 艾玛迪斯简易股份公司 更新高速缓存数据
CN110858204A (zh) * 2018-08-16 2020-03-03 中国移动通信集团重庆有限公司 查询请求的处理方法、设备和介质

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015120968A1 (en) * 2014-02-13 2015-08-20 Amadeus S.A.S. Increasing search result validity
US9984165B2 (en) 2014-02-13 2018-05-29 Amadeus S.A.S. Increasing search result validity
EP2908255B1 (en) * 2014-02-13 2018-07-25 Amadeus S.A.S. Increasing search result validity
US9582536B2 (en) 2014-02-19 2017-02-28 Amadeus S.A.S. Long-term validity of pre-computed request results
WO2016070964A1 (en) 2014-11-03 2016-05-12 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
US10395294B2 (en) 2014-11-03 2019-08-27 Amadeus S.A.S. Managing pre-computed search results
EP3128441B1 (en) 2015-08-03 2018-10-10 Amadeus S.A.S. Handling data requests
FR3086412B1 (fr) 2018-09-20 2020-10-30 Amadeus Sas Recalcul des resultats de recherche precalcules
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
CA3200431A1 (en) 2020-12-04 2022-06-09 Guillaume Lecourt Processing search requests
EP4009188A1 (en) 2020-12-04 2022-06-08 Amadeus S.A.S. Processing search requests
US11341137B1 (en) 2020-12-04 2022-05-24 Amadeus S.A.S. Processing search requests

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725333B1 (en) * 1999-04-22 2004-04-20 International Business Machines Corporation System and method for managing cachable entities
CN1559142A (zh) * 2001-09-26 2004-12-29 �ʼҷ����ֵ��ӹɷ����޹�˾ 使用个人日程安排进行媒体节目播放的实时事件推荐系统和方法

Family Cites Families (5)

* 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
WO2001033472A2 (en) * 1999-11-01 2001-05-10 Ita Software, Inc. Method and apparatus for providing availability of airline seats
EP1311957A2 (en) * 2000-07-17 2003-05-21 Eplication Networks Ltd BANDWIDTH SAVINGS AND QoS IMPROVEMENT FOR WWW SITES BY CATCHING STATIC AND DYNAMIC CONTENT ON A DISTRIBUTED NETWORK OF CACHES
JP5040311B2 (ja) * 2004-10-27 2012-10-03 日本電気株式会社 資源管理システム、資源情報提供方法、及び、プログラム
JP5387457B2 (ja) * 2010-03-10 2014-01-15 富士電機株式会社 遠隔監視装置および該装置におけるデータアクセス方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725333B1 (en) * 1999-04-22 2004-04-20 International Business Machines Corporation System and method for managing cachable entities
CN1559142A (zh) * 2001-09-26 2004-12-29 �ʼҷ����ֵ��ӹɷ����޹�˾ 使用个人日程安排进行媒体节目播放的实时事件推荐系统和方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110235151A (zh) * 2016-09-15 2019-09-13 移动步道有限公司 基于网络的实时企业旅行管理设备、方法和系统
CN110347707A (zh) * 2018-04-03 2019-10-18 艾玛迪斯简易股份公司 更新高速缓存数据
CN110858204A (zh) * 2018-08-16 2020-03-03 中国移动通信集团重庆有限公司 查询请求的处理方法、设备和介质
CN110858204B (zh) * 2018-08-16 2023-09-19 中国移动通信集团重庆有限公司 查询请求的处理方法、设备和介质
CN109788305A (zh) * 2018-12-10 2019-05-21 北京爱奇艺科技有限公司 一种缓存数据的刷新方法及装置
CN109788305B (zh) * 2018-12-10 2021-03-02 北京爱奇艺科技有限公司 一种缓存数据的刷新方法及装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN104471573A (zh) 更新高速缓存的数据库查询结果
US9235620B2 (en) Updating cached database query results
US20210295361A1 (en) Method and server for providing a set of price estimates, such as air fare price estimates
EP2842085B1 (en) Database system using batch-oriented computation
US20160171008A1 (en) Updating cached database query results
US20110106574A1 (en) Query Widening for Query Caches for Travel Planning Systems
US20200057918A1 (en) Systems and methods for training artificial intelligence to predict utilization of resources
US20040249682A1 (en) Filling a query cache for travel planning
US11687842B2 (en) Method and server for providing fare availabilities, such as air fare availabilities
US7840587B2 (en) Query caching for travel planning systems
US20040249799A1 (en) Query caching for travel planning systems
US20030115093A1 (en) Method and system for origin-destination passenger demand forecast inference
AU2022221550A1 (en) Method and server for providing a set of price estimates, such as air fare price estimates
US20170178221A1 (en) Method and system for inventory availability prediction
EP2698729B1 (en) Updating cached database query results
CN116205667A (zh) 一种航段净订座量的实时获取方法及装置
CN112632392A (zh) 确定候选下车地点的方法、装置、设备、介质和程序产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant