首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

更新高速缓存数据 

申请/专利权人:艾玛迪斯简易股份公司

申请日:2019-04-03

公开(公告)日:2024-06-28

公开(公告)号:CN110347707B

主分类号:G06F16/2455

分类号:G06F16/2455

优先权:["20180403 FR 1852866","20180403 US 15/944,572"]

专利状态码:有效-授权

法律状态:2024.06.28#授权;2021.02.05#实质审查的生效;2019.10.18#公开

摘要:本公开涉及更新高速缓存数据。高速缓存数据由耦接到保持原始数据的主数据库以及耦接到保持与主数据库中的数据对应的数据的高速缓存的计算机器更新。响应于收到与第一数据相关的第一数据库查询,计算机器判定是通过利用高速缓存还是基于主数据库来处理所述第一数据库查询。响应于结束对所述第一数据库查询的处理,计算机器判定是否更新高速缓存中的第一数据,和根据所述判定的结果,基于主数据库中的原始第一数据更新高速缓存中的第一数据。

主权项:1.一种由计算机器执行的更新高速缓存中的数据的方法,所述计算机器耦接到保持原始数据的主数据库以及耦接到保持与主数据库中的原始数据对应的数据的高速缓存,所述方法包括在所述计算机器:响应于收到与第一数据相关的第一数据库查询,根据至少一个给定的轮询因素,判定是通过利用高速缓存还是基于主数据库来处理所述第一数据库查询;响应于基于所述至少一个给定的轮询因素判定通过利用高速缓存来处理所述第一数据库查询,通过利用高速缓存处理所述第一数据库查询包括从所述高速缓存检索所述第一数据并返回检索到的第一数据;响应于结束对所述第一数据库查询的处理,判定是否更新高速缓存中的第一数据;如果判定是否更新第一数据指示更新第一数据,则基于主数据库中的原始第一数据更新高速缓存中的第一数据;和其中判定是否更新高速缓存中的第一数据包括:响应于判定在给定时间段内没有接收到与第一数据相关的先前第二数据库请求,更新高速缓存中的第一数据;响应于判定在所述给定时间段内接收到与所述第一数据相关的至少一个先前第二数据库查询,禁止更新高速缓存中的第一数据,以限制在所述给定时间段内发生的高速缓存更新的次数;其中所述至少一个给定的轮询因素包括下述至少之一:第一数据库查询请求的类型,高速缓存中的第一数据的存在,轮询错误率,所述轮询错误率是对主数据库的访问失败次数与对主数据库的访问尝试次数之比,给定时间范围内对原始第一数据的写入访问次数,高速缓存中的第一数据的年龄,指示自该高速缓存中的第一数据的上次更新或重新计算以来过去多长时间,高速缓存中的第一数据仍然有效的有效率,高速缓存中的第一数据的访问频度,和或作为更新高速缓存中的第一数据所需的计算成本和或网络负荷的度量的更新资源。

