CN110347706A - 用于处理查询的方法、数据库系统和计算机可读存储介质 - Google Patents
用于处理查询的方法、数据库系统和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110347706A CN110347706A CN201910263534.6A CN201910263534A CN110347706A CN 110347706 A CN110347706 A CN 110347706A CN 201910263534 A CN201910263534 A CN 201910263534A CN 110347706 A CN110347706 A CN 110347706A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- initial data
- inquiry
- cached data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及用于处理查询的方法、数据库系统和计算机可读存储介质。本主题涉及处理数据库系统中查询的方法和系统。处理查询的方法包括:在从客户端接收到相应查询时从数据库系统处理的多个查询中随机选择查询;对于随机选择的每个查询,从高速缓存源检索与随机选择的查询匹配的第一高速缓存数据并从原始数据源检索与随机选择的查询匹配的第一原始数据;对于未被随机选择的查询,从高速缓存源检索与查询匹配的第二高速缓存数据;评估第二高速缓存数据的准确度值;若准确度值低于给定阈值则从原始数据源检索与查询匹配的第二原始数据,并用第二原始数据更新第二高速缓存数据;和使用机器学习算法基于第一高速缓存数据和第一原始数据调整概率模型。
Description
技术领域
本主题公开一般而言涉及计算机和计算机软件,并且具体地涉及处理数据库系统中的搜索查询并执行高速缓存更新调整的方法、系统和计算机程序产品。
背景技术
数据库技术的最新发展表明,确保需要处理大量数据的搜索查询的短响应时间是一个常见问题。例如,必须响应于仅包含很少输入信息的所谓“开放查询”来执行这种处理(例如,仅指定十几个可能参数中的一个或两个参数和/或指定的参数值范围宽),因此导致一般会产生大量结果。通过提高硬件性能来加速数据处理的可能性是有限的。因此,需要注意改进作为处理大数据量的基础的机制。
缩短对查询的响应时间的一种一般方法是预先计算或预先收集搜索查询的结果并将其维护在高速缓存中。随后,搜索查询实际上不是针对大量数据处理的,而是针对高速缓存中维护的结果而处理的。
但是,高速缓存具有缺点,即,由于已经预先计算或预先收集结果的数据的改变,高速缓存中维护的结果可能变得过时,并且因此与所述数据不同。因此,将预先计算的或预先收集的结果保持最新以便确保由来自高速缓存的结果返回的查询正确地反映大量数据中的对应数据是一个问题。因此需要用于使高速缓存(即,在高速缓存中维护的结果)保持最新的策略。
如现有技术中已知的,用于使高速缓存保持最新的各种相对简单的策略涉及例如频繁地重新计算或重新收集在高速缓存中维护的整个结果、手动建立和维护重新计算或重新收集调度、并在结果被认为过时时重新计算或重新收集结果。一般而言,重新计算或重新收集大量搜索结果(或更新高速缓存)是消耗大量计算资源以及带宽资源的任务。因此,寻求重新计算或重新收集技术以高效地执行搜索结果的重新计算或重新收集。
在EP 2 908 255 A1中讨论了在确保具有一定可能性的搜索结果的有效性的同时缩短响应时间的另一种策略。根据这种策略,估计预先计算或预先收集的搜索结果的有效性,并且利用这个有效性估计以便将可能有效的预先计算的或预先收集的搜索结果返回给客户端。更具体而言,提供了在具有至少一个客户端和至少一个搜索平台的数据库系统中处理查询的方法。搜索平台维护预先计算的与置信因子相关联的搜索结果。置信因子指示相关联搜索结果有效的概率。由搜索平台接收指示至少一个搜索标准的查询。搜索平台利用与识别出的预先收集的搜索结果相关联的置信因子来增加返回到客户端的、预先收集的有效搜索结果的平均概率。
发明内容
根据本公开的第一方面,提供了一种处理数据库系统中的查询的方法。所述数据库系统包括存储多条原始数据的原始数据源和存储多条高速缓存数据的高速缓存源,其中每条高速缓存数据与准确度值相关联。所述方法包括:在从客户端接收到相应查询时从由所述数据库系统处理的多个查询中随机选择查询。另外,该方法包括,对于随机选择的每个查询,从高速缓存源中检索与随机选择的该查询匹配的第一高速缓存数据,以及从原始数据源中检索与随机选择的该查询匹配的第一原始数据。而且,该方法包括,对于未被随机选择的查询,从高速缓存源中检索与该查询匹配的第二高速缓存数据,评估第二高速缓存数据的准确度值,以及如果准确度值低于给定阈值,那么从原始数据源中检索与该查询匹配的第二原始数据,并且用第二原始数据更新第二高速缓存数据。该方法包括使用机器学习算法基于第一高速缓存数据和第一原始数据来调整概率模型。准确度值是从概率模型导出的并且指示高速缓存数据与对应的原始数据一致的概率。
根据示例,该方法包括,对于随机选择的查询,比较第一高速缓存数据与第一原始数据,用第一原始数据更新第一高速缓存数据,并将第一原始数据返回给客户端。
在另一个示例中,该方法还包括,对于未被随机选择的查询,如果准确度值低于所述给定阈值,那么将第二原始数据作为结果返回给客户端,以及否则,将第二高速缓存数据作为结果返回给客户端。
在又一个示例中,该方法还包括,对于随机选择的每个查询,将关于该查询的信息、第一高速缓存数据和第一原始数据发送到所述数据库系统的历史数据库。
根据另一个示例,该方法还包括将第一原始数据与第一高速缓存数据进行比较,存储指示第一原始数据是否与第一高速缓存数据一致的第一指示符值,比较第一高速缓存数据的准确度值与所述给定阈值,存储指示准确度值是否低于所述给定阈值的第二指示符值,以及基于第一指示符值和第二指示符值的对来更新所述给定阈值。
在进一步的示例中,更新所述给定阈值可以可选地包括:基于第一指示符值和第二指示符值的对来确定轮询率和轮询效率;以及基于轮询率和轮询效率来更新所述给定阈值。
进一步可选地,在进一步的示例中,轮询率是基于等式(TP+FP)/(TP+FP+TN+FN)来确定的,以及轮询效率是基于等式TP/(TP+FP)来确定的。在等式中,TP是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据不一致,并且第二指示符值指示准确度值低于所述给定阈值。TN是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据一致,并且第二指示符值指示准确度值不低于所述给定阈值。FP是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据一致,并且第二指示符值指示准确度值低于所述给定阈值。FN是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据不一致,并且第二指示符值指示准确度值不低于所述给定阈值。
根据本主题公开的第二方面,提供了一种处理查询的数据库系统。所述数据库系统包括存储多条原始数据的原始数据源和存储多条高速缓存数据的高速缓存源,每条高速缓存数据与准确度值相关联。所述数据库系统还被配置为在从客户端接收到相应查询时从由所述数据库系统处理的多个查询中随机选择查询。而且,所述数据库系统被配置为,对于随机选择的每个查询,从高速缓存源中检索与随机选择的该查询匹配的第一高速缓存数据,以及从原始数据源中检索与随机选择的该查询匹配的第一原始数据。所述数据库系统被配置为,对于未被随机选择的查询,从高速缓存源中检索与该查询匹配的第二高速缓存数据;评估第二高速缓存数据的准确度值,并且如果准确度值低于给定阈值,那么从原始数据源中检索与该查询匹配的第二原始数据,并且用第二原始数据更新第二高速缓存数据。所述数据库系统还被配置为使用机器学习算法基于第一高速缓存数据和第一原始数据来调整概率模型。准确度值是从概率模型导出的并且指示高速缓存数据与对应的原始数据一致的概率。
根据本主题公开的第三方面,提供了一种计算机可读存储介质。该计算机可读存储介质存储有计算机程序,所述计算机程序包括指令,所述指令在由计算机执行时使计算机执行根据第一实施例的各方面的方法。
以上发明内容给出了简化的发明内容,以便提供对本文所讨论的系统和/或方法的一些方面的基本理解。本发明内容不是本文讨论的系统和/或方法的广泛概述。其目的不是识别关键/决定性元素或描述这种系统和/或方法的范围。其唯一的目的是以简化形式呈现一些概念,作为稍后给出的更详细描述的序言。
附图说明
附图图示了本主题公开的各种实施例,并且与上面给出的一般描述以及下面给出的实施例的详细描述一起用于解释本主题公开的实施例。在附图中,相同的标号用于表示各种视图中的相同部分。
图1示出了示例性数据库系统,其中可以执行处理搜索查询的方法。
图2示出了在图1的示例性数据库系统中处理搜索查询的示例性方法。
图3示出了处理查询并调整轮询决定的本主题公开的原理。
图4示出了处理查询并调整轮询决定的本主题公开的进一步原理。
图5示出了根据本主题公开的处理查询的方法。
图6示出了示例性数据库系统,其中可以执行图5中所示的方法。
图7示出了用于在图5的方法内处理未被选择的搜索查询的示例性方法。
图8示出了在图5的方法内更新高速缓存数据的示例性方法。
图9示出了更新图6的数据库系统中的阈值的示例性方法。
图10示出了根据实施例的计算机系统的示意图。
具体实施方式
在转向实施例的详细描述之前,首先将解释所涉及技术的一些更一般的方面。
本主题公开一般而言涉及在数据库系统中处理搜索查询。术语“搜索查询”包括所有类型的数据库请求,包括例如检索数据的读取请求和插入、改变或删除数据的写入请求。用于处理搜索查询的示例性数据库系统1在图1中示出。
数据库系统100包括至少一个搜索平台110和至少一个数据库120。为了增加故障安全性或性能,可以存在多个搜索平台110。还可以存在多个数据库120以便增加容量或性能。多个数据库120可以位于一个站点,或者可以分布在多个站点上。至少一个搜索平台110和至少一个数据库120通过诸如局域网(LAN)、城域网(MAN)或广域网(WAN)(诸如因特网)之类的网络连接。
至少一个数据库120存储原始数据。在本文中,存储原始数据的这种数据库120也被称为原始数据源。更详细地,至少一个数据库120存储多条原始数据。在这里,术语“原始数据”意味着有效并且形成数据库系统100内的所有数据处理的基础的数据,特别是搜索查询所针对的数据。这里的术语“数据库”意味着涵盖任何类型的结构化信息存储系统,诸如标准的独立数据库,如SQL或非SQL数据库,以及复杂的、分布式的和/或专有的数据库,关系数据库或面向对象的数据库。最后,这里的术语“条”意味着任何类型的结构化信息,诸如记录、数组,数据库表的部分(例如,列、行或条目)等。
各条原始数据可以涉及特定领域(domain)中的任何类型的信息。例如,原始数据可以位于基于计算机的电子电路仿真领域(诸如EPO上诉委员会的T 1227/05决定的电路仿真主题),并且包含关于针对基于计算机的电子电路仿真的输入值的信息、由基于计算机的电子电路仿真所使用的模型的参数、中间和/或最终仿真结果,等等。这个基于计算机的电子电路仿真相关数据保存在至少一个数据库120中,并且可以由在其上执行基于计算机的电子电路仿真的计算系统查询,例如,经由至少一个搜索平台110,以便检索输入值或参数、写入或更新仿真结果。
另外,在数据库系统100中,至少一个搜索平台110维护预先计算或预先收集的搜索结果,以便与从至少一个数据库120检索对应的原始数据所需的时间相比减少回答搜索查询的响应时间,并对其执行计算以获得搜索结果。在这方面,术语“预先计算”和“预先收集”用于覆盖任何类型的预先计算和预先收集,诸如收集或复制因特网Web服务器的内容的因特网爬虫,但也包括基于底层原始数据对搜索结果进行的复杂且时间密集的计算。在基于计算机的电子电路仿真领域中,预先计算可以涉及使用减少的参数集执行仿真(与利用现实世界系统的所有参数相比),但是具有所述参数集的变化的值,以便利用附加或其它参数集获得在进一步仿真中用作输入值的结果。
在至少一个搜索平台110中,可以提供用于存储搜索结果的至少一个高速缓存源115。存储在至少一个高速缓存源115中的数据被称为高速缓存数据,并且多条高速缓存数据可以存储在至少一个高速缓存源115中。例如,存储在至少一个高速缓存源115中的各条高速缓存数据可以与至少一个数据库120(即,原始数据源)中的各条原始数据对应,并且至少一个高速缓存源115中的多条高速缓存数据涉及来自至少一个数据库120的多条原始数据的子集。
但是,如上面已经提到的,由于已经预先计算或预先收集的原始数据的改变,在至少一个搜索平台110的至少一个高速缓存源115中维护的高速缓存预先计算或预先收集的搜索结果随着时间的推移而变得过时。由于原始数据的改变,对应的高速缓存数据与原始数据之间出现差异,并且因此高速缓存数据变得无效。
为了提供对高速缓存数据是否有效的可能性的指示,由搜索平台110在至少一个高速缓存源115中维护的预先收集或预先计算的搜索结果与准确度值(在本文也称为置信因子)相关联。准确度值可以类似于由EP 2 908 255 A1描述的置信因子。例如,由搜索平台110存储的每个预先收集或预先计算的搜索结果具有对应的准确度值。可替代地,一个准确度值可以与多个预先收集或预先计算的搜索结果相关联。准确度值指示相关联的预先收集或预先计算的(一个或多个)搜索结果有效的概率。即,准确度值指示存储在至少一个高速缓存源115中的高速缓存数据与对应的原始数据(即,从其导出该高速缓存数据的原始数据)一致的概率。利用与预先收集或预先计算的搜索结果相关联的准确度值,以便决定是从至少一个高速缓存源115还是从至少一个数据库120返回预先收集或预先计算的搜索结果。
一般从中导出高速缓存源115中预先计算或预先收集的搜索结果的准确度值的概率模型对高速缓存(预先计算或预先收集的)搜索结果与基于至少一个数据库120中的原始数据的搜索结果(即,推测的或者如果它们实际被检索)之间的差异进行建模。即,概率模型近似任何高速缓存的搜索结果的准确度或不准确度。作为示例,概率模型对高速缓存的搜索结果随时间的可能有效性进行建模。
可以采用各种类型的概率模型。例如,概率模型可以是通过作为科学建模已知的结构化建模处理生成的概念模型。建模需要识别和选择现实世界环境的那些方面和事件(在这里,例如,对高速缓存的搜索结果随时间的易失性和准确性降低有影响的方面和事件)并将与该模型的目的不特别相关的其它方面排除在外。此外,所识别和选择的方面可以以诸如计算机程序和/或数学方程之类的可处理形式被抽象和制定/实现。这种概念模型也可以用作仿真预先计算或预先收集的搜索结果随时间的行为(即,易失性/准确性)的基于计算机的仿真的手段。可替代地,所采用的概率模型可以是历史统计模型,其基于监视和评估,例如,在过去的给定时间段(例如,三个月)内预先计算或预先收集的搜索结果的易失性/准确性,并将确定的趋势推断到未来。
除了使用概率模型对准确度建模之外,还通过对事件进行反应来防止严重的准确度下降。在接收到可能对高速缓存的搜索结果的正确性产生影响的预定事件时,完善重新计算/重新收集决定。事件可以是异步的(即,它们发生的时间点不是预定的-它们可以在任何时间发生),或者是同步的(即,它们发生的时间点可以预先确定-它们可以规律地发生)。
在图1中,至少一个客户端130(通常是多个客户端)通过诸如局域网(LAN)、城域网(MAN)、广域网(WAN)(诸如因特网)或移动通信网络(诸如长期演进(LTE))之类的网络连接到至少一个搜索平台110。连接可以是有线的或无线的。例如,客户端130可以是个人计算机或移动通信设备,诸如智能电话、平板电脑、个人助理等。
在下文中,将解释图1中所示的数据库系统100如何处理搜索查询。
图2图示了用于处理图1的数据库系统100中的搜索查询的方法200的流程图。
在操作210中,多个客户端130将搜索查询指引到包括一个或多个搜索标准或参数的搜索平台110。例如,如果搜索查询是因特网搜索,那么搜索查询可能携带搜索串、搜索文本或搜索短语作为搜索标准。另一个搜索标准可以是要搜索的网站的语言或者对所请求的搜索串、搜索文本或搜索短语的第一可用性的时间点的指示。在以上示例中,在基于计算机的仿真的领域中,搜索查询可以携带输入参数的名称作为搜索标准,对于该输入参数,基于计算机的仿真需要值。
搜索平台110接收搜索查询,处理从客户端130接收的每个搜索查询,并在预先收集或预先计算的搜索结果内执行对应的搜索。更详细地,在操作220中,搜索平台110可以向高速缓存源115发送搜索请求以执行对每个搜索查询的搜索。搜索请求包括搜索查询的一个或多个搜索标准或参数的至少一部分。在操作225中,高速缓存源115基于搜索请求执行搜索,即,搜索高速缓存数据中与搜索请求的搜索标准或参数匹配的数据,并且在操作230中将找到的高速缓存数据作为预先计算或预先收集的搜索结果发送到搜索平台110。预先计算或预先收集的搜索结果(即,高速缓存数据)具有与搜索请求的搜索标准或参数一致(即,匹配)的值或参数。
在操作280中,由搜索平台110将高速缓存源115中任何匹配的预先计算或预先收集的搜索结果返回到客户端130,从客户端130接收搜索查询作为对搜索查询的响应。客户端130接收这个响应并将搜索结果呈现给用户,或者在基于计算机的仿真的领域中,将搜索结果用作在其上执行的仿真的输入。
在未在高速缓存源115中找到匹配的预先计算或预先收集的搜索结果的情况下,搜索平台110可以使搜索查询的参数或搜索标准限制性较小并且通过向高速缓存源115发送具有较少限制性的搜索标准或参数的经修订的搜索请求来执行经修订的搜索。搜索平台110还可以通过不应用所有给定的搜索标准或参数来执行经修订的搜索。可以通过给定规则在搜索平台110中设置或者使用机器学习技术(例如,基于历史搜索标准或参数以及预先计算或预先收集的搜索结果的概率模型)来确定哪些特定的搜索查询的参数或搜索标准被制定为限制性较少和如何将搜索查询的参数或搜索标准被制定为限制性较少,和/或哪些搜索标准或参数在搜索查询中不太重要。
如上所述,高速缓存源115中的搜索结果可以与准确度值相关联。如果是,那么在操作240中,搜索平台110可以在将与搜索标准或参数匹配的预先收集或预先计算的搜索结果返回到客户端130之前,评估所述搜索结果的准确度值,类似于EP 2 908 255 A1。例如,搜索平台110将准确度值与阈值(由客户端130在搜索查询中给出,或在搜索平台110中规定)进行比较。由此,搜索平台110确定搜索结果有效的概率,即,由高速缓存源115发送的搜索结果与数据库120中预先收集或预先计算它们的对应原始数据一致的概率。
如果准确度值高于给定阈值,那么搜索平台110在操作280中返回与其相关联的搜索结果。否则,对于由高速缓存源115发送的具有不高于给定阈值的准确度值的搜索结果,搜索平台110从数据库120检索对应的原始数据。即,在操作250中,搜索平台110将相应的搜索请求发送到数据库120,并且在操作255中数据库120搜索与搜索请求中的搜索标准或参数匹配的原始数据。然后,在操作260中,数据库120返回找到的原始数据。响应于从数据库120接收到原始数据,搜索平台110在操作280中将接收到的原始数据作为搜索结果返回给客户端130。通过在操作270中将从数据库120检索到的搜索结果发送到高速缓存源115以进行更新,搜索平台110还可以在高速缓存源115中更新从数据库120检索到的搜索结果。高速缓存源115通过使用从搜索平台110接收到的搜索结果来更新高速缓存数据。
即,类似于EP 2 908 255 A1,在高速缓存中维护与指示相关联搜索结果有效的概率的准确度值相关联的预先计算的搜索结果。但是,如在EP 2 908 255 A1中那样,准确度值具有静态性质,使得每当与特定搜索结果相关联的准确度值指示其无效性时,将执行轮询。由于通过轮询从数据库检索到的搜索结果仍然与预先计算的搜索结果一致,因此这导致大量不必要且因此低效的轮询。即,即使相关联的准确度值指示其无效性,预先计算的搜索结果实际上也仍然有效。此外,如上面已经提到的,搜索结果的重新计算和重新收集是消耗大量计算资源以及带宽资源的任务,并且本主题公开实现了以同步方式更新高速缓存数据的效率改进,优选地,仅针对可能过时的各条高速缓存数据从数据库120中检索原始数据。
在本文中,从数据库120检索原始数据并使用其来更新高速缓存115中的高速缓存数据或响应搜索查询也被称为轮询或轮询操作。可以响应于接收到特定搜索查询(即,以同步方式)或独立于任何搜索查询来执行轮询。在后一种情况下,存储在高速缓存115中的高速缓存数据的至少一部分或全部通过批量操作以异步方式更新。是否轮询的决定被称为轮询决定。例如,如图2的操作240那样,针对给定阈值评估与高速缓存数据相关联的准确度值,以便确定高速缓存数据是否可能有效,从而是否有必要从数据库中检索原始数据,是在主题公开的背景下的轮询决定。
本主题公开考虑了这些问题,并提供了调整概率模型的方法,以便通过与EP 2908 255 A1相比减少在高速缓存115中具有有效对应数据的原始数据的轮询条数来提高轮询决定的效率。更详细地,本主题公开允许通过调整准确度值以及因此调整轮询决定从而使准确度值动态和轮询决定动态,来避免不必要和低效的轮询或至少限制它们的量。这允许限制要对数据库120执行的搜索请求或搜索查询的数量,从而解决例如EP 2 908 255 A1的缺点。现在将参考图3和4描述本主题公开的一般原理。
一般而言,如图3中所示的处理搜索查询的方法从由诸如图1中所示的数据库系统100之类的数据库系统处理的所有搜索查询320中选择多个搜索查询310。更详细地,在数据库系统100处从客户端130接收到搜索查询时,决定是以上面参考图2所公开的已知方式处理搜索查询,还是选择搜索查询并将其作为所选择的搜索查询310进行处理。所选择的搜索查询形成实际查询,这些查询被处理以便调整概率模型并以特定方式处理,如下所述。选择搜索查询的决定可以是随机的,或者基于某些规定的因子,诸如例如特定于搜索查询的因子(例如,搜索查询包括规定的搜索标准或参数)、特定于客户的因子(例如,从规定的客户端接收到搜索查询)或其它因子(例如,在规定的时间或时间间隔接收搜索查询)。通过从高速缓存源115检索高速缓存数据并且还从数据库120检索原始数据来处理(操作330)所选择的搜索查询310,二者都匹配所选择的搜索查询310的搜索标准或参数。从数据库120检索出的原始数据被返回到客户端130,并且还可以被用于更新高速缓存源115中的高速缓存数据。检索出的高速缓存数据和检索出的原始数据被用于调整概率模型。特别地,比较检索出的高速缓存数据与检索出的原始数据,以确定检索原始数据是否合适。即,如果比较导致检索出的高速缓存数据与检索出的原始数据一致,那么检索原始数据将是不合适的,因为高速缓存数据仍然有效;否则,由于高速缓存数据无效,因此检索原始数据将是合理的。指示轮询效率的这个结果与检索出的高速缓存数据和检索出的原始数据一起存储(操作340),并用于调整从其导出与高速缓存数据相关联的准确度值的概率模型(操作350)。优选地通过使用机器学习算法来进行调整,这将在下面更详细地描述。因而,概率模型得到改进,并且轮询(即,从数据库检索原始数据并更新高速缓存数据)是否有必要的决定被调整且因此效率被调整,从而提高概率模型的准确度。与EP 2 908 255 A1相比,这允许通过改进轮询决定来减少轮询的数量。
根据这些原理,选择由数据库系统处理的所有搜索查询中的多个搜索查询,以便与未选择的搜索查询不同地进行处理。如上面参考图3所述的那样处理所选择的搜索查询,而如上参考图2所述的那样处理未选择的搜索查询。这导致确定轮询对于高速缓存的数据和对应的原始数据是否合适并因此高效,因为可以确定高速缓存数据是否实际上已经过时。这是基于真实搜索查询以在线方式完成的,使得可以避免使用例如测试搜索查询或历史搜索查询的附加离线处理,同时提高概率模型的准确度。
如上所述,通过考虑与高速缓存数据和阈值相关联的准确度值,还可以改进图3中所示的方法。如图4中所示,该方法还包括预测处理410(可由预测器执行,如下面结合图6所述)。响应于检索出与搜索查询匹配的高速缓存数据,与高速缓存数据相关联的准确度值相对于阈值进行评估,类似于图2的操作240。预测处理410的结果指示或者执行轮询(即,原始数据已经被检索并返回,因为高速缓存的数据可能已过时)或者不执行轮询(即,高速缓存数据可能是有效的并且会被返回)。还存储指示预测(预测器)决定的处理的结果(操作420)并且在使用机器学习算法调整概率模型(430)时考虑这个结果。以这种方式,可以比较指示轮询效率的结果与指示预测决定的结果。例如,可以确定是否高速缓存数据实际上已经过时,而相对于阈值评估准确度值表明高速缓存数据可能没有过时。这进一步改进概率模型和是否需要轮询的决定,从而进一步提高概率模型的准确度。这允许将轮询的数量限制到最小。
现在,将参考图5至9更详细地描述作为本主题公开的一个方面的处理搜索查询的方法。
该方法在数据库系统600中执行,数据库系统600包括作为原始数据源的至少一个数据库120和作为高速缓存源的至少一个高速缓存115。原始数据源120存储多条原始数据,并且高速缓存源115存储多条高速缓存数据。在本文中,应当理解的是,通过轮询操作从原始数据源120检索各条高速缓存数据并将其存储在高速缓存源115中,从而表示各条原始数据的高速缓存版本。但是,高速缓存数据不限于高速缓存版本,并且可以涉及基于原始数据的预先计算或预先收集处理的结果。轮询操作应当被理解为包括预先计算或预先收集处理。高速缓存数据与指示高速缓存数据与原始数据一致的概率的准确度值相关联。例如,每条高速缓存数据可以与指示该条高速缓存数据与对应一条原始数据(即,从其导出该条高速缓存数据的一条原始数据)一致的概率的这种准确度值相关联。准确度值是从在数据库系统600中建立的概率模型导出的。数据库系统600还包括建模器610,用于维护和调整概率模型以及从概率模型导出准确度值。
在操作510中,数据库系统600从连接到数据库系统600的至少一个客户端130接收多个搜索查询(下文中也简称为查询),并通过类似于图1的搜索平台110的搜索平台处理接收到的搜索查询。
图5的方法500开始于操作520,用于从由数据库系统600处理的多个搜索查询中选择搜索查询。更详细地,数据库系统600在操作510中从至少一个客户端130接收到特定搜索查询时决定搜索查询是否将作为所选择的搜索查询被处理。这是随机进行的,但在其它实施例中也可以规律进行或根据给定规则进行。例如,规律进行可以包括将每个第十个或第一百个搜索查询处理为所选择的搜索查询。给定规则可以定义搜索标准或参数(如果该搜索标准或参数在搜索查询中存在,那么将该搜索查询指定要选择的搜索查询),或者用于指定为要选择的其它因子(诸如接收时间、具有相似或完全相同搜索标准或参数的给定数量的搜索查询、从同一客户端130接收的给定数量的搜索查询、或统计模型之类)。如果由给定规则指定,那么搜索查询作为所选择的搜索查询被处理。在数据库系统600中,接收搜索查询、对已接收到搜索查询的指示、搜索查询的副本等的选择器620执行操作520并将搜索查询指定为所选择的搜索查询。
响应于在操作520中选择了搜索查询(即,对于随机选择的搜索查询),在操作530中从高速缓存源115中检索与搜索查询匹配的高速缓存数据(称为第一高速缓存数据)。更具体而言,向高速缓存源115提供搜索请求,该搜索请求包括搜索查询中包括的参数或搜索标准的至少一部分。高速缓存源115在存储在其中的所有高速缓存数据中搜索与搜索请求,特别是其搜索标准或参数匹配的高速缓存数据。与搜索请求匹配的高速缓存数据作为第一高速缓存数据从高速缓存源115返回。这个操作530类似于图2中所示的操作220、225和230。如果没有找到与搜索请求匹配的高速缓存数据,那么方法500还可以指示不匹配的高速缓存数据继续进行。
另外,在操作540中,从原始数据源120中检索与搜索查询匹配的原始数据(称为第一原始数据)。更具体而言,向原始数据源120提供搜索请求,该搜索请求包括搜索查询中包括的参数或搜索标准的至少一部分。就包括的搜索标准或参数而言,发送到原始数据源120的搜索请求与发送到高速缓存源115的搜索请求对应。高速缓存源115搜索与搜索请求,特别是其搜索标准或参数匹配的原始数据。与搜索请求匹配的原始数据作为第一原始数据从原始数据源120返回。这个操作540类似于图2中所示的操作250、255和260。在一些示例中,操作530和540并行执行。如果没有找到与搜索查询匹配的原始数据,那么方法500还可以指示不匹配的原始数据继续进行。
在一些示例中,如果在操作530中在高速缓存源115中没有找到与搜索查询匹配的高速缓存数据,那么可以使搜索查询的搜索标准或参数的限制性更少,如上面结合图2所述,并且然后,对于具有较少限制性搜索标准或参数的搜索查询执行操作530。而且,如果在操作540中在原始数据源120中没有找到与搜索查询匹配的原始数据,那么或者指示在原始数据源120中不存在与搜索查询匹配的原始数据的对应信息或者在操作530中找到的高速缓存数据在操作570中被返回到客户端130。
方法500还可以包括操作550,以使用从原始数据源120检索出的第一原始数据来更新高速缓存源115中的第一高速缓存数据。操作550类似于图2中所示的操作270。
然后,在操作560中,基于第一高速缓存数据和第一原始数据来调整概率模型。可以针对在操作520中随机选择的每个搜索查询来执行操作560。一般而言,不是针对每个所选择的搜索查询单独地执行操作560,而是针对在操作520中随机选择的所收集数量的搜索查询以异步方式执行操作560。例如,异步执行操作520意味着当已经选择和处理了给定数量的搜索查询时执行操作520。尤其是在以异步方式执行操作560的情况下,由操作530和540检索出的第一高速缓存数据和第一原始数据被存储在数据库系统600中,以便随后在操作560中进行处理。在操作560中调整概率模型可以使用机器学习算法,如下文所述。操作560可以由建模器610执行,建模器610还被配置为针对随机选择的每个搜索查询接收第一高速缓存数据和该原始数据。
最后,或者与操作550或560并行,在操作570中将从原始数据源120检索出的第一原始数据作为搜索结果返回到客户端130。在这里,在搜索查询的搜索标准或参数已经如上所述被制定为限制性较少的情况下,返回第一原始数据包括对搜索查询的搜索标准或参数已经改变以及如何改变以使其限制性较少的指示。
在示例中,操作560包括比较第一高速缓存数据与第一原始数据,并确定指示第一高速缓存数据与第一原始数据一致的概率的统计值。在这种情况下(即,如果两个第一数据一致),那么从原始数据源120检索原始数据将不是必需的,因为该条高速缓存数据仍然有效。
响应于概率模型的调整,可以更新高速缓存源115中的所有或至少一些高速缓存数据的准确度值。例如,可以通过从调整的概率模型导出高速缓存数据的准确度值来更新高速缓存数据的准确度值。
在本主题公开中,可以建立可以与概率模型结合使用的任何机器学习算法。例如,给定被转换成结构化特征集的多个所选择的搜索查询,机器学习算法构建概率模型以预测目标(例如,与搜索查询一起存储的第一指示符值)。这里的术语“特征”涉及可以从搜索查询中推导出的任何信息。多个所选择的搜索查询的转换可以包括使用搜索标准和/或参考数据(例如,示出对于给定电子电路的默认输出值的表,等等)计算所有特征的值。例如,根据多个搜索查询的所有搜索标准以及参考数据,可以选择机器学习算法要使用的特征集。因此,特征集可以包含需要计算的特征和搜索标准的混合,但是特征也可以与一个或多个搜索标准(例如,要由基于计算机的电子电路仿真进行仿真的给定电子电路的所有输入参数、搜索查询的时间戳等)对应。特征集被结构化,因为机器学习算法需要输入例如结构化数据文件(例如,逗号分隔的数据文件),其中一行对应搜索查询并且一列对应特征。列的次序遵循给定模式,以便一旦部署后就正确使用概率模型。机器学习算法还可以迭代地构建决策树。从多个所选择的搜索查询开始,机器学习算法测试特征和关于这些特征的条件,以将多个搜索查询分成两个子集。这些测试之一可以是“给定电子电路的输入参数等于具有值10的电压”(即,一般而言,检查特征是否等于给定值),或“给定电子电路的输入参数等于具有大于20的值的电压”(即,一般而言,检查特征是否大于/小于给定值)。从所测试的所有特征和条件中,机器学习算法仅保留将多个搜索查询中的多数分离成包含其目标等于一个值的搜索查询的第一子集和包含其目标不等于一个值的搜索查询的第二子集的特征和条件。换句话说,决策树由机器学习算法构建,使得特征被视为具有两条传出路径的节点,一条用于具有等于给定值的特征的搜索查询(第一子集)并且另一条路径用于具有不等于给定值的特征的搜索查询(第二子集)。即,基于该特征将搜索查询分成两个子集。机器学习算法逐步构建决策树,然后利用相同的特征和条件选择逻辑将子集分成更小的集合。一旦决策树达到其参数中提供的给定尺寸或复杂度,机器学习算法就停止。
如上所述,图5示出了对由数据库系统600处理的多个搜索查询中的在操作520中选择的每个搜索查询执行的操作。在下文中,针对未在图5的操作520中选择的每个搜索查询执行的操作将参考图7中所示的方法700来描述。
响应于未在操作520中选择的搜索查询(即,对于未被随机选择的搜索查询),在操作710中,从高速缓存源115检索与搜索查询匹配的高速缓存数据(称为第二高速缓存数据),类似于图2中的操作220、225和230。具体而言,如图2的操作220中那样向高速缓存源115提供搜索请求,并且搜索与搜索查询,特别是其搜索标准或参数匹配的高速缓存数据,如图2的操作225中那样。如图2的操作230中那样,从高速缓存源115返回与搜索查询匹配的高速缓存数据作为第二高速缓存数据。
如上所述,从高速缓存源115检索出的第二高速缓存数据与准确度值相关联。响应于在操作710中检索第二高速缓存数据,如图6中所示的预测器650在操作720中评估第二高速缓存数据的准确度值。例如,将准确度值与给定阈值进行比较。这个操作类似于图2中所示的操作240。
在一些示例中,阈值由客户端130规定。例如,当从数据库系统600请求搜索结果时,客户端130在搜索查询中包括阈值(诸如“至少85%”或“至少0.9”或同样被定义为“至少0.9”的“高”之类)。客户端130还可以向数据库系统600发送指示期望阈值的专用异步消息。数据库系统600存储这些特定于客户端的阈值规定并且每次从相应客户端130接收搜索查询时使用它们。可替代地,在其它示例中,阈值由诸如数据库系统600的操作者之类的第三方设置。在这种情况下,单个阈值可以适用于从所有客户端130接收的所有搜索查询。客户端130可能不会对数据库系统600采用的阈值产生影响。可替代地,由第三方预先设置的阈值可以充当默认值,并且客户端130可以能够用自己的特定于客户端的规定覆盖这个默认值。
如果操作720中的评估表明准确度值低于给定阈值,那么在操作730中从原始数据源120检索与搜索查询匹配的原始数据(称为第二原始数据)。这个操作730类似于图2中所示的操作250、255和260。更具体而言,向原始数据源120提供搜索请求,类似于图2中的操作250,并且对原始数据源120搜索与搜索查询,特别是其搜索标准或参数匹配的原始数据,类似于图2中的操作255。匹配搜索查询的原始数据作为第二原始数据从原始数据源120返回,类似于图2中的操作260。
响应于检索第二原始数据,在操作740中用第二原始数据更新高速缓存源115中的第二高速缓存数据。这个操作740类似于图2中所示的操作270。例如,第二原始数据存储在高速缓存源115中,使得第二高速缓存数据被替换,从而在高速缓存源115中形成新的高速缓存数据。而且,第二原始数据可以被存储在高速缓存源115中,作为更新后的高速缓存数据,它使先前的第二高速缓存数据失效。还可以更新与更新后的第二高速缓存数据的准确度值相关的控制数据,诸如更新时间戳之类。在示例中,可以在高速缓存源115上执行垃圾收集器,从而删除任何失效的高速缓存数据并释放高速缓存源115中的对应空间。
取决于操作720中的评估是否表明其准确度值高于给定阈值,在操作750中将第二高速缓存数据或第二原始数据作为搜索结果返回给客户端130。这个操作750也可以与操作740并行执行。在这里,在搜索查询的搜索标准或参数如上所述被制定为限制性较少的情况下,那么返回第二原始数据或第二高速缓存数据包括对搜索查询的搜索标准或参数已经改变以及如何改变以使其限制性较少的指示。
在示例中,图5中示出的方法500的操作550可以根据图8中示出的方法800来执行。
响应于从高速缓存源115检索出第一高速缓存数据并从原始数据源120检索出第一原始数据,可以确定更新第一高速缓存数据是否合适。
方法800包括,在操作810中,比较第一高速缓存数据与第一原始数据。执行比较操作810,以便检查从高速缓存源115检索出的第一高速缓存数据是否与从原始数据源120检索出的第一原始数据一致。如果确定第一高速缓存数据/原始数据不一致,这意味着第一高速缓存数据已经过时,那么在操作550中,第一高速缓存数据由第一原始数据更新。这个操作550类似于图2中所示的操作270。独立于操作810的结果,将第一原始数据作为搜索结果返回到已从其接收到搜索查询的客户端130。
在示例中,在选择器620或数据库系统600中,可以建立要从由数据库系统600处理的所有搜索查询中选择的一定数量的搜索查询。由于在调整概率模型时考虑了所选择的一定数量的搜索查询,因此这增加了概率作用(significance)。所选择的搜索查询的这个数量可以是特定于系统的、预定义的,或基于从概率模型导出的因子确定的。所选择的搜索查询的数量可以适用于给定的时间段,诸如一小时或一天。因而,可以调整图5中所示的操作520,以便能够从由数据库系统600处理的搜索查询中选择其数量与所建立的所选择的一定数量的搜索查询对应的搜索查询。仅在先前选择的搜索查询的数量不等于所建立的所选择的搜索查询的数量的情况下,选择器620才执行操作520;否则,根据图7中所示的方法700处理搜索查询。在选择搜索查询的情况下,选择器420递增先前选择的搜索查询的数量。选择器420可以在所选择的搜索查询的数量适用的给定时间段之后重置先前选择的搜索查询的数量。
在另一个示例中,数据库系统600包括历史或记录数据库630。历史或记录数据库630可以由任何类型的数据库实现,优选地由分布式数据库实现,并且可以与原始数据源120分离或与之结合。在历史或记录数据库630中,存储和维护关于搜索查询的信息、响应于搜索查询而检索出的高速缓存数据和原始数据以供进一步处理。在图5所示的方法500中,例如,在用于从原始数据源120检索第一原始数据的操作540之后,关于从客户端130接收的搜索查询的信息、在操作530中从高速缓存源115检索出的第一高速缓存数据以及在操作540中从原始数据源120检索出的第一原始数据被发送到历史或记录数据库630。例如,关于搜索查询的信息可以包括以下当中的一个或多个:搜索查询的搜索标准或参数、在数据库系统600处接收到搜索查询的时间、关于从其接收搜索查询的客户端130的信息,以及关于检索第一高速缓存/原始数据的响应时间的信息。而且,第一高速缓存数据可以与其相关联的准确度值一起发送到历史或记录数据库630。历史或记录数据库630接收该信息并以结构化方式存储该信息,例如,作为n元组(例如,3元组或三元组)。历史或记录数据库630维护信息并向建模器610提供信息,建模器610在操作560中使用该信息来调整概率模型。该信息可以在历史或记录数据库630中维持给定的时间段,或者一旦用于在操作560中调整概率模型就被丢弃。
在又一个示例中,数据库系统600包括阈值更新器640。如果数据库系统600采用阈值更新器640,那么阈值更新器640负责更新给定阈值。给定阈值的调整或变化使得数据库系统600能够控制负载,使得仅使用原始数据源120处理由数据库系统600处理的搜索查询的多个或一部分,从而避免原始数据源120处的过载。而且,阈值更新器640可以提供和更新用于调整由客户端130规定的阈值的规则。阈值更新器640优选地以与图5中所示的操作以及建模器610和历史数据库630的操作异步的方式执行操作。如果阈值更新器640由第三方触发,或者如果作为所选择的搜索查询的搜索查询的数量超过给定值,那么阈值更新器640规律地更新给定阈值。
现在将参考图9描述阈值更新器640的操作,图9示出了更新给定阈值的方法900。优选地,更新给定阈值的方法900是调整如图5所示的概率模型的方法500的一部分。
图9的方法900开始于在操作910中将第一原始数据与第一高速缓存数据进行比较。要与第一高速缓存数据比较的第一原始数据可以由阈值更新器640从历史或记录数据库630检索。而且,响应于从高速缓存源115和原始数据源120检索出第一高速缓存数据/原始数据,可以将要比较的第一高速缓存数据/原始数据发送到阈值更新器640。
在操作920中,由阈值更新器640存储第一指示符值。第一指示符值由阈值更新器640针对比较的第一块高速缓存数据/原始数据提供,并指示比较的结果。即,第一指示符值是第一高速缓存数据/原始数据是否彼此一致的指示符。例如,第一指示符值由一位的值表示,其中值“1”表示第一数据彼此一致,而值“0”表示第一数据不一致。第一指示符值可以与第一高速缓存数据/原始数据相关联地保存在阈值更新器640中,或者可以被发送到历史或记录记录数据库630以作为对应的第一高速缓存数据/原始数据的n元组中的值进行存储。
然后,在操作930,将与从历史或记录数据库630检索出的第一高速缓存数据相关联的准确度值与给定阈值(即,与当前在数据库系统600中建立的给定阈值或依据对应的搜索查询)进行比较。
在操作940中,第二指示符值由阈值更新器640存储。第二指示符值由阈值更新器640为第一高速缓存数据提供并指示比较的结果,第一高速缓存数据的准确度值已用于比较操作930。即,第二指示符值是准确度值是否低于给定阈值的指示符值。例如,第二指示符值由一位的值表示,其中值“1”表示准确度值低于给定阈值,而值“0”表示准确度值不低于给定阈值。第二指示符值可以与第一高速缓存数据相关联地保持在阈值更新器640中,或者可以被发送到历史或日志数据库630以作为对应的第一高速缓存数据的n元组中的值进行存储。
基于或者保持在阈值更新器640中或者从历史或记录数据库630检索出的第一和第二指示符值,在操作940中更新给定阈值。
由方法900更新的给定阈值在数据库系统600中建立并用于后续搜索查询。
在优选示例中,图9的方法900由阈值更新器640针对以批处理的形式存储在历史或记录数据库630中的多个第一高速缓存数据/原始数据中的每一个来执行。
在示例中,方法900的操作940包括基于第一和第二指示符值对来确定轮询率和轮询效率的操作942,以及基于轮询率和轮询效率来更新给定阈值的操作944。在这里,考虑多个第一和第二指示符值,并且可能在操作942之前从历史或记录数据库630中检索所述多个第一和第二指示符值。轮询率指示执行轮询操作的比率。即,轮询率是实际执行的轮询操作的总数与可能的轮询操作的总数之间的比率(即,在对每个搜索查询执行轮询操作的情况下)。例如,轮询率是指示准确度值低于给定阈值(即,指示第一高速缓存数据已经过时并且假设与对应的第一原始数据不一致)的第二指示符值的数量与第二指示符值的总数之间的比率。轮询效率指示轮询操作多高效。即,轮询效率是在准确度值低于给定阈值并且高速缓存数据已经过时的时候执行的轮询操作的数量与实际执行的轮询操作的总数之间的比率。例如,轮询效率是指示准确度值低于给定阈值(其中第一高速缓存数据已经过时)的第二指示符值的数量与指示准确度值低于给定阈值的第二指示符值的总数之间的比率。
在以上示例中,可以基于以下等式(1)确定轮询率:
可以基于以下等式(2)在以上示例中确定轮询效率:
在等式(1)和(2)中:
-TP是所述第一和第二指示符值对的数量,其中第一指示符值指示原始数据与高速缓存数据不一致,并且第二指示符值指示准确度值低于给定阈值;
-TN是所述第一和第二指示符值对的数量,其中第一指示符值指示原始数据与高速缓存数据一致,并且第二指示符值指示准确度值不低于给定阈值;
-FP是所述第一和第二指示符值对的数量,其中第一指示符值指示原始数据与高速缓存数据一致,并且第二指示符值指示准确度值低于给定阈值,以及
-FN是所述第一和第二指示符值对的数量,其中第一指示符值指示原始数据与高速缓存数据不一致,并且第二指示符值指示准确度值不低于给定阈值。
而且,在以上示例中,如果针对多个对计算的轮询率高于期望值(例如,原始数据源120的硬件限制),那么可以增加给定阈值。否则,如果轮询率低于期望值,那么可以减小给定阈值。对多个对中的一批或几批迭代地进行,给定阈值朝着使得能够达到轮询率的期望值的值收敛。
最后,图10是提供图6的数据库系统600的功能的计算机系统的图形表示。在数据库系统600a内,可以执行指令集,以使计算机系统执行本文讨论的任何方法。数据库系统600包括至少一个处理器1020、主存储器1040和网络接口设备1080,它们经由总线1010彼此通信。可选地,它还可以包括静态存储器1060和盘驱动器单元1070。可以提供视频显示器、字母数字输入设备和光标控制设备作为用户界面1030的示例。网络接口设备1080至少将计算机系统600连接到客户端130、一个或多个充当原始数据源120和历史或记录数据库630的数据库(如果在数据库系统600外部提供)、充当建模器610、选择器620和阈值更新器640的其它计算设备(如果在数据库系统600外部提供)、因特网和/或任何其它网络。而且,充当原始数据源120和历史或记录数据库630的一个或多个数据库可以作为主存储器1040内的数据库1042提供。实施上述方法中的任何一个或全部的计算机可执行指令集(即,计算机程序代码)1044完全或至少部分地驻留在机器可读介质(例如,主存储器1040和/或至少一个处理器1020)中或其上。代码1044所在的机器可读介质也可以是作为盘驱动器单元1070的一部分的非易失性数据载体(例如,不可移动磁性硬盘或者光学或磁性可移动盘)。代码1044还可以作为传播的信号通过网络接口设备1080经由因特网被发送或接收。包括用户接口和网络通信的数据库系统600的基本操作由操作系统1046控制。
一般而言,被执行以实现本发明实施例的例程(无论被实现为操作系统的一部分还是被实现为特定应用、组件、程序、对象、模块或指令序列,或甚至其子集)都可以在本文被称为“计算机程序代码”,或简称为“程序代码”。程序代码通常包括在各种时间驻留在计算机中的各种存储器和存储设备中的计算机可读指令,并且当由计算机中的一个或多个处理器读取和执行时,使该计算机执行执行体现本发明的实施例的各个方面的元素和/或操作所需的操作。用于执行本发明实施例的操作的计算机可读程序指令可以是例如汇编语言或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本文描述的各种程序代码可以基于在本发明的特定实施例中实现的应用来识别。但是,应当认识到的是,以下的任何特定程序命名仅仅是为了方便而使用,并且因此本发明不应当限于仅在由这种命名识别和/或暗示的任何特定应用中使用。此外,给定其中计算机程序可以被组织成例程、过程、方法、模块、对象等的通常无限数量的方式,以及其中程序功能可以在驻留在典型计算机内的各种软件层(例如,操作系统、库、API、应用、小应用程序(applet)等)之间分配的各种方式,应当认识到的是,本发明的实施例不限于本文描述的程序功能的特定组织和分配。
本文描述的任何应用/模块中体现的程序代码能够作为各种不同形式的程序产品单独地或统一地分布。特别地,可以使用其上具有计算机可读程序指令的计算机可读存储介质来分发程序代码,以使处理器执行本发明的实施例的各个方面。
固有地是非瞬态的计算机可读存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术实现的易失性和非易失性、可移动和不可移动的有形介质。计算机可读存储介质还可以包括随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器或其它固态存储器技术、便携式光盘只读存储器(CD-ROM)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁性存储设备,或者可以用于存储期望信息并可以被计算机读取的任何其它介质。计算机可读存储介质不应当被认为本身是瞬态信号(例如,无线电波或其它传播电磁波、通过诸如波导之类的传输介质传播的电磁波、或通过导线传送的电信号)。计算机可读程序指令可以经由网络从计算机可读存储介质或外部计算机或外部存储设备下载到计算机、另一种类型的可编程数据处理装置或另一种设备。
存储在计算机可读介质中的计算机可读程序指令可以用于指导计算机、其它类型的可编程数据处理装置或其它设备以特定方式工作,使得存储在计算机可读介质中的指令产生包括指令的制品,其中指令实现在流程图、序列图和/或框图中指定的功能、动作和/或操作。计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的一个或多个处理器,以产生机器,使得指令在经由一个或多个处理器执行时使得执行一系列计算,以实现在流程图、序列图和/或框图中指定的功能、动作和/或操作。
在某些替代实施例中,流程图、序列图和/或框图中指定的功能、动作和/或操作可以与本发明的实施例一致地重新排序、串行处理和/或并发处理。而且,流程图、序列图和/或框图中的任何一个可以包括比与本发明的实施例一致图示的更多或更少的方框。
本文使用的术语仅用于描述特定的实施例,而不旨在限制本发明的实施例。还将理解的是,当在本说明书中使用时,术语“包括”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。此外,就在具体实施方式或权利要求中使用术语“包含”、“具有”、“由...组成”或其变体的程度而言,以类似于术语“包括”的方式,这些术语旨在是包含性的。
虽然已经通过各种实施例的描述示出了全部发明,并且虽然已经相当详细地描述了这些实施例,但是意图不是将所附权利要求的范围限定或以任何方式限制到这种细节。附加的优点和修改对于本领域技术人员将是清楚的。因此,本发明的更广泛的方面不限于所示出和描述的特定细节、代表性装置和方法以及说明性示例。因此,在不背离总体发明性概念的精神或范围的情况下,可以从这些细节中进行偏离。
Claims (15)
1.一种处理数据库系统中的查询的方法,所述数据库系统包括存储多条原始数据的原始数据源和存储多条高速缓存数据的高速缓存源,每条高速缓存数据与准确度值相关联,所述方法包括:
在从客户端接收到相应查询时从由所述数据库系统处理的多个查询中随机选择查询;
对于随机选择的每个查询,
从高速缓存源中检索与随机选择的该查询匹配的第一高速缓存数据,以及
从原始数据源中检索与随机选择的该查询匹配的第一原始数据;
对于未被随机选择的查询,
从高速缓存源中检索与该查询匹配的第二高速缓存数据;
评估第二高速缓存数据的准确度值;
如果准确度值低于给定阈值,那么
从原始数据源中检索与该查询匹配的第二原始数据,并且
用第二原始数据更新第二高速缓存数据;以及
使用机器学习算法基于第一高速缓存数据和第一原始数据来调整概率模型,
其中,准确度值是从概率模型导出的并且指示高速缓存数据与对应的原始数据一致的概率。
2.如权利要求1所述的方法,还包括:
对于随机选择的查询,
比较第一高速缓存数据与第一原始数据;
用第一原始数据更新第一高速缓存数据,并将第一原始数据返回给客户端。
3.如权利要求1或2所述的方法,还包括:
对于未被随机选择的查询,
如果准确度值低于所述给定阈值,那么将第二原始数据作为结果返回给客户端;以及
否则,将第二高速缓存数据作为结果返回给客户端。
4.如权利要求1至3中任一项所述的方法,还包括:
对于随机选择的每个查询,
将关于该查询的信息、第一高速缓存数据和第一原始数据发送到所述数据库系统的历史数据库。
5.如权利要求1至4中任一项所述的方法,还包括:
将第一原始数据与第一高速缓存数据进行比较;
存储指示第一原始数据是否与第一高速缓存数据一致的第一指示符值;
比较第一高速缓存数据的准确度值与所述给定阈值;
存储指示准确度值是否低于所述给定阈值的第二指示符值;以及
基于第一指示符值和第二指示符值的对来更新所述给定阈值。
6.如权利要求5所述的方法,其中更新所述给定阈值包括:
基于第一指示符值和第二指示符值的对来确定轮询率和轮询效率;以及
基于轮询率和轮询效率来更新所述给定阈值。
7.如权利要求6所述的方法,其中
轮询率是基于等式(TP+FP)/(TP+FP+TN+FN)来确定的,以及
轮询效率是基于等式TP/(TP+FP)来确定的,
其中:
TP是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据不一致,并且第二指示符值指示准确度值低于所述给定阈值,
TN是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据一致,并且第二指示符值指示准确度值不低于所述给定阈值,
FP是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据一致,并且第二指示符值指示准确度值低于所述给定阈值,以及
FN是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据不一致,并且第二指示符值指示准确度值不低于所述给定阈值。
8.一种处理查询的数据库系统,包括存储多条原始数据的原始数据源和存储多条高速缓存数据的高速缓存源,每条高速缓存数据与准确度值相关联,所述数据库系统被配置为:
在从客户端接收到相应查询时从由所述数据库系统处理的多个查询中随机选择查询;
对于随机选择的每个查询,
从高速缓存源中检索与随机选择的该查询匹配的第一高速缓存数据,以及
从原始数据源中检索与随机选择的该查询匹配的第一原始数据;
对于未被随机选择的查询,
从高速缓存源中检索与该查询匹配的第二高速缓存数据;
评估第二高速缓存数据的准确度值;
如果准确度值低于给定阈值,那么
从原始数据源中检索与该查询匹配的第二原始数据,并且
用第二原始数据更新第二高速缓存数据;以及
使用机器学习算法基于第一高速缓存数据和第一原始数据来调整概率模型,
其中,准确度值是从概率模型导出的并且指示高速缓存数据与对应的原始数据一致的概率。
9.如权利要求8所述的数据库系统,其中所述数据库系统还被配置为:
对于随机选择的查询,
比较第一高速缓存数据与第一原始数据;
用第一原始数据更新第一高速缓存数据,并将第一原始数据返回给客户端。
10.如权利要求8或9所述的数据库系统,其中所述数据库系统还被配置为:
对于未被随机选择的查询,
如果准确度值低于所述给定阈值,那么将第二原始数据作为结果返回给客户端;以及
否则,将第二高速缓存数据作为结果返回给客户端。
11.如权利要求8至10中任一项所述的数据库系统,其中所述数据库系统还被配置为:
对于随机选择的每个查询,
将关于该查询的信息、第一高速缓存数据和第一原始数据发送到所述数据库系统的历史数据库。
12.如权利要求8至11中任一项所述的数据库系统,其中所述数据库系统还被配置为:
将第一原始数据与第一高速缓存数据进行比较;
存储指示第一原始数据是否与第一高速缓存数据一致的第一指示符值;
比较第一高速缓存数据的准确度值与所述给定阈值;
存储指示准确度值是否低于所述给定阈值的第二指示符值;以及
基于第一指示符值和第二指示符值的对来更新所述给定阈值。
13.如权利要求12所述的数据库系统,其中所述数据库系统被配置为通过以下方式更新给定阈值:
基于第一指示符值和第二指示符值的对来确定轮询率和轮询效率;以及
基于轮询率和轮询效率来更新所述给定阈值。
14.如权利要求13所述的数据库系统,其中所述数据库系统被配置为:
轮询率是基于等式(TP+FP)/(TP+FP+TN+FN)来确定的,以及
轮询效率是基于等式TP/(TP+FP)来确定的,
其中:
TP是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据不一致,并且第二指示符值指示准确度值低于所述给定阈值,
TN是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据一致,并且第二指示符值指示准确度值不低于所述给定阈值,
FP是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据一致,并且第二指示符值指示准确度值低于所述给定阈值,以及
FN是所述对的数量,其中第一指示符值指示原始数据与高速缓存数据不一致,并且第二指示符值指示准确度值不低于所述给定阈值。
15.一种其上存储有计算机程序的计算机可读存储介质,所述计算机程序包括指令,所述指令在由计算机执行时使计算机执行如权利要求1至7中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/944,657 US10901993B2 (en) | 2018-04-03 | 2018-04-03 | Performing cache update adaptation |
FR1852865 | 2018-04-03 | ||
FR1852865A FR3079636B1 (fr) | 2018-04-03 | 2018-04-03 | Realiser une adaptation de mise a jour de la memoire-cache |
US15/944,657 | 2018-04-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347706A true CN110347706A (zh) | 2019-10-18 |
CN110347706B CN110347706B (zh) | 2022-02-01 |
Family
ID=65894946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910263534.6A Active CN110347706B (zh) | 2018-04-03 | 2019-04-03 | 用于处理查询的方法、数据库系统和计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3550447B1 (zh) |
CN (1) | CN110347706B (zh) |
CA (1) | CA3038018C (zh) |
ES (1) | ES2855074T3 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929488A (zh) * | 2019-11-06 | 2020-03-27 | 深圳市云智融科技有限公司 | 数据处理方法及相关装置 |
CN113255925A (zh) * | 2020-02-11 | 2021-08-13 | 微软技术许可有限责任公司 | 针对机器学习的数据驱动的在线分数高速缓存 |
CN115280300A (zh) * | 2020-01-15 | 2022-11-01 | 西格玛计算机有限公司 | 从基于云的数据仓库高速缓存加载仪表板 |
US11860873B2 (en) | 2020-01-15 | 2024-01-02 | Sigma Computing, Inc. | Dashboard loading using a filtering query from a cloud-based data warehouse cache |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3099598B1 (fr) | 2019-07-31 | 2021-08-27 | Amadeus | Apprentissage automatique distribué pour la validité des données antémé- morisées |
EP4246342A1 (en) | 2022-03-18 | 2023-09-20 | Amadeus S.A.S. | Cache update adaptation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060149713A1 (en) * | 2005-01-06 | 2006-07-06 | Sabre Inc. | System, method, and computer program product for improving accuracy of cache-based searches |
US20150227631A1 (en) * | 2014-02-13 | 2015-08-13 | Amadeus S.A.S. | Increasing search result validity |
CN105095313A (zh) * | 2014-05-22 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种数据访问方法和设备 |
US20160171008A1 (en) * | 2012-08-14 | 2016-06-16 | Amadeus S.A.S. | Updating cached database query results |
US20160179889A1 (en) * | 2014-12-23 | 2016-06-23 | Teradata Us, Inc. | Caching methods and a system for entropy-based cardinality estimation |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001033472A2 (en) * | 1999-11-01 | 2001-05-10 | Ita Software, Inc. | Method and apparatus for providing availability of airline seats |
ES2689305T3 (es) * | 2014-02-13 | 2018-11-13 | Amadeus S.A.S. | Aumentar la validez del resultado de búsqueda |
ES2702654T3 (es) * | 2015-08-03 | 2019-03-04 | Amadeus Sas | Tratamiento de peticiones de datos |
-
2019
- 2019-03-26 CA CA3038018A patent/CA3038018C/en active Active
- 2019-04-01 ES ES19166538T patent/ES2855074T3/es active Active
- 2019-04-01 EP EP19166538.9A patent/EP3550447B1/en active Active
- 2019-04-03 CN CN201910263534.6A patent/CN110347706B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060149713A1 (en) * | 2005-01-06 | 2006-07-06 | Sabre Inc. | System, method, and computer program product for improving accuracy of cache-based searches |
US20160171008A1 (en) * | 2012-08-14 | 2016-06-16 | Amadeus S.A.S. | Updating cached database query results |
US20150227631A1 (en) * | 2014-02-13 | 2015-08-13 | Amadeus S.A.S. | Increasing search result validity |
CN105095313A (zh) * | 2014-05-22 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种数据访问方法和设备 |
US20160179889A1 (en) * | 2014-12-23 | 2016-06-23 | Teradata Us, Inc. | Caching methods and a system for entropy-based cardinality estimation |
Non-Patent Citations (1)
Title |
---|
查达永: "一种基于XML数据库查询结果集缓存方案的设计与实现", 《中国优秀硕士学位论文全文库》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929488A (zh) * | 2019-11-06 | 2020-03-27 | 深圳市云智融科技有限公司 | 数据处理方法及相关装置 |
CN110929488B (zh) * | 2019-11-06 | 2023-12-26 | 深圳市云智融科技有限公司 | 数据处理方法及相关装置 |
CN115280300A (zh) * | 2020-01-15 | 2022-11-01 | 西格玛计算机有限公司 | 从基于云的数据仓库高速缓存加载仪表板 |
US11860873B2 (en) | 2020-01-15 | 2024-01-02 | Sigma Computing, Inc. | Dashboard loading using a filtering query from a cloud-based data warehouse cache |
US11868351B1 (en) | 2020-01-15 | 2024-01-09 | Sigma Computing, Inc. | Dashboard loading from a cloud-based data warehouse cache |
CN113255925A (zh) * | 2020-02-11 | 2021-08-13 | 微软技术许可有限责任公司 | 针对机器学习的数据驱动的在线分数高速缓存 |
Also Published As
Publication number | Publication date |
---|---|
CN110347706B (zh) | 2022-02-01 |
EP3550447B1 (en) | 2020-12-02 |
ES2855074T3 (es) | 2021-09-23 |
CA3038018A1 (en) | 2019-10-03 |
CA3038018C (en) | 2024-02-27 |
EP3550447A1 (en) | 2019-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347706A (zh) | 用于处理查询的方法、数据库系统和计算机可读存储介质 | |
CN104903894B (zh) | 用于分布式数据库查询引擎的系统和方法 | |
US9948531B2 (en) | Predictive prefetching to reduce document generation times | |
US8127299B2 (en) | Landscape reorganization algorithm for dynamic load balancing | |
US20230350909A1 (en) | Cloud inference system | |
US10901993B2 (en) | Performing cache update adaptation | |
US7502775B2 (en) | Providing cost model data for tuning of query cache memory in databases | |
CA3137748C (en) | Method and apparatus for determining configuration knob of database | |
CN108509453B (zh) | 一种信息处理方法及装置 | |
US20190251097A1 (en) | Optimized data distribution system | |
WO2021191702A1 (en) | Offloading statistics collection | |
CN117370058A (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
CN111666302A (zh) | 用户排名的查询方法、装置、设备及存储介质 | |
US9268809B2 (en) | Method and system for document update | |
CN113806190B (zh) | 一种预测数据库管理系统的性能的方法、装置及系统 | |
CN108256694A (zh) | 基于重复遗传算法的模糊时间序列预测系统、方法及装置 | |
EP4246342A1 (en) | Cache update adaptation | |
CN112948357A (zh) | 一种面向多模数据库OrientDB的调优机制及其构建方法 | |
US11042538B2 (en) | Predicting queries using neural networks | |
CN112214460A (zh) | 基于分布式大容量分片高性能的存储控制方法 | |
Osman et al. | Performance evaluation of database designs | |
US11947822B2 (en) | Maintaining a record data structure using page metadata of a bookkeeping page | |
US20240211516A1 (en) | Managing pre-caching of results | |
Rodriguez et al. | Exploring Size-Speed Trade-Offs in Static Index Pruning | |
CN117648465A (zh) | 物联网设备数据处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |