一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

处理搜索请求的制作方法

2023-08-07 06:08:07 来源:中国专利 TAG:
1.本发明涉及在分布式数据库环境中处理搜索请求。更具体地讲,它涉及使用高速缓存和实时数据源来处理搜索请求。
背景技术
::2.增加分布式数据库和计算环境中的搜索请求的处理的效率已经导致许多方法和解决方案。3.用于缩短查询的响应时间的一种方法是预先计算或预先收集搜索请求的结果并且将它们保持在高速缓存中。然后,实际上并非在存储在数据库中的大量原始数据上处理搜索请求,而是在保持在高速缓存中的结果上处理搜索请求。4.然而,高速缓存具有缺点,即由于已从其预先计算或预先收集结果的原始数据的变化,保持在高速缓存中的结果可能变得过时。为了使高速缓存实现前述缩短响应时间的功能,采取措施来使高速缓存的结果保持有效。这在大型数据高速缓存的系统中特别相关,在所述系统中,基于高速缓存返回全部或大部分的响应。5.用于保持高速缓存的有效性的措施应该在计算方面是高效的,特别是在具有有限的计算资源的系统中,所述有限的计算资源不足以总是重新计算任何高速缓存的结果。例如,为了计算效率,重新计算仍然有效的高速缓存的结果应该被避免。另外,就高效地利用计算资源而言,与其它高速缓存的结果相比以更高频率连续地重新计算过时的高速缓存的结果可能是不利的。已提出用于高效高速缓存重新计算机制的各种建议。由申请人在这个方面做出的贡献包括例如ep2842085b1、ep2885725b1、ep2908255b1、ep2911070b1、ep2913764b1和ep3128441b1。技术实现要素:6.根据第一方面,提供了一种用于在分布式数据库环境中处理搜索请求的方法。分布式数据库环境包括前端模块、一个或多个客户机、高速缓存、实时数据源、多个数据记录,其中每个数据记录包括至少一个稳定数据片和至少一个易失性数据片,其中可从实时数据源检索的至少一个稳定数据片的底层数据按照第一变化率而变化并且可从实时数据源检索的所述至少一个易失性数据片的底层数据按照第二变化率而变化,而第二变化率高于第一变化率,高速缓存至少存储所述多个数据记录的相应至少一个稳定数据片。所述方法包括,在前端模块:从所述一个或多个客户机之一接收搜索请求;响应于来自所述一个或多个客户机之一的搜索请求,从高速缓存检索一组数据记录,其中所述一组数据记录的相应至少一个稳定数据片对应于在搜索请求中指示的搜索准则;从检索到的一组数据记录的实时数据源检索当前易失性数据片,其中所述当前易失性数据片对应于检索到的一组数据记录的稳定数据片;通过分别组合从高速缓存检索的数据记录的稳定数据片和从实时数据源检索的当前易失性数据片来产生一组完整数据记录;并且将至少所述一组完整数据记录的子集返回给所述一个或多个客户机之一。7.在一些实施例中,高速缓存还存储所述多个数据记录的易失性数据片,并且从高速缓存检索所述一组数据记录包括检查所述一组数据记录的易失性数据片是否对应于在搜索请求中指示的搜索准则。8.在一些实施例中,将所述多个数据记录存储在高速缓存中包括:从至少一个外部数据源接收包括所述多个数据记录的一系列数据记录;过滤接收的一系列数据记录中稳定数据片和/或易失性数据片不满足给定阈值的数据记录;并且将剩余的未过滤的数据记录作为所述多个数据记录存储在高速缓存中。9.在一些实施例中,分布式数据库环境还包括主实时子系统,并且所述方法还包括:在前端模块确定从高速缓存检索的数据记录的数量低于预定阈值。所述方法还包括:在前端模块从主实时子系统检索一组完整附加数据记录,其中所述一组完整附加数据记录的各个至少一个附加稳定数据片对应于在搜索请求中指示的搜索准则。所述检索包括,在主实时子系统:确定与在搜索请求中指示的搜索准则对应的一个或多个附加稳定数据片;计算与确定的一个或多个附加稳定数据片对应的相应一个或多个当前附加易失性数据片;组合确定的一个或多个附加稳定数据片与相应计算的一个或多个附加易失性数据片以形成所述完整附加数据记录;将所述完整附加数据记录返回给前端模块。所述方法还包括:在前端模块将所述一组完整附加数据记录添加到所述一组完整数据记录。10.在一些实施例中,所述高速缓存存储所述完整附加数据记录的至少相应至少一个附加稳定数据片的子集。11.在一些实施例中,响应于产生所述一组完整数据记录,前端模块基于给定准则来选择所述一组完整数据记录的所述子集。另外,响应于将所述一组完整数据记录的所述子集返回给所述一个或多个客户机之一,前端模块将所述子集存储在高速缓存中。12.在一些实施例中,从实时数据源检索当前易失性数据片包括以递增方式从实时数据源检索当前易失性数据片。所述以递增方式检索包括,在前端模块:在第一迭代中,并行地从实时数据源检索给定的第一数量的易失性数据片;在第二迭代中,在第一迭代完成之后,并行地从实时数据源检索给定的第二数量的易失性数据片,其中易失性数据片的第二数量大于易失性数据片的第一数量。13.在一些实施例中,通过分别组合从高速缓存检索的数据记录的稳定数据片和从实时数据源检索的当前易失性数据片来产生一组完整数据记录并且将所述一组完整数据记录返回给所述一个或多个客户机之一包括:响应于完成检索所述给定的第一数量的易失性数据片的第一迭代,通过组合第一数量的当前易失性数据片与从高速缓存检索的数据记录的对应稳定数据片来产生数据记录的完整第一子集并且将数据记录的完整第一子集返回给客户机;响应于完成检索所述给定的第二数量的易失性数据片的第二迭代,通过组合第二数量的当前易失性数据片与从高速缓存检索的数据记录的对应稳定数据片来产生数据记录的完整第二子集并且将数据记录的完整第二子集返回给客户机。14.根据另一方面,提供了一种计算机器,计算机器用作用于在分布式数据库环境中处理搜索请求的前端模块,所述分布式数据库环境包括前端模块、客户机、高速缓存和实时数据源,其中所述分布式数据库环境存储多个数据记录,其中每个数据记录包括至少一个稳定数据片和至少一个易失性数据片,其中可从实时数据源检索的至少一个稳定数据片的底层数据按照第一变化率而变化并且可从实时数据源检索的所述至少一个易失性数据片的底层数据按照第二变化率而变化,而第二变化率高于第一变化率,其中所述高速缓存至少存储所述多个数据记录的相应至少一个稳定数据片,所述计算机器被布置为执行如前述方面和实施中任何一项所述的方法。15.根据另一方面,提供了一种计算机程序,所述计算机程序产品包括程序代码指令,所述程序代码指令被存储在计算机可读介质上以便当在计算机上执行所述程序时执行如前述方面和实施中任何一项所述的方法步骤。附图说明16.将参照附图描述本机制。相似的标号通常指示相同或功能相似的元件。17.图1是如这里所述的分布式计算机环境的示意性描述。18.图2是根据一些实施例的一组完整数据记录的示意图。19.图3是根据一些实施例的一组完整数据记录的另一示意图。20.图4是根据第一实施例的用于响应于搜索请求来检索数据记录和易失性数据片的消息序列图。21.图5是根据第二实施例的用于响应于搜索请求来检索数据记录和易失性数据片的消息序列图。22.图6是用于从外部源接收数据记录的消息序列图。23.图7是根据第一实施例的用于检索附加数据记录的消息序列图。24.图8是根据第二实施例的用于检索附加数据记录的消息序列图。25.图9是用于在超过一次迭代中检索易失性数据片的消息序列图。26.图10是数据中心的全球分布式网络的示意性描述,是这里描述的机制的示例性使用情况。27.图11是根据一些实施例的计算机器的内部部件的图形表示。具体实施方式28.本主题公开一般地涉及在数据库系统中处理搜索请求。术语“搜索请求”包括所有类型的数据库请求,特别是读请求。这里描述的机制也可被用于所有类型的请求,诸如写请求。29.一旦可例如存储在数据库(诸如,数据提供商的实时数据源)中的底层数据已变化,高速缓存的数据记录(搜索结果)可能变得陈旧。底层数据的变化能够按照特定变化率发生,由此底层数据的不同部分能够按照不同的变化率(诸如,更快和更慢的变化率)变化。因此,为了保持有效的高速缓存,存在根据底层数据中发生的更新来按照规则时间标度更新高速缓存的数据记录的一般要求。通过例如使用数据库中的对应底层数据来重新计算高速缓存的数据,能够完成更新高速缓存的数据。30.在这种背景下,高速缓存重新计算机制的传统方案(诸如,上述现有技术文档)在不同的高速缓存的数据记录(数据库表的行)按照不同速率过时的意义上考虑水平无效率,并且因此,讨论在水平数据记录的级别高效地采用重新计算资源的措施。31.与此相比,本方法已意识到,不同的无效率也可能沿垂直方向存在,即数据库表的不同列或高速缓存的数据库记录的不同字段可能具有不同的无效率。例如,当高速缓存的数据包括复合数据记录时,情况如此,所述复合数据记录包括从按照不同变化率变化的不同底层数据获取或计算的不同数据片。这种复合数据的示例是具有列的sql可处理表,其中与第二组列的数据相比,第一组列的数据不得不被按照更慢的速率更新。第一组列的数据可被称为稳定数据片,并且第二组列的数据可被称为易失性数据片。可被表示为“table”的作为例如sql可处理表的数据表可被沿着这两个组的列(即,沿垂直方向)在逻辑上划分,导致表示为“table_stable”的稳定表部分,并且其中存储在它的列中的数据按照较慢的变化率(例如,在天或周的量级上)过时。所述划分还导致表示为“table_volatile”的易失性表部分,并且其中存储在列中的数据按照较块的变化率(例如,在分钟或小时的量级上)过时。32.根据本主题公开的实施例,稳定表部分“table_stable”由于其较低的无效率而被高速缓存,并且易失性表部分“table_stable”的数据片未(或未必)被高速缓存,而是在请求时从原始数据源被检索或计算,以便形成组合的数据片。33.这种机制减少了用于使高速缓存保持有效的计算工作量,这是因为存储在高速缓存中的数据包括稳定数据片,所述稳定数据片按照较慢的变化率变为无效并且因此与易失性数据片相比不得不按照更慢的更新率被更新。相反地,当稳定数据与它的对应易失性数据被一起高速缓存为复合的高速缓存的数据记录时,当易失性数据的底层数据已变化时,稳定数据在传统上也将会被重新计算,即使在稳定数据的底层数据未被改变并且因此不需要重新计算稳定数据片的情况下也是如此。另外,这种机制促进了利用更新的并且因此有效的数据来对对数据的请求(诸如,搜索请求)做出响应。34.根据本主题公开的用于处理搜索请求的分布式环境被示出在图1中。35.分布式计算环境包括前端模块1、一个或多个客户机2、高速缓存3和实时数据源4。在分布式计算环境内,存储多个数据记录200。每个数据记录200(诸如,sql可处理表“table”的一行)包括至少一个稳定数据片201(诸如,sql可处理表“table_stable”)和至少一个易失性数据片202(诸如,sql可处理表“table_volatile”的一行),如图2和图3中所示。需要注意的是,数据记录200还可被保存在非关系和/或nosql数据库中。如上所述,可从实时数据源4检索的至少一个稳定数据片201的底层数据按照第一变化率变化,并且可从实时数据源4检索的所述至少一个易失性数据片202的底层数据按照第二变化率变化。第二变化率例如高于第一变化率。高速缓存3至少存储所述多个数据记录200中的相应至少一个稳定数据片201。36.如图3中所示,在一些实施例中,可通过将超过一个易失性数据片(诸如,易失性数据片#1202-1、易失性数据片#2202-2和易失性数据片#3202-3)与稳定数据片201组合来产生数据记录200。在一些实施例中,可通过将易失性数据片与超过一个稳定数据片组合来产生数据记录200。37.前端系统1、所述一个或多个客户机2、高速缓存3和实时数据源4位于任何地方,并且是个体计算机器(诸如,个人计算机、移动站(诸如,膝上型计算机或平板计算机)、智能电话等),以及在一些实施例中,是更强大的机器(诸如,数据库应用服务器、分别包括多个互连的机器的分布式数据库系统、数据中心等)。在一些实施例中,前端系统1、高速缓存3和实时数据源4可以是与所述一个或多个客户机2类似的机器,而在其它实施例中,前端系统1、高速缓存3和数据库4比所述一个或多个客户机2更强大。在一个实施例中,前端系统1、所述一个或多个客户机2、高速缓存3和实时数据源4是可分布在全世界的数据中心。38.根据性能要求,前端系统1、高速缓存3、实时数据源4和所述一个或多个客户机2可包括若干硬件机器。前端系统1、高速缓存3、实时数据源4和所述一个或多个客户机2被例如体现为包括如图11中所示的计算机器100的静止或移动硬件机器,和/或体现为专用系统(诸如,为了特定技术目的而布置的嵌入式系统),和/或体现为在通用或专用计算硬件机器(诸如,web服务器和web客户机)上运行的软件部件。39.前端系统1、高速缓存3、实时数据源4和所述一个或多个客户机2通过通信接口5、6和7而互连。接口5、6和7中的每一个使用有线或无线局域网(lan)或者有线或无线城域网(man)或者有线或无线广域网(wan)(诸如,互联网)或者前述网络技术的组合,并且通过任何合适的通信和网络协议而被实现。40.稳定数据片201可包括稳定数据x1(例如,存储在“table_stable”的一行中),并且易失性数据片可包括易失性数据y1(例如,存储在“table_volatile”的一行中)。易失性数据y1可通过关键字来与稳定数据x1关联。数据x1按照比数据y1(与“table_volatile”一起)变化的速率低的速率变化(与“table_stable”一起)。通过组合代表例如稳定数据片201的表“table_stable”的一行与代表例如易失性数据片202的“table_volatile”的一行,能够产生数据记录200,如图2中所指示。通过使用例如sql命令join能够执行所述组合。然而,如图3中所示,“table_stable”的行可被与从“table_volatile”获取的若干行组合,或者与从包含易失性数据片(诸如,数据片202-1、202-2和202-3)的多个表获取的一行或若干行组合。41.在图4中提供根据一些实施例的用于在分布式计算环境中处理搜索请求的机制的消息序列图。该机制包括:在前端模块1,在活动10中,从所述一个或多个客户机2之一接收搜索请求。在活动11中,响应于来自所述一个或多个客户机2之一的搜索请求,前端模块1从高速缓存3检索至少具有相应至少一个稳定数据片的一组数据记录200。所述一组数据记录200中的相应至少一个稳定数据片201对应于在搜索请求中指示的搜索准则。在一些实施例中,可通过例如sql查询来选择检索到的一组数据记录200中的一系列数据记录200,所述sql查询可从检索到的一组数据记录200选择前n个数据记录。这导致基于在搜索请求中指示的搜索准则的数据记录200的选择。在一些另外的实施例中,可在活动11中从高速缓存3检索数据记录200的稳定数据片之后执行所述选择。在活动12中,前端模块1从实时数据源4为检索到的一组数据记录检索当前易失性数据片202或202-1、202-2和202-3。当前易失性数据片202或202-1、202-2和202-3对应于检索到的一组数据记录200的稳定数据片201。前端模块1在活动13中通过分别组合从高速缓存检索的数据记录的稳定数据片201和从实时数据源检索的当前易失性数据片202或202-1、202-2和202-3来产生一组完整数据记录200,并且在活动14中将至少所述一组完整数据记录200的子集返回给所述一个或多个客户机2之一。以下给出关于从所述一组完整数据记录200选择数据记录200以形成将要被返回给客户机2的所述子集的进一步细节。42.为了引用前述与sql可处理表的示例性关系,搜索请求的搜索准则可包括稳定数据x1,所述一组数据记录200可对应于所述稳定数据x1。然而,搜索准则还可包括与易失性数据y1或y1#1、y1#2和y1#3相关的准则,所述一组数据记录200可另外对应于所述易失性数据y1或y1#1、y1#2和y1#3。43.为了进一步引用前述与sql可处理表的示例性关系,前端模块1在活动10中从客户机2接收到将稳定数据x1指示为搜索准则的搜索请求。稳定数据x1可被存储在表“table_stable”的一行中的一个或多个稳定数据片中。响应于搜索请求,前端模块1在活动11中从高速缓存3从表“table_stable”检索包括稳定数据x1的稳定数据片201。在活动12中,前端模块1从实时数据源4从更新的表“table_volatile”检索易失性数据片202,或者从更新的表“table_volatile#1”、“table_volatile#2”和“table_volatile#3”检索易失性数据片202-1、202-2和202-3。例如,经易失性数据y1(存储在易失性数据片202中)或y1#1、y1#2和y1#3(存储在易失性数据片202-1、202-2和202-3中)与稳定数据x1的对应关系,从这些表检索到的每个易失性数据片对应于从表“table_stable”检索到的稳定数据片。在活动13中,通过使用例如sql命令join来组合来自表“table_stable”的稳定数据片201与来自“table_volatile”的易失性数据片202或从表“table_volatile#1”、“table_volatile#2”和“table_volatile#3”获取的易失性数据片202-1、202-2和202-3,前端模块产生一组完整数据记录200。因此,在组合的一组数据记录200内,已有的稳定数据x1被与新计算的表“table_volatile”的易失性数据y1或表“table_volatile#1”、“table_volatile#2”和“table_volatile#3”的易失性数据y1#1、y1#2和y1#3组合。前端模块1在活动14中将至少所述一组完整数据记录200的子集(即,表“table_stable”与表“table_volatile”或表“table_volatile#1”、“table_volatile#2”和“table_volatile#3”的行的相应组合)返回给请求客户机2。由于存储在易失性表中的数据y1或y1#1、y1#2和y1#3代表更新的数据,所以客户机2已在这个方面接收到有效数据。44.在图5中提供根据另外的实施例的用于在分布式数据库环境中处理搜索请求的机制的消息序列图。除了图4中示出的机制之外,在图5中示出的机制中,在活动15中,高速缓存3还存储易失性数据片202或202-1、202-2和202-3,诸如所述多个数据记录200的表“table_volatile”或表“table_volatile#1”、“table_volatile#2”和“table_volatile#3”。例如,假设易失性数据片202或202-1、202-2和202-3在给定时间段期间保持有效的概率相对较高(例如,高于给定有效率阈值),而易失性数据片202或202-1、202-2和202-3的有效概率在所述给定时间段之后减小(例如,下降至低于所述给定有效率阈值),则易失性数据片202或202-1、202-2和202-3可在从实时数据源4检索12之后被存储在高速缓存3中并且在所述给定时间段期间被保持在高速缓存3中。另外或者替代地,在一些实施例中,高速缓存3将易失性数据片202或202-1、202-2和202-3的一部分存储不确定的时间段,并且采用高速缓存更新机制来使高速缓存中的易失性数据片202或202-1、202-2和202-3的所述一部分保持基本上有效。例如,高速缓存3可存储易失性数据片202或202-1、202-2和202-3,所述易失性数据片202或202-1、202-2和202-3与具有更高无效率的其它易失性数据片相比具有更低的无效率并且因此在更长时间期间保持有效并且因此与更新具有更高无效率的易失性数据片相比需要更少的高速缓存更新机制的计算资源。45.由前端模块1从高速缓存3检索所述一组数据记录200(活动11)包括检查高速缓存是否包括与在搜索请求中指示的搜索准则对应的所述一组数据记录的易失性数据片202或202-1、202-2和202-3,并且如果是这样,则还从高速缓存3检索这些易失性数据片202或202-1、202-2和202-3。在替代方案中或者另外,例如,如果高速缓存3存储易失性数据片202或202-1、202-2和202-3的一部分(即,一些列或字段),而易失性数据片202或202-1、202-2和202-3的其它部分仍然被存储在实时数据源4中,则前端模块1还可从实时数据源4检索12易失性数据片202或202-1、202-2和202-3。46.在一些实施例中,如图6中所示,将所述多个数据记录200存储在高速缓存3中包括:在前端模块1,在活动20中,从至少一个外部数据源8接收包括所述多个数据记录200的一系列数据记录;并且在活动21中,过滤接收的一系列数据记录中稳定数据片和/或易失性数据片不满足给定阈值的数据记录。在活动22中,前端模块1将剩余的未过滤的数据记录作为所述多个数据记录200存储在高速缓存3中。47.再次选择sql可处理表的示例(可位于世界上的任何位置的一个或多个外部数据源8(诸如,公司或科学计算中心或数据处理服务中心))提供sql可处理表,所述sql可处理表能够由任何服务器或至少一组选择的服务器(诸如,前端模块1)访问。这些外部源提供用于例如更新存储在高速缓存3中的数据记录的数据。在活动20中,前端模块1可从例如公司数据处理中心接收一系列数据记录200,所述一系列数据记录200包括sql可处理表“table”作为数据记录200,所述sql可处理表“table”可包括稳定数据片201“table_stable”和所述一个或多个易失性数据片202或202-1、202-2和202-3(诸如,表“table_volatile”或表“table_volatile#1”、“table_volatile#2”和“table_volatile#3”)。在活动21中,接收的数据记录200被过滤以便确定总体的接收的数据记录中的哪些数据记录实际上将要可用于由前端模块1服务的客户机2。由于表“table”的稳定数据和易失性数据片满足给定过滤准则,所以表“table”在活动21中未被前端模块1过滤,并且至少表“table”的数据记录200的稳定数据片在活动22中被存储在高速缓存3中。48.作为示例,前端模块1可在活动21中使用过滤准则来过滤接收的数据记录200。过滤准则可包括前述有效率阈值,使前端模块能够区分稳定数据片和易失性数据片,并且因此,决定哪些数据片(列)要被存储在高速缓存3中并且哪些其它数据片仅要在请求时从实时数据源4(诸如,上述计算中心)检索。必须由数据记录(分别是它们的稳定数据片和易失性数据片(诸如例如,稳定数据片201和易失性数据片202或202-1、202-2和202-3))满足的有效率阈值可被设置为70%。因此,具有70%或更大的有效率的数据片被分类为稳定数据片并且存储在高速缓存3中,而其它数据片被分类为易失性数据片并且在请求时从实时数据源4检索。可由前端模块1按照各种方式(例如,基于从数据片的无效历史获得的数据片的有效性统计数据)来确定数据片的有效率,或者也可由外部源8或另一实体明确地发信号通知无效率。49.在一些实施例中,如图7中所示,分布式计算环境还包括主实时子系统9以用于检索可能未由高速缓存3和/或实时数据源4保存的附加数据记录,并且所述机制还包括在前端模块1在活动30中确定从高速缓存3检索的数据记录200的数量低于预定数量阈值。所述机制还包括在活动31中在前端模块1从主实时子系统9检索一组完整附加数据记录200,其中所述一组完整附加数据记录200的相应至少一个附加稳定数据片201对应于在搜索请求中指示的搜索准则。活动31包括:在主实时子系统9,确定(子活动32)与在搜索请求中指示的搜索准则对应的一个或多个附加稳定数据片201,并且计算(子活动33)与确定的一个或多个附加稳定数据片201对应的相应一个或多个当前附加易失性数据片202或202-1、202-2和202-3。在活动31内,主实时子系统9在子活动34中组合确定的一个或多个附加稳定数据片与相应计算的一个或多个附加易失性数据片以形成完整附加数据记录,并且在子活动35中将完整附加数据记录返回给前端模块。前端模块1在活动36中将所述一组完整附加数据记录200添加到所述一组完整数据记录200。50.继续sql可处理表的前述示例,在已在活动13中为搜索请求的响应产生一系列sql可处理表(所述sql可处理表包括具有稳定数据片201“table_stable”的表“table”)作为一组完整数据记录200之后,前端模块1可在活动30中确定产生的完整表的数量低于特定阈值以便为来自客户机2的搜索请求提供充分的响应。作为示例,当所述数量阈值被设置为值2时,仅提供一个数据记录(诸如,表“table”)作为搜索请求的响应将会构成搜索请求的不充分的响应。在这种情况下,前端模块1因此在活动31中从这里表示为主实时子系统9的附加数据源检索附加完整sql可处理表,所述附加完整sql可处理表可包括表“table_additional”,所述附加完整sql可处理表自身包括稳定数据片和易失性数据片,其对应于在搜索请求中指示的搜索准则。作为示例,搜索请求可再次指示x1作为搜索准则。在活动31内,在子活动32中,主实时子系统9确定附加稳定数据片201,诸如sql可处理表“table_stable_additional”,所述sql可处理表“table_stable_additional”具有存储在它的行中的稳定数据x1。在子活动33中(也在活动31内),主实时子系统9计算附加易失性数据片(202或202-1、202-2和202-3),所述附加易失性数据片可包括具有与稳定数据x1关联的易失性数据y1的sql可处理表“table_volatile_additional”。在子活动34中(在活动31内),通过例如基于sql的join命令,附加易失性数据片(202或202-1、202-2和202-3)被与所述一组数据记录200组合。表“table_additional”被形成,并且在子活动35中(在活动31内)被返回给前端模块1。在活动36中,前端模块将表“table_additional”添加到表“table”。产生的完整表的数量现在满足所述数量阈值2,并且能够被返回对来自客户机2的搜索请求的充分响应。51.主实时子系统9(例如,附加数据源9)可与高速缓存3和实时数据源4分离。然而,在一些实施例中,可由另一数据库系统(诸如,如上所述的计算中心)包括主实时子系统9和实时数据源4。在一些实施例中,主实时子系统9可向高速缓存3和实时数据源4提供数据,诸如sql可处理表。52.在一些实施例中,也如图7中所示,在活动37中,高速缓存3存储完整附加数据记录的至少相应至少一个附加稳定数据片的子集,诸如例如表“table_additional”的表“table_stable_additional”。因此,响应于请求满足与目前处理的搜索请求相同的搜索准则的数据记录的另一搜索请求,可直接从高速缓存3(而非主实时子系统9)检索这些附加数据记录。如以上所解释,例如,根据完整附加数据记录的易失性数据片的无效率,可在给定时间段期间进行将完整附加数据记录存储在高速缓存3中。53.在一些实施例中,如图8中所示,在活动38中,响应于产生所述一组完整数据记录200,前端模块1根据给定准则选择所述一组完整数据记录200的所述子集。响应于将所述一组完整数据记录200的所述子集返回给所述一个或多个客户机2之一,在活动39中,前端模块1将所述子集存储在高速缓存3中。作为示例,所述一组完整数据记录200可包括稳定数据片#11/易失性数据片#11、稳定数据片#12/易失性数据片#12、稳定数据片#13/易失性数据片#13。由前端模块1在活动38中选择、在活动14中返回给客户机2并且存储在高速缓存2中(活动39)的子集可包括稳定数据片#11/易失性数据片#11和稳定数据片#12/易失性数据片#12。通过使用指示数据记录200在哪种程度上满足在搜索请求中指示的搜索参数的度量,可确定所述子集的所述两个数据记录200。54.例如,搜索请求可请求具有指定特定值的数据片的指示数量的数据记录200,诸如具有最高带宽的两个网络路线(参见以下参照图10描述的示例性网络路由实施例)。前端模块随后选择代表具有最高带宽特性的网络路线的两个数据记录200,并且将这些选择的数据记录返回给客户机,而指定具有较低带宽特性的网络路线的其它数据记录200未被返回。55.在一些实施例中,得分可被用作给定准则。得分可构成数据记录200的多个数据片的规范化表示,以使异构数据记录200(例如,就不同数据片中的不同值而言)具有可比性并且因此可按照更加高效的方式处理。为此,前端模块1可为个体数据片计算权重值,然后为每个完整数据记录200计算汇总得分。例如,前端模块1可为带宽数据片并且为由完整数据记录200表示的网络路线的当前负载计算权重值。与更低的带宽特性相比,更高的带宽特性导致更高的权重值,而与更低的当前负载特性相比,更高的当前负载特性导致更低的权重值。例如,通过权重值的求和或(加权)平均,可给出用于获得得分的这些数据片个体权重值的汇总。56.汇总得分可建立完整数据记录200的评级次序,并且促进高效选择。与更低的汇总得分相比,更高的汇总得分可指示,相应数据记录构成在搜索请求中指示的搜索参数的更好的匹配。因此,具有更高得分的这种完整数据记录可被返回给客户机2,而具有更低汇总得分的数据记录被前端服务器1滤除/丢弃。在于2020年10月21日提交的具有申请号ep20306251.8的待审欧洲专利申请中阐述了权重值和得分的进一步细节。57.在一些实施例中,计算的得分自身形成完整数据记录200的所述子集的附加数据片。在这些实施例中,前端模块1可将包括得分的返回给客户机2的完整数据记录200的选择的子集存储在高速缓存3中。这促进进一步的搜索结果(诸如,与完整数据记录200的返回的子集相关的后续搜索请求)的高效处理。例如,根据基于高速缓存3计算的得分,可随后进行从存储的完整数据记录200的子集的进一步选择以形成子子集,而不需要从实时数据源4检索易失性数据片。58.在一些实施例中,如图9中所示,由前端模块1从实时数据源4检索当前易失性数据片202或202-1、202-2和202-3包括以递增方式从实时数据源4检索当前易失性数据片202或202-1、202-2和202-3。在第一迭代中,前端模块1在活动12-1中并行地从实时数据源4检索给定的第一数量的易失性数据片。在已接收到第一数量的易失性数据片之后,前端模块1产生包括检索到的第一数量的易失性数据片和对应稳定数据片的第一数量的完整数据记录,并且将这个第一数量的完整数据记录返回给客户机2。在第二迭代中,在第一迭代完成之后,前端模块1在活动12-2中并行地从实时数据源4检索给定的第二数量的易失性数据片,其中易失性数据片的第二数量大于易失性数据片的第一数量。前端模块1随后产生包括第二数量的易失性数据片和对应稳定数据片的第二数量的完整数据记录,并且将第二数量的完整数据记录返回给客户机2。通过分别组合从高速缓存3检索的数据记录200的稳定数据片201与从实时数据源4检索的当前易失性数据片202或202-1、202-2和202-3来在前端模块1产生一组完整数据记录200并且将所述一组完整数据记录200返回给所述一个或多个客户机2之一包括,在前端模块1,响应于完成检索所述给定的第一数量的易失性数据片的第一迭代(活动12-1),通过组合第一数量的当前易失性数据片与从高速缓存3检索的数据记录200的对应稳定数据片201来在活动13-1中产生数据记录200的完整第一子集并且在活动14-1中将至少数据记录200的完整第一子集中的子集返回给客户机2。响应于完成检索给定的第二数量的易失性数据片的第二迭代(活动12-2),前端模块1通过组合第二数量的当前易失性数据片与从高速缓存3检索的数据记录200的对应稳定数据片201来在活动13-2中产生数据记录200的完整第二子集并且在活动14-2中将至少数据记录200的完整第二子集中的子集返回给客户机2。这使得能够在已完成活动13-1中的所述子集的产生之后立即实现对客户机2的搜索请求的第一响应。59.即使大量的易失性数据片202或202-1、202-2和202-3将要被从实时数据源4检索,细分为易失性数据片的迭代地更大检索批次也促进在前端模块1及时地递增地处理易失性数据片202并且及时地递增地将完成的数据片返回给客户机2。使前端模块1已经能够处理第一数量的易失性数据片,而第二数量的数据片(等等)仍然将要被检索。60.再一次参照sql可处理表的示例,前端模块可在第一迭代(活动12-1)中接收易失性数据片#1202-1(即,表“table_volatile#1”)并且在第二迭代(活动12-2)中接收易失性数据片#2202-2和易失性数据片#3(即,表“table_volatile#2”和“table_volatile#3”)。61.再次引用sql可处理表的示例,在前端模块1已在第一迭代(活动12-1)中接收到例如表“table_volatile#1”之后,通过例如使用sql命令join,前端模块1通过作为示例组合表“table_volatile#1”与从高速缓存3检索的表“table_stable”来在活动13-1中产生数据记录200的完整第一子集。前端模块1随后在活动14-1中将这个第一组合表返回给客户机2。然后,在前端模块1已在第二迭代(活动12-2)中接收到表“table_volatile#2”和“table_volatile#3”之后,通过例如再次使用sql命令join,前端模块1通过作为示例组合表“table_volatile#2”和“table_volatile#3”与从高速缓存3检索的表“table_stable”来在活动13-2中产生数据记录200的完整第二子集。前端模块1随后在活动14-2中将这个第二组合表返回给客户机2。62.在一些实施例中,另外或者替代地,易失性数据片202或202-1、202-2和202-3由实时数据源4在请求时动态地计算。作为说明性示例,前端模块1可在第一迭代中为五个稳定数据片201请求易失性数据片202或202-1、202-2和202-3。在第二迭代中,前端模块1在第二迭代中为十个稳定数据片201请求易失性数据片202或202-1、202-2和202-3。刚刚提及的稳定数据片201的数量五和十仅用作说明性示例。实际上,根据实际使用情况,这种数量可以更低或更高,例如在十、百或千的量级上。63.如本主题公开中所述的机制的示例性使用情况涉及如图10中所示的通信网络中的数据中心(或通常任何类型的网络节点)之间的网络路由。所述网络可包括分布在全世界的数据中心,大量的可能的网络路径连接这些数据中心。指定数据中心和网络路径的一些数据(诸如,关于数据中心的位置或连接路径的硬件性质(例如,光纤、电缆或卫星)的数据)通常在较长时间段期间(诸如,在几年期间)保持不变,并且因此一旦已从例如存储在网络路径数据的服务提供商的实时数据源4中的底层数据计算出,则所述一些数据能够例如被高速缓存在服务器的高速缓存中作为稳定数据片201。一些高速缓存的稳定数据片201可被如下存储在sql可处理表的用于稳定数据片的列中:64.[0065][0066]在引用的示例内,数据中心和网络路径与附加数据关联,诸如数据中心或网络路径当前是否操作或者相应数据中心和路径的当前计算或传输负载,如下面的表中所示。这种数据按照快得多的变化率(诸如,在天、小时甚至分钟的量级上)变化,并且能够被视为(高度)易失并且因此被视为易失性数据片(202或202-1、202-1和202-3),可从例如存储在路径数据的服务提供商的实时数据源4中的底层数据计算这种数据。这种易失性数据可在sql可处理表中被存储在用于易失性数据片的列中:[0067]数据中心操作状态计算负载数据中心#1操作50%数据中心#2操作95%数据中心#3非操作0%数据中心#4操作100%[0068]路径操作状态传输负载路径#1非操作0%路径#2操作5%路径#3操作40%路径#4操作90%[0069]如果客户机(诸如客户机2,客户机2可以是数据中心#1的计算站)将要向数据中心#3发送数据,则客户机2可向服务器的前端模块1发送搜索请求。前端模块1可在活动11和12中从高速缓存3检索具有稳定数据片的数据记录(即,关于数据中心和路径的数据),并且从实时数据源4检索关于数据中心和路径的附加易失性数据。使用合适的sql命令(诸如,join),服务器的前端模块1可如下产生(活动13)表:[0070][0071]前端模块1最终将这个表返回给请求客户机2,即数据中心#1的计算站,客户机2可选择路径#3和路径#4的路径组合以向数据中心#2发送数据。[0072]然而,一个小时后,路径的操作情况可能已变化,并且客户机2可能接收下面的表作为对相同搜索请求的响应。[0073][0074]客户机2可随后也选择路径#1和路径#2的路径组合以向数据中心#2发送数据。[0075]本方法的另外的使用情况涉及用于辅助车辆驾驶员或自主车辆的导航,其中稳定数据片201指定连接位置a与位置b的路线(稳定数据)。易失性数据片202或202-1、202-1和202-3可包括与路线和驾驶相关的附加数据,诸如关于交通堵塞、道路建设和维护工作等的数据(易失性数据),所述附加数据按在小时和天的量级上的时间标度变化。另一方面,连接位置(诸如,a与b)的路线在大得多的时间标度上(诸如,月或年)变化。易失性数据片202或202-1、202-1和202-3还可包括例如位于路线旁边的加油站和特定商店当前是否营业的数据。第一组合数据记录200可随后读起来如下:“在纽约市中的位置a和b之间存在包括路线nr.1111的路线连接;这个路线当前由于交通堵塞而受阻,并且沿着该路线的加油站xyz当前正在营业”。第二组合数据记录200可读起来如下:“在纽约市中的位置a和b之间存在包括路线nr.2222的路线连接;这个路线当前是开放的,并且在这个路线不存在加油站”。一个小时后,纽约市中的交通状况可能已变化,并且新的第一组合数据记录200可随后读起来如下:“在纽约市中的位置a和b之间存在包括路线nr.1111的路线连接;这个路线当前可自由通行,并且沿着该路线的加油站xyz当前正在营业”。三个小时后,更新的第一数据记录200可读起来是:“在纽约市中的位置a和b之间存在包括路线nr.1111的路线连接;这个路线当前无堵塞,并且沿着该路线的加油站xyz关闭”。包括稳定数据记录201与一系列易失性数据记录202-1、202-2和202-3的组合的组合数据记录200可读起来如下:[0076]-在纽约市中的位置a和b之间存在包括路线nr.1111的路线连接;这个路线当前可自由通行,并且沿着该路线的加油站xyz当前正在营业”。[0077]-在纽约市中的位置a和b之间存在包括路线nr.1111的路线连接;这个路线当前可自由通行,并且沿着该路线的加油站xyz当前关闭”。[0078]-在纽约市中的位置a和b之间存在包括路线nr.1111的路线连接;这个路线当前可自由通行,并且沿着该路线的杂货店efg当前正在营业”。[0079]进一步引用与导航相关的前述示例,在纽约市中驾驶车辆的驾驶员希望知道在纽约市内连接位置a与位置b的路线。在位于他的/她的路线上时,驾驶员还希望为车辆加油并且购买一些食品杂货。驾驶员将他的/她的请求的对应参数输入到位于车辆中的驾驶员辅助系统中。连接到驾驶员辅助系统的服务器(=前端模块1)在活动10中从驾驶员辅助系统(客户机2)接收对在纽约市内连接位置a与位置b的路线连接的请求。在活动11中,服务器从可位于中央服务单元的高速缓存3接收由一个或多个稳定数据片201包括的位置a和位置b之间的可能的连接(诸如,路线nr.1111和2222)作为数据记录200。在活动12中,服务器从实时数据源4检索与路线nr.1111和2222相关的附加数据,诸如当前交通状况或哪些商店(诸如,加油站和杂货店)当前正在营业并且因此可用。在活动13中,服务器按照如上所述的方式产生一组组合数据记录200,并且在活动14中将至少所述一组完整数据记录200的子集返回给驾驶员辅助系统。驾驶员通过这种方式来接收关于由路线nr.1111和2222表示的位置a和位置b之间的可能连接、这些路线上的交通状况以及沿着这些路线的加油和购物可能性的更新的数据。[0080]进一步展开与导航相关的示例,服务器能够在活动15中在高速缓存3中存储易失性数据,诸如关于特定交通状况(例如,关于在位置a和位置b之间的路线上在几天内发生的建设或维护工作)的数据。驾驶员可在其对位置a和位置b之间的路线的请求中还包括对关于这些路线上正在进行的道路施工的数据的请求。当服务器响应于驾驶员的请求而从高速缓存3检索包括易失性数据的数据记录200时,服务器检查是否在驾驶员搜索请求的准则中指示了这种易失性数据(例如,关于道路施工的数据)。由于在当前示例内驾驶员已请求关于位置a和位置b之间的路线上正在进行的道路施工的数据,所以从高速缓存3检索的易失性数据对应于搜索准则并且将会最终被传送给驾驶员。[0081]图11是前端系统1、高速缓存3、实时数据库4和所述一个或多个客户机2的计算机器的内部部件的图形表示。计算机器100包括一组指令以便当所述一组指令由计算机器100执行时使计算机器100执行这里讨论的任何方法。计算机器100包括至少一个处理器101、主存储器106和网络接口装置103,它们经总线104彼此通信。可选地,计算机器100还可包括静态存储器105和盘驱动单元。视频显示器、字母数字输入装置和光标控制装置可被提供作为用户接口102的示例。网络接口装置103将计算机器100连接到分布式数据库系统的其它部件,诸如前端系统1、高速缓存3、实时数据库4和所述一个或多个客户机2或另外的部件(诸如,数据库)。[0082]计算机器100还托管高速缓存107。高速缓存107可存储接收的数据记录200以及稳定数据片201(和易失性数据片202或202-1、202-2和202-3)。本实施例内的高速缓存107可包括存储数据记录200的硬件和软件部件,从而与没有高速缓存的情况相比,未来对数据记录200的请求能够被更快地服务。能够存在基于硬件的高速缓存(诸如,cpu高速缓存、gpu高速缓存、数字信号处理器和快速重编址缓冲器)以及基于软件的高速缓存(诸如,页高速缓存、web高速缓存(超文本传输协议、http、高速缓存)等)。前端模块1、高速缓存3、实时数据库4和所述一个或多个客户机2或数据库可包括高速缓存107。前端模块1还执行数据处理,诸如对接收的数据记录200进行解码、通过从数据记录200去除例如冗余数据集或具有缺失条目的数据集来消除位于数据记录200中的错误。另外,使数据记录200具有公共数据格式以便于进一步处理。[0083]体现这里描述的任何一种或全部方法的一组计算机可执行指令(即,计算机程序代码)完全或至少部分地位于机器可读介质(例如,主存储器106)中或位于所述机器可读介质上。主存储器106托管用于功能实体的计算机程序代码,诸如包括用于接收并且处理数据库请求的功能的数据库请求处理108以及数据处理功能109。可通过网络接口装置103经互联网或经用户接口102进一步发送或接收所述指令作为传播信号。经总线104执行计算机器内的通信。计算机器100的基本操作由操作系统控制,所述操作系统也位于主存储器106、所述至少一个处理器101和/或静态存储器105中。[0084]通常,被执行以实现实施例的例程(无论是实现为操作系统的一部分还是实现为特定应用、部件、程序、对象、模块或指令序列甚至其子集)可在这里被称为“计算机程序代码”或简单地称为“程序代码”。程序代码通常包括计算机可读指令,所述计算机可读指令在各种时间常驻在计算机中的各种存储器和存储装置中,并且当所述计算机可读指令由计算机中的一个或多个处理器读取并且执行时,所述计算机可读指令使计算机执行执行体现本发明的实施例的各种方面的操作和/或元件所需的操作。用于执行本发明的实施例的操作的计算机可读程序指令可以是例如汇编语言或者按照一种或多种编程语言的任何组合编写的源代码或目标代码。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表