全文数据:更新高速缓存数据技术领域本主题一般涉及数据库技术。更具体地,针对的是在对于高速缓存数据或原始数据的查询的处理结束之后,更新高速缓存数据。背景技术数据库技术中的一个常见问题是确保对数据库查询或请求的响应时间较短,例如由于数据量较大,这些数据库查询或请求需要复杂、长时间和资源密集型的处理。例如,响应于所谓的“开放式查询”,必须进行这种消耗计算能力的处理,“开放式查询”只包含很少的输入信息例如,仅仅指定十几个可能参数中的一个或两个参数,和或参数的指定值范围很广,从而一般会导致大量的结果。通过提高硬件性能来加速数据处理的可能性有限。从而,关注改进复杂、长时间和资源密集型处理背后的机制,以便对这类查询作出响应。缩短响应时间的一种常见方法是准备响应于预期请求而要返回的结果例如,通过基于原始数据,预先计算或预先收集此类结果,并把对应查询结果保持在预先计算的查询结果的池中。然后,请求不是基于原始数据基础进行处理和响应的,而是指向预先计算的查询结果的池。重新计算大量预先计算的查询结果是一项消耗大量计算资源的任务。从而,寻求重新计算机制,以有效地进行预先计算的查询结果的重新计算。EP2908255A1描述了利用指示关联的搜索结果有效的概率的置信因子,控制是基于预先收集的搜索结果还是主数据库来响应搜索查询的网络节点称为交换机。发明内容按照第一方面,提供一种由计算机器执行的方法,以更新高速缓存中的数据。所述计算机器耦接到保持原始数据的主数据库,并耦接到保持与主数据库中的数据对应的数据的高速缓存。响应于收到与第一数据相关的第一数据库查询,所述计算机器判定是通过利用高速缓存,还是基于主数据库来处理所述第一数据库查询。响应于结束对所述第一数据库查询的处理,所述计算机器判定是否更新高速缓存中的第一数据。如果判定是否更新第一数据指示更新第一数据,则计算机器基于主数据库中的原始第一数据更新高速缓存中的第一数据。另一方面,如果判定是否更新第一数据指示不更新第一数据,则计算机器不更新高速缓存中的第一数据。按照第二方面,提供一种布置成执行所述方法的对应计算机器。按照第三方面,提供一种保存在存储介质上的计算机程序,当由计算机器执行时,所述程序向计算机器提供对应功能。具体实施方式部分记载了更多的可选方面。附图说明下面参考附图,说明本发明的机制。相同的附图标记指示相同或功能相似的元件。图1形象表示随着时间的推移,预先计算的查询结果的有效性概率不断降低的效果。图2示意描述分布式数据库系统的例子。图3是更新高速缓存数据的高级消息序列图。图4表示对于读取查询的高级消息序列。图5表示对于写入查询的高级消息序列。图6是更新相关的高速缓存数据的高级消息序列图。图7涉及高速缓存数据的更新的另一个例子。图8形象表示高速缓存数据随时间的一系列例证更新。图9表示剔除重复的高速缓存更新请求的安排。图10是计算机器的内部体系结构的例证示意图。具体实施方式为了处理需要基于大量底层数据的计算的数据库查询或批处理计算请求,受到预期数据库查询的数据可被高速缓存预先收集、预先计算,并作为高速缓存数据保存在高速缓存或高速缓存数据库中,而原始数据保存在主数据库中。在搜索过程中,请求实体比如安装在用户终端上的客户端、应用、浏览器等查询高速缓存,响应于查询,任何满足查询所指示的搜索条件的高速缓存数据都会被返回给客户端。下面,本文中使用术语“数据库查询”作为包括任何类型的信息检索请求比如事务查询、对批处理计算的请求以及其他形式的通用术语。归因于从其获得高速缓存数据的原始数据的变化,随着时间的推移,将数据高速缓存并把高速缓存数据保存在查询客户端可访问的高速缓存中的方法会导致高速缓存数据可能变得过时或无效本文中,这两个用语是同义地使用的的一般情况。下面,仍然是最新的即,匹配对应的原始数据等同物的高速缓存数据被称为“有效的”高速缓存数据。通常,为了使搜索平台即,布置成接收数据库查询,并返回对数据库查询的响应的平台返回正确的结果,希望在响应于数据库查询而提供给查询实体的高速缓存数据与其原始数据等同物之间,维持相当大程度的相关性。然而,同时理想的是使由重新计算或高速缓存更新所造成的计算资源消耗降至最少,即,避免任何不必要的重新计算,比如仍然有效的高速缓存数据的重新计算更新。计算资源有限,并且通常并不是始终都有足够的计算资源来重新计算更新所有的高速缓存数据。从而,寻求高速缓存数据有效性和可用计算资源的利用之间的折衷。为了使重新计算高速缓存更新更有效,定义了评估重新计算有多“必要”或“不必要”的指标。例如,如果结果是不到一半的高速缓存数据是过期的,那么就计算或更新资源来说,定期例如每天进行整个大规模的预先计算是低效的。另一方面,如果已知特定类别的原始数据频繁变化,那么每天数次更新对应的高速缓存数据可能有利于高速缓存的有效性。从而,通常要考虑到有效性的相关增益和重新计算高速缓存更新的技术资源成本两者,寻求一种评估或估计高速缓存数据有效性的有效途径。为此,一些机制模拟高速缓存数据的有效性随时间的降低。图1描述了这种可能的随着时间的精度降低的两个例证函数。函数10表示与和函数11关联的另外的高速缓存数据相比,可能仍然更精确或者更准确地说,随着时间的推移,仍然有效的概率更高的高速缓存数据。例如,函数10所表示的高速缓存数据在其上次更新之后35小时仍然有效的概率为70%,而函数11所表征的另外的高速缓存数据在其上次重新计算之后35小时,只有最多约50%有效。函数10和11还可以表示多个高速缓存数据的全部共享share,从而指示在自共享的上次更新以来过去的某个时间可能有效的高速缓存数据的共享的比例。图2示意图解说明本文中利用的分布式数据库系统1。原始数据保持在主数据库3中。术语“原始数据”指的是通常有效并构成数据库系统1内的所有数据处理的基础的数据,特别是数据库查询所指向的数据。原始数据可能涉及特定领域中的任何类型的信息。例如,原始数据可能位于基于计算机的电子电路仿真比如EPO上诉委员会的决定T122705的电路仿真主题的领域,包含关于基于计算机的电子电路仿真的输入值、基于计算机的电子电路仿真使用的模型的参数、中间和或最终仿真结果等的信息。对应于原始数据的高速缓存数据保存在高速缓存4中。高速缓存数据可能与对应原始数据等同例如,像爬取并高速缓存因特网网站内容的web爬虫的例子中一样,和或是基于原始数据预先计算或预先处理的例如,通过另外索引高速缓存4中的数据,以便与从主数据库3检索对应原始数据所需的时间相比,减少回答数据库查询的响应时间。在这点上,术语“高速缓存”还覆盖任意种类的通过任意种类的计算和处理将原始数据转换成存储在高速缓存4中的高速缓存数据。例如,在基于计算机的电子电路仿真的领域中,预先计算可能涉及利用精简的参数集与实际系统的所有参数相比进行仿真,但是利用所述参数集的不同值,以便获得用作利用另外或其他参数集的进一步模拟中的输入值的结果。高速缓存4是例如归因于数据的预先计算、其中心网络位置、宽带网络连接、适应于快速数据检索的特殊硬件和或提高数据检索性能的数据库协议和索引,而比主数据库3快得多的数据库。这里的术语“数据库”包含任意数量和类型的结构化信息存储系统,比如标准的独立数据库,例如标准查询语言SQL或Non-SQL数据库,以及复杂、分布式和或专有数据库、关系数据库或面向对象数据库。原始数据和高速缓存数据可以利用任意类型的结构化信息比如记录、数组、数据库表的部分例如,列、行或条目等,被分别保存在主数据库3和高速缓存4中。诸如用户终端上的应用之类的客户端5通过接口6,借助数据库查询,从系统1访问数据。这里,系统1的数据库查询接收和处理实体被表示成计算机器2。计算机器2通过另一个接口7通信耦接到高速缓存4,并通过又一个接口8通信耦接到主数据库3。系统1的功能实体,即,计算机器2、主数据库3和高速缓存4可以取决于性能要求,由一个或几个硬件机器构成。例如,计算机器2可以由构成几个联系点的多个位于同一位置和或位于不同位置的硬件机器组成。例如,由于冗余的原因,可以使用多个主数据库3和或高速缓存来镜像相同的数据。各个接口6、7、8利用局域网LAN、城域网MAN和或广域网WAN,比如因特网,并通过任何适当的通信和网络协议实现。参见图3,为了提高处理和计算资源的效率,以更新保持在高速缓存4中的高速缓存数据,这里提供在计算机器2采用的以下机制。第一数据库查询12由客户端5传送,并由计算机器2接收。术语“数据库查询”包括所有类型的数据库请求,例如包括检索数据的读取请求,和插入、改变或删除数据的写入请求。第一数据库查询12涉及由系统1保持在高速缓存4和或主数据库3中的第一数据。只是作为非限制性例子,图3所示的查询12包括一个或多个查询条件querycriteria,比如第一个条件A和可选的另一个条件B。这些查询条件指定第一数据库查询12所涉及的数据,在图3的示例中,满足查询条件比如第一个条件A和可选的另一个条件B的所有数据。从而,第一数据可由一个或多个数据记录、数组、数据库表行等组成。这也适用于其他数据库查询,比如图4和5的更具体例子,以及适用于例如如下参考图6说明的与第一数据相关的第二数据。响应于接收第一数据库查询12,计算机器2基于至少一个给定的轮询因素,判定14是通过利用高速缓存4还是基于主数据库3处理第一数据库查询12。通过涉及主数据库3来响应于数据库查询也被称为“轮询”。在一些例子中,所述至少一个轮询因素包括高速缓存数据是否有效的可能性的指示。为此,保持在高速缓存4中的高速缓存数据与相应的有效性指标关联,所述相应的有效性指标可能类似于如EP2908255A1描述的置信因子。例如,高速缓存4保存的各个高速缓存数据或多个高速缓存数据的各个共享都有对应的有效性指标。各个有效性指标指示关联的高速缓存数据或者高速缓存数据的共享仍然有效的概率,即,高速缓存数据与从其获得高速缓存数据的其对应原始数据一致的概率。在一些例子中,有效性指标由高速缓存数据i或者多个高速缓存数据的共享的年龄ti和高速缓存数据i的有效率λi给出,年龄ti指的是自该高速缓存数据的上次更新或重新计算以来过去的时间,有效率λi是高速缓存数据i多长时间可能仍然有效,或者归因于底层原始数据的变化,高速缓存数据i变得无效的速度有多快的度量。在一些例子中,高速缓存数据i的有效性指标acc由给出。在一些例子中,高速缓存数据的有效性指标保存在高速缓存4中。从而,判定14可包括第一数据库查询12所涉及的高速缓存数据和关联的有效性指标的可选如虚线箭头所示检索13,计算机器2评估来自高速缓存4的有效性指标。为此,计算机器2在高速缓存4中搜索第一数据库查询12所涉及例如,满足条件A的高速缓存数据,并从高速缓存4检索这些高速缓存数据。更具体地,在操作13,计算机器2可以向高速缓存4发送检索请求。检索请求13包括第一数据库查询12的一个或多个条件中的至少一部分。高速缓存4基于检索请求13在高速缓存中进行搜索,即,识别高速缓存4中的所有数据之中的与第一数据库查询12的条件匹配的高速缓存数据,并把识别的高速缓存数据包括关联的有效性指标返回给计算机器2。从而,返回的高速缓存具有与第一数据库查询12的条件一致即,匹配的值或参数。判定14随后可包括比较检索的高速缓存数据的有效性指标与给定阈值。计算机器2例如通过对于每个检索的高速缓存i计算确定高速缓存数据有效的概率。只要有效性指标高于给定阈值,计算机器就判定通过利用高速缓存4来处理数据库查询12,从而通过响应16返回这些高速缓存数据。否则,对于有效性指标不高于给定阈值的高速缓存数据,计算机器2判定基于主数据库3来处理数据库查询,从而可选地从主数据库3检索15对应原始数据。为此,计算机器2向主数据库3发送相应的检索请求。主数据库3通过识别满足第一数据库查询12中的条件的原始数据,执行该检索请求,并把识别的原始数据返回给计算机器2。响应于收到来自主数据库3的原始数据,计算机器2把检索的原始数据返回给16客户端5。这样结束对第一数据库查询12的处理。在一些实施例中,除了上述有效性指标指示高速缓存4中的第一数据在某个年龄仍然有效的概率的有效率以外,或者代替所述有效性指标,计算机器2还采用一个或多个其他或者进一步的轮询因素。例如,操作12中的是否轮询主数据库3的决定基于第一数据库查询请求的类型读取或写入,优选对于写入请求进行轮询,第一数据在高速缓存中的存在如果高速缓存4不保持第一数据,那么轮询主数据库3,轮询错误率对主数据库的访问失败次数与对主数据库的访问尝试次数之比,给定时间范围内对原始第一数据的写入访问次数,高速缓存中的第一数据的年龄即,高速缓存中的第一数据的有效性的可能性以年龄为基础,而不存在有效率λi的任何区分,高速缓存中的第一数据的访问频度随着时间的推移,与第一数据相关的数据库查询的历史次数,和或作为更新高速缓存中的第一数据所需的计算成本和或网络负荷的度量的更新资源例如,如果更新资源有限,那么避免轮询。计算机器2可以采用任意数量的这些轮询因素的任意组合。此外,响应于结束对第一数据库查询的处理,计算机器2判定17是否更新高速缓存4中的第一数据这里,也简称为第一高速缓存数据。已经认识到在多个数据库查询之间可能存在相关性。于是,第一数据库查询12可能是后续数据库查询也可能从数据库系统1请求相同数据的指示。从而,第一数据库查询12被视为可能更新第一数据库查询12所涉及的高速缓存4中的数据即,第一数据的触发。这通常不同于本领域已知的其他高速缓存更新管理过程,比如按照EP2911070A1和EP3016000A1的和与对系统的各个查询无关的基于模型的后台更新相关的高速缓存更新。这通常也不同于诸如EP2908255A1和EP3128441A1之类的已知轮询机制,它们在查询处理时,决定是通过高速缓存数据还是通过从原始数据源检索的原始数据响应查询。提出的机制与这些已知过程相比的技术效果在于可根据高速缓存数据,快速响应涉及第一数据的初始数据库查询,而不会因为从较慢的主数据库3与高速缓存4相比检索原始数据而延迟响应,而第一高速缓存数据在数据库查询处理结束之后被更新,以便提高第一高速缓存数据对于再次涉及第一数据的后续数据库查询的有效性。例如,与EP2908255A1和EP3128441A1的置信因子值相比,初始数据库查询的有效性指标阈值可被设定成较低的值,以致如果第一高速缓存数据的有效性概率较低,则根据高速缓存4响应初始数据库查询,不过,在终止查询处理后更新第一高速缓存数据会增大第一高速缓存数据对于再次涉及第一数据的后续数据库查询的有效性概率。如下更详细所述,术语“初始”可以指在一段时间过去之后,第一次涉及特定数据的数据库查询。这样,就响应时间和计算资源而论,有效地提高高速缓存数据的有效性,与上面提及的参考文献相比,可以更快地响应于数据库查询。根据判定17的结果,计算机器2基于主数据库3中的原始第一数据更新高速缓存4中的第一数据。如果判定17指示更新第一数据,那么通过例如从主数据库3取回对应原始数据,和或根据保持在主数据库3中的对应原始数据重新计算第一高速缓存数据,可选地更新18高速缓存4中的第一数据。如果判定17不指示更新第一高速缓存数据的任何需要,那么过程结束,而不进行任何更新18。更新第一高速缓存数据的判定17可包括检查第一高速缓存数据的一个或多个性质或特性或者与第一高速缓存数据相关的一个或多个性质或特性,以便剔除重复的多个更新请求,从而避免涉及第一高速缓存数据的过多更新请求。在一些实施例中,如果在给定时间段也称为更新时间段内,没有接收和处理与第一数据相关的在先第二数据库请求,那么更新第一高速缓存数据。如上所述,这样的数据库查询被认为是一系列相关查询中的“初始”查询。遵守更新时间段例如是通过对于每个第一高速缓存数据,使用更新禁止计时器实现的。每次第一高速缓存数据被更新时,都会启动第一高速缓存数据的更新禁止计时器,并在更新禁止计时器期满之后允许第一高速缓存数据的进一步更新。从而,在这些实施例中,如果判定操作17得出对于第一高速缓存数据没有更新禁止计时器正在运行,那么第一高速缓存数据立即被更新。另一方面,在这些实施例中,响应于判定在给定更新时间段内收到与第一数据相关的至少一个在先第二数据库查询,即,数据库查询不是初始查询,禁止更新高速缓存中的第一数据。禁止指的是在当前时刻不更新高速缓存中的第一数据,而是延迟更新第一高速缓存数据,直到更新禁止计时器期满为止,或者放弃更新第一高速缓存数据。另外或者替代地,在一些实施例中,更新时间段始于与所涉及的数据相关的任意事件数据库查询之外,例如包括数据可能无效的判定,和或由于任何其他原因的数据的高速缓存更新比如规律的、计划的或者定期的高速缓存更新。在所有情况下,给定更新时间段的具体值是取决于系统的实现设定的。禁止对一系列数据库查询和事件中的后续数据库查询和事件的更新也可被看作计算机器2中的与相同数据相关的数据库查询和事件的本地去重,以便限制高速缓存更新的数量,如下进一步参考图9所示。图4和5是图3的机制的进一步例子,其中第一数据库查询12被进一步分别指定为读取请求图4和写入请求图5。如上所述,第一数据库查询12可以是构成检索第一数据的读取请求的读取查询12a图4。取决于一个或多个轮询因素,响应于收到第一数据库查询12,计算机器2判定14a利用高速缓存来处理第一数据库查询12、12a。在一些实施例中,判定14a包括判定通过操作13,从高速缓存4检索的第一高速缓存数据的有效性指标高于给定的有效性指标阈值与诸如EP2908255A1和EP3128441A1之类的已知轮询机制相比,所述阈值可被降低。计算机器2随后把第一高速缓存数据返回16a给客户端5。在这些情况下,响应于结束利用高速缓存对第一数据库查询的处理,相应地进行更新高速缓存中的第一数据的判定17。例如如上所述,响应于判定在给定的更新时间段内不存在与第一数据相关的在先第二数据库查询,高速缓存中的第一数据被更新18。判定14还可能指示将基于主数据库3处理读取查询12a,例如,通过判定通过操作13,从高速缓存4检索的第一高速缓存数据的有效性指标不高于给定的有效性指标阈值。在这些情况下,如上参考图3所述,从主数据库3检索15对应的原始第一数据并返回16给客户端5。在这些情况下,判定操作17很可能指示第一高速缓存数据要被更新因为在操作14中,它的有效性指标已被确定为较低,更新操作18可直接利用在操作15图3中从主数据库3检索的原始第一数据,而不存在对主数据库3的任何进一步访问。在其他情况下,第一数据库查询12可以是构成改变、替换、插入或删除第一数据的请求的写入查询12b图5。在一些实施例中,写入查询类型向计算机器2表明,由于数据一致性的原因,要基于主数据库3处理查询。从而,可以跳过高速缓存检索操作13,计算机器2根据第一数据库查询12的写入类型,判定14b要基于主数据库3处理查询。因而,计算机器2基于主数据库3中的原始第一数据处理15第一数据库查询12b,这导致主数据库3中的原始第一数据的变化。计算机器2通过例如确认写入查询12b已被成功执行,和或目前存在于主数据库3中的第一数据的更改值,向客户端5作出响应16b。在这些情况下,响应于结束基于主数据库3中的原始第一数据对第一数据库查询12的处理,即,在对第一数据库查询的响应16b已被发送给客户端5之后,进行基于主数据库3中的更改后的原始第一数据更新高速缓存中的第一数据的判定17。如上所述,计算机器2例如在操作17中判定在给定的更新时间段内,是否接收到与第一数据相关的在先第二数据库查询12。如果情况不是这样,那么高速缓存4中的第一数据被更新18。更新18可直接利用归因于操作15而可能已为计算机器2所知的原始第一数据的更改值,以致在操作18中不会发生与主数据库3的进一步通信。在一些实施例中,判定操作17还可考虑到可能已使高速缓存4中的第一高速缓存数据过时的数据库查询12b的写入类型。在这些实施例中,判定操作17判定数据库查询12b是写入查询,于是,例如强制高速缓存4中的第一数据的更新,而不管在给定的更新时间段内是否收到与第一数据相关的在先第二数据库查询12。在一些实施例中,响应于结束对第一数据库查询12的处理,计算机器2另外判定19是否更新高速缓存4中的与第一数据关联的至少一个第二数据。如上所述,已认识到在多个数据库查询之间可能存在相关性。涉及第一数据的第一数据库查询12不仅可以是后续数据库查询也可能从数据库系统1请求相同的第一数据的指示符,而且也可以是后续数据库查询可能请求与第一数据关联的除第一数据以外的其他数据的指示符。从而,在这些实施例中,第一数据库查询12被视为可能更新高速缓存4中的与作为第一数据库查询12的对象的第一数据关联的第二数据的触发。高速缓存4中的第二数据的更新20基于与高速缓存4中的第二数据对应的主数据库3中的原始第二数据。在图6的例子中,第一数据库查询12涉及由条件A定义的第一数据。判定操作17从而判定是否更新18由条件A定义的第一高速缓存数据。另外,判定操作19判定由条件A'定义的相关高速缓存数据是否也要被更新20。第一数据与第二数据之间的相关性例如涉及相同或相似的有效性指标。例如,第一数据和第二数据可能具有如图1所示的相近函数10、11。第一数据和第二数据也可以其他方式相关联,例如通过具有相关的参数。例如,第一数据可构成仿真运行数X的仿真结果,而第二数据可构成下一个仿真运行数X+1的仿真结果。数据之间的相关性可能存在于单个数据以及多个数据的共享的层面上。此外,可能存在不同程度的相关性,从而在这里,如果相关度满足给定阈值,那么可以认为第一数据和第二数据是相关的。例如根据EP3016000A1的段落[0029]~[0032]和[0057],数据之间的相关性的原则是众所周知的,其中具体涉及相关性的内容通过引用包含在本文中。判定操作19可以采用和判定操作17相同的逻辑,即,例如,包括计算机器2是否在给定的更新时间段内,收到与第二数据相关的在先数据库查询的判定。判定操作19还可考虑到另外的因素,比如可用的更新资源在接口8上的网络容量,在主数据库3处的计算检索资源。从而,尽管基本因素可能指示第二高速缓存数据的更新,不过,缺少更新资源可能产生判定操作19的禁止第二高速缓存数据的更新的结果。此外,判定操作19可以独立于判定操作17的结果。从而,即使例如判定操作17指示第一高速缓存数据不被更新例如,由于在给定的更新时间段内,收到与第一数据相关的在先第二请求,判定操作19也可指示第二高速缓存数据要被更新。在其他实现中,在判定操作17的结果也被转移给判定操作19,即,更新第一高速缓存数据的决定也是更新第二高速缓存数据的决定的意义上,判定操作19可能依赖于判定操作17。在这些实施例中,判定操作17和19可构成组合操作即,图6中的组合框17、19。应注意的是,在结束对第一数据库查询12的处理之后,计算机器2不一定立即判定17是否更新高速缓存4中的第一数据,以及可选地判定19是否更新高速缓存中的第二数据。如上所述,已处理第一数据库查询12是可能更新高速缓存中的第一数据和第二数据的触发,在处理第一数据库查询12的结束和判定操作17及19之间,可能过去一定的时间。例如,在一些实施例中,计算机器2保持日志,并把第一数据库查询12的条目添加到日志中。其他数据库查询在被处理之后也被添加到日志中。计算机器2随后可以例如定期处理记入日志的数据库查询,并对于所有记入日志的数据库查询进行判定操作17和可选的判定操作19。一些实施例包括用于判定是否更新第一高速缓存数据的进一步触发,而不限于到来和处理的数据库查询。例如,在这些实施例中,计算机器2或者通信耦接到计算机器2并构成计算机器2的逻辑部分的任何其他实体通过采用机器学习算法,判定21高速缓存4中的第一数据仍然有效即,第一高速缓存数据仍然与主数据库3中的原始第一数据相同或对应的可能性的降低图7。例如,判定操作21可判定第一数据的有效性指标例如,图1的函数10已低于给定的有效性阈值。响应于判定操作21指示高速缓存4中的第一数据仍然有效的可能性的降低,计算机器2至少根据高速缓存4中的第一数据仍然有效的可能性的降低,判定17基于主数据库3中的原始第一数据来更新高速缓存4中的第一数据。图7的判定操作17类似于图3-6中的判定操作17,即,可以基于诸如核实是否在给定的更新时间段内收到与第一数据相关的在先数据库查询的相同逻辑,不过另外还可考虑到第一数据的有效性指标。同样地,如图6中一样,计算机器2可进一步判定19是否还更新与第一高速缓存数据关联的第二高速缓存数据。图8形象表示随着时间的推移,上面参考图3-7说明的功能的多次迭代的例子。上面的时间轴22表示与称为“数据M”的第一数据相关的数据库查询和事件,而下面的时间轴23表示与称为“数据N”它与数据M相关的第二数据相关的数据库查询和事件。如上所述,第一数据M和第二数据N可以分别是受到数据库请求或者构成主数据库3内相关数据的任何进一步共享比如数据库表的一个或多个数据记录、数组等。在第一时刻t1,通过插入查询,数据N被插入主数据库3中。判定操作17判定在高速缓存4中,数据N要被更新18,因为在给定更新时间段图8中称为“tmin”,如上所述,例如,它是通过相应的更新禁止计时器观察的内,没有在先数据库查询被记入日志,并且插入查询是写入查询。在第二时刻t2,数据M被添加到主数据库3中。同样地,判定操作17判定在高速缓存4中,数据M要被更新18,因为在给定更新时间段内,没有在先数据库查询被记入日志例如,用于数据M的更新禁止计时器没有运行,并且插入查询是写入查询。启动用于数据M的更新禁止计时器。在第三时刻t3,计算机器2收到涉及数据M的读取查询。判定操作14判定基于高速缓存4处理该读取查询。在把数据M返回16给提出请求的客户端5之后,计算机器2判定17禁止高速缓存更新,因为t3仍然在由t2初始化的给定更新时间段tmin内用于数据M的更新禁止计时器仍然在运行,从而,插入查询被认为是在给定更新时间段内收到的在先数据库查询。如上所述,进行禁止,以便对在一定时间段内出现的多个更新去重指的是在当前时刻不进行更新,从而放弃或者延迟有关数据的高速缓存更新。图8形象表示了放弃变体。在延迟变体中,任何被禁止的更新实际上都是在tmin时间段结束时即,响应于更新禁止计时器的满期进行的。继续参考图8,在过去一定时间之后,在时刻t4,计算机器2收到涉及数据M的另一个读取查询。这次,计算机器2再次判定14基于高速缓存4处理该读取查询,并把数据M返回16给提出请求的客户端5。然而,在t3重新初始化的给定更新时间段已过去,从而,判定操作17判定进行高速缓存更新18,因为在给定更新时间段内,未收到涉及数据M的在先数据库查询。按照图6,对于相关的数据N,还判定19高速缓存更新20,因为例如在给定更新时间段内,未收到涉及数据N的在先数据库查询。在再过一段时间之后,识别出数据M和数据N的可能无效,从而在时刻t5,数据M和数据N两者都被更新18。在图8的例子中,该高速缓存更新重新初始化数据M和数据N两者的相应给定更新时间段。在仍然在数据M的给定更新时间段内的时刻t6,收到涉及数据M的另一个读取查询,从而,在结束对该读取查询的处理之后,判定17不进行高速缓存更新。在时刻t7,收到请求数据N的读取查询。由于在先事件在t5判定的可能无效发生在给定更新时间段之前,因此在t7,判定对于数据N的高速缓存更新18。为了完整起见,计算机器2还可以对数据M进行判定操作19用在时刻t7,从N到M的虚线箭头形象表示,因为数据M与数据N相关,从而从数据N的角度来看,构成上述意义上的第二数据。在图8的例子中,假定在t7,对于数据M不进行高速缓存更新,例如由于在t7,更新资源不足。结果,在时刻t8,在t8的读取查询被处理之后,进行高速缓存数据M的另一次高速缓存更新,因为判定操作17判定在数据M的给定更新时间段内,未出现任何在先数据库查询或其他事件。最后,在时刻t9,收到从主数据库3删除数据M的删除查询。由于数据一致性的缘故,计算机器2判定14利用主数据库3处理删除查询。在结束对删除查询的处理之后,计算机器2判定17对于数据M进行高速缓存更新18。尽管在给定更新时间段内收到在先数据库请求即,在t8的读取查询,归因于删除查询的写入类型,强制执行在t9的高速缓存更新。对于数据N,也判定19进行高速缓存更新20,因为在给定更新时间段内,未收到对于数据N的在先数据库查询。在一些实施例中,采用进一步的去重机制,以便进一步限制对主数据库3的更新18、20及对应请求,和减轻接口9和主数据库3的负荷。在这些实施例中图9,系统1是具有布置成接收来自客户端机器5的数据库请求的多个本地节点2a、2b、2c即,计算机器2的更复杂的分布式数据库系统。计算机器2是具有多个本地节点和至少一个中心节点在图9中称为全局去重机器9的分布式数据库系统1中的这些多个本地节点之一。分布式数据库系统1还可包括多个高速缓存4。例如,所述多个本地节点可分别具备本地高速缓存4。在采用进一步去重的实施例中,计算机器2监视与任意第一数据相关的数据库请求的历史,以便进行如上所述的本地去重。响应于在给定更新时间段内,未收到与高速缓存4中的第一数据相关的在先第二数据库查询,计算机器2例如,本地节点2a向中心节点9发送至少更新高速缓存4中的第一数据的第一更新请求,以便实现第一高速缓存数据的更新。其他计算机器2b、2c也向中心节点9发送涉及任意第一数据和第二数据的相应更新请求。全局去重机器9处理来自计算机器2a、2b、2c的所有到来的更新请求。响应于从本地节点之一2a收到涉及第一数据的更新请求,全局去重机器9在全局层面进行高速缓存更新去重。为此,响应于判定在进一步的给定时间段也被称为中心更新时间段内,从另外的本地节点2b、2c收到更新高速缓存4中的第一数据的至少一个在先第二更新请求,中心节点9禁止更新高速缓存4中的第一数据。从而,全局去重机器9过滤涉及第一数据的更新请求,使主数据库3减轻对应负荷。相反,全局去重机器向提出请求的计算机器2返回拒绝消息,所述拒绝消息指示更新请求被拒绝。中心更新时间段被设定成与系统1的实现相应的适当值,例如,等于或大于计算机器2采用的本地更新时间段,因为已在计算机器2的本地层面进行利用本地更新时间段的去重。如上关于计算机器2详细所述,中心节点9可以每个高速缓存数据地采用相似的更新禁止计时器。在一些实施例中,代替过滤多个更新请求,中心节点9延迟转发更新请求,直到中心更新禁止计时器满期为止。中心节点9可以通知提出请求的计算机器2,更新请求将被延迟处理。最后,图10是计算机器2的内部组件的示意表示。计算机器2包括当由计算机器2执行时,使计算机器2进行本文中讨论的任意方法的一组指令。计算机器2包括通过总线101相互通信的至少一个处理器102、主存储器104和网络接口设备108。可选地,计算机器2还可包括静态存储器106和磁盘驱动器。作为用户接口103的例子,可以设置视频显示器、字母-数字输入设备和光标控制设备。网络接口设备108至少把计算机器2连接到客户端5,以及连接到主数据库3,并且可选地还连接到中心节点9。在其中计算机器2还托管高速缓存4的实施例中,高速缓存4可被保持在主存储器104中。具体体现上述方法任意之一或者全部的一组计算机可执行指令即,计算机程序代码完全或者至少部分驻留在计算机可读介质,例如主存储器104表示成包括接收和处理数据库请求的功能包括判定操作14的数据库请求处理110,和包括判定操作17和19,以及更新操作18和20的高速缓存更新功能112之类的功能实体和或所述至少一个处理器102之中或之上,和或静态存储器106之中。所述指令还可通过网络接口设备108,经由因特网作为传播信号地传送或接收。计算机的基本操作,包括用户接口和网络通信由也位于主存储器、所述至少一个处理器102和或静态存储器106中的操作系统控制。通常,为实现本发明的实施例而执行的例程无论是被实现成操作系统的一部分,还是特定应用、组件、程序、对象、模块或指令序列,或者甚至它们的子集在本文中可被称为“计算机程序代码”或者简单地称为“程序代码”。程序代码一般包括在不同的时间,驻留在计算机中的各个存储器和存储设备中,并且当由计算机中的一个或多个处理器读取和执行时,使计算机进行为执行具体体现本发明的实施例的各个方面的操作和或元件所需的操作的计算机可读指令。例如,用于执行本发明的实施例的操作的计算机可读程序指令可以是汇编语言,或者用一种或多种编程语言的任意组合编写的源代码或目标代码。在本发明的具体实施例中,记载在本文中的各种程序代码可以基于其中实现所述程序代码的应用来识别。然而,应意识到下面的任何特定程序命名都只是为了方便而使用的,从而本发明不应局限于只在由这样的命名识别和或暗示的任何特定应用中使用。此外,考虑到可把计算机程序组织成例程、过程、方法、模块、对象等的的方式通常数量无限,以及可在驻留在典型计算机内的各种软件层例如,操作系统、库、API、应用、小程序等之间分配程序功能的各种方式,应意识到本发明的实施例不限于本文中所述的程序功能的具体组合和分配。包含在本文中说明的任意应用模块中的程序代码能够以各种不同的形式,作为程序产品单独或集体地分发。特别地,可以利用计算机可读存储介质,分发程序代码,所述计算机可读存储介质上具有使处理器实现本发明的实施例的各个方面的计算机可读程序指令。本质上非临时性的计算机可读存储介质可包括以任意方法或技术实现的,用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类信息的易失性和非易失性,并且可拆卸和不可拆卸的有形介质。计算机可读存储介质还可包括随机存取存储器RAM、只读存储器ROM、可擦可编程只读存储器EPROM、电可擦可编程只读存储器EEPROM、闪存或其他固态存储器技术,便携式光盘只读存储器CD-ROM或其他光存储器,盒式磁带、磁带、磁盘存储器或其他磁存储设备,或者可用于保存期望的信息,并且可被计算机读取的任何其他介质。计算机可读存储介质本身不应被理解为暂时信号例如,无线电波或其他传播的电磁波、通过诸如波导管之类的传输介质传播的电磁波,或者通过导线传送的电信号。计算机可读程序指令可以从计算机可读存储介质下载到计算机、另一种可编程数据处理设备或另外的设备,或者可通过网络下载到外部计算机或外部存储设备。保存在计算机可读介质中的计算机可读程序指令可用于指导计算机、其他类型的可编程数据处理设备或其他设备以特定方式工作,以致保存在计算机可读介质中的指令产生制成品,所述制成品包括实现在流程图、序列图和或方框图中指定的功能、动作和或操作的指令。计算机程序指令可被提供给通用计算机,专用计算机或者其它可编程数据处理设备的一个或多个处理器,从而产生机器,以致借助所述一个或多个处理器运行的指令使得进行一系列的计算,以实现在流程图、序列图和或方框图中指定的功能、动作和或操作。在一些备选实施例中,与本发明的实施例一致,在流程图、序列图和或方框图中指定的功能、动作和或操作可被重新排序、串行处理和或并行处理。此外,与本发明的实施例一致,任意的流程图、序列图和或方框图可以包括除例示的那些方框以外的更多或更少的方框。本文中使用的术语只是用于描述特定实施例,并不意图限制本发明的实施例。应进一步理解的是,当在本说明书中使用时,用语“包含”指定陈述的特征、整数、步骤、操作、元件和或组件的存在,不过不排除一个或多个其他特征、整数、步骤、操作、元件、组件和或它们的群体的存在或增加。此外,就在具体实施方式或权利要求书中使用用语“包括”、“具有”、“带有”、“由…组成”或其变体来说,按照与用语“包含”类似的方式,这样的用语是开放性的。尽管通过各个实施例的描述,举例说明了本发明的所有内容,并且尽管相当详细地说明了这些实施例,不过,无意限制或以任何方式把附加的权利要求书的范围局限于这样的细节。对本领域的技术人员来说,另外的优点和修改将易于显现。于是,本发明在其更广泛的方面不限于表示和说明的具体细节、代表性设备和方法,以及说明性例子。因而,可以脱离这样的细节,而不违反总的发明构思的精神或范围。

权利要求:1.一种由计算机器执行的更新高速缓存中的数据的方法,所述计算机器耦接到保持原始数据的主数据库以及耦接到保持与主数据库中的原始数据对应的数据的高速缓存,所述方法包括在所述计算机器:-响应于收到与第一数据相关的第一数据库查询,根据至少一个给定的轮询因素,判定是通过利用高速缓存还是基于主数据库来处理所述第一数据库查询;-响应于结束对所述第一数据库查询的处理,判定是否更新高速缓存中的第一数据;和-如果判定是否更新第一数据指示更新第一数据,则基于主数据库中的原始第一数据更新高速缓存中的第一数据。2.按照权利要求1所述的方法,包括在所述计算机器:-如果判定是否更新第一数据指示不更新第一数据,则不更新高速缓存中的第一数据。3.按照权利要求1或2所述的方法,其中所述第一数据库查询是读取查询,所述方法包括:-利用高速缓存处理所述第一数据库查询,其中响应于结束利用高速缓存对所述第一数据库查询的处理,进行更新高速缓存中的第一数据的判定。4.按照权利要求1或2所述的方法,其中所述第一数据库查询是写入查询,所述方法包括:-基于主数据库中的原始第一数据处理所述第一数据库查询,导致主数据库中的原始第一数据的更改,其中响应于结束基于主数据库中的原始第一数据对所述第一数据库查询的处理,进行基于主数据库中的更改后的原始第一数据更新高速缓存中的第一数据的判定。5.按照权利要求1-4任意之一所述的方法,还包括:-响应于结束对所述第一数据库查询的处理,判定是否基于主数据库中的原始第二数据更新与第一数据相关的高速缓存中的至少一个第二数据。6.按照权利要求1-4任意之一所述的方法,还包括:-通过采用机器学习算法判定高速缓存中的第一数据仍然有效,即,与主数据库中的原始第一数据相同的可能性的降低,-至少基于高速缓存中的第一数据仍然有效的可能性的降低,判定是否基于主数据库中的原始第一数据更新高速缓存中的第一数据。7.按照权利要求6所述的方法,还包括:-在已判定高速缓存中的第一数据仍然有效的可能性的降低之后,判定是否基于主数据库中的原始第二数据更新与第一数据相关的高速缓存中的至少一个第二数据。8.按照权利要求1-7任意之一所述的方法,其中判定是否更新高速缓存中的第一数据包括:-响应于判定在第一给定时间段内收到与第一数据相关的至少一个在先第二数据库查询,禁止更新高速缓存中的第一数据。9.按照权利要求1-8任意之一所述的方法,其中计算机器是具有多个本地节点和中心节点的分布式数据库系统中的本地节点,所述方法还包括:-把至少更新高速缓存中的第一数据的第一更新请求发送给所述中心节点,-响应于在所述中心节点判定在第二给定时间段内从另外的本地节点收到更新高速缓存中的第一数据的至少一个在先第二更新请求,禁止更新高速缓存中的第一数据。10.按照权利要求1-9任意之一所述的方法,其中所述至少一个给定的轮询因素包括下述至少之一:-第一数据库查询请求的类型,-高速缓存中的第一数据的存在,-轮询错误率,所述轮询错误率是对主数据库的访问失败次数与对主数据库的访问尝试次数之比,-给定时间范围内对原始第一数据的写入访问次数,-高速缓存中的第一数据的年龄,-指示高速缓存中的第一数据在特定年龄有效的概率的有效率,-高速缓存中的第一数据的访问频度,-作为更新高速缓存中的第一数据所需的计算成本和或网络负荷的度量的更新资源。11.一种计算机器,所述计算机器耦接到保持原始数据的主数据库以及耦接到保持与主数据库中的原始数据对应的数据的高速缓存,所述计算机器被布置成执行按照权利要求1-10任意之一所述的数据更新方法。12.一种其上存储有程序代码指令的计算机可读介质,在由计算机执行时,所述程序代码指令使所述计算机执行按照权利要求1-10任意之一所述的方法步骤。

百度查询: 艾玛迪斯简易股份公司 更新高速缓存数据

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。