用于查询资源高速缓存的系统和方法技术方案

技术编号:22978628 阅读:59 留言:0更新日期:2020-01-01 00:52
操作包括基于查询的执行时间来判定是否将该查询所访问的资源进行高速缓存。系统识别同一查询的执行集。系统为同一查询的执行集确定累积执行时间。如果累积执行时间超过阈值,则系统将用于执行该查询的资源进行高速缓存。

System and method for querying resource cache

【技术实现步骤摘要】
【国外来华专利技术】用于查询资源高速缓存的系统和方法
本公开涉及资源高速缓存。特别地,本公开涉及选择性地将由查询访问的资源进行高速缓存。权益声明本申请要求于2017年5月19日提交的编号为美国非临时申请15/600,518的权益和优先权,该申请通过引用并入本文。
技术介绍
高速缓存可以指用于存储数据的硬件和/或软件。从高速缓存中检索数据通常比从硬盘或远离执行环境的任何存储系统中检索数据更快。最常见的是,高速缓存存储最近使用的数据。高速缓存可以存储被存储在另一个位置的数据的副本,和/或存储计算的结果。基于web的高速缓存也是常见的,其中服务器和客户端之间的web高速缓存存储数据。客户端可以比服务器中的数据更快地从web高速缓存访问数据。查询从数据库中获取指定的数据。通常,数据存储在关系数据库中。关系数据库将数据存储在一个或多个表中。这些表由数据行组成,并组织成字段或列。例如,“FirstName”和“LastName”是数据表的字段,并且其中行的数量是存储到表的名字的数量。结构化查询语言(SQL)是用于管理关系数据库中数据的语言。SQL查询基于指定的准则来检索数据。大多数SQL查询使用检索数据的语句SELECT(选择)。然后,SQL查询可以指定准则,诸如FROM(来自)-哪些表包含数据;JOIN(联接)-指定连接表的规则;WHERE(哪里)-限制由查询返回的行;GROUPBY(分组)–聚合重复的行;以及ORDERBY(排序)-指定数据排序的次序。例如,SQL查询“SELECTbreed,age,nameFROMDogsWHEREage<3ORDERBYbreed”将通过品种按字母顺序从“Dogs”表中返回3岁以下的狗的列表,从而检索每只狗的品种、年龄和名字。输出看起来像:“Bulldog1Max|CockerSpaniel2Joey|GoldenRetriever1.5Belinda”。越来越多地使用多租户云体系架构存储数据库。在多租户云体系架构中,使用共享资源存储来自不同租户的数据。共享资源可以是服务器、数据库和/或表的全部或部分的某种组合。多租户减少了存储数据所需的资源量,从而节省了成本。本部分中描述的方法是可以追求的方法,但不一定是先前已经构思或追求的方法。因此,除非另有说明,否则不应认为本部分中描述的任何方法仅仅因为它们包含在本部分中就有资格作为现有技术。附图说明通过示例而非限制的方式在附图中示出了实施例。应当注意的是,在本公开中对“一”或“一个”实施例的引用不一定是指同一实施例,并且它们意味着至少一个。在附图中:图1图示了根据一个或多个实施例的资源高速缓存系统;图2图示了根据一个或多个实施例的用于通过查询进行选择性高速缓存的示例操作集;图3图示了根据一个或多个实施例的用于通过资源进行选择性高速缓存的示例操作集;图4图示了根据一个或多个实施例的用于通过JOIN进行选择性高速缓存的示例操作集;图5图示了根据一个或多个实施例的系统的框图。具体实施方式在以下描述中,出于解释的目的,阐述了许多具体细节以提供透彻理解。可以在没有这些具体细节的情况下实践一个或多个实施例。在一个实施例中描述的特征可以与在不同实施例中描述的特征组合。在一些示例中,参考框图形式描述了众所周知的结构和设备,以避免不必要地模糊本专利技术。1.总体概述2.资源高速缓存系统3.基于查询的资源高速缓存4.基于资源使用的资源高速缓存5.基于操作的资源高速缓存6.示例实施例-聚合查询7.其它事项;扩展8.硬件概述1.总体概述一个或多个实施例包括选择性地将由查询访问的资源进行高速缓存。可以响应于资源的原始副本被更新而连续地或周期性地更新高速缓存的资源。维护高速缓存中的最新资源允许通过访问高速缓存中的资源而不是从盘或其它主存储装置访问资源来执行查询。可以至少基于对应查询的执行时间来选择用于高速缓存的资源。在示例中,如果查询的执行的执行时间超过阈值,则将查询所访问的资源进行高速缓存,以供将来执行同一查询。一个或多个实施例包括基于查询的执行的累积执行时间来高速缓存查询所访问的资源。高速缓存引擎可以在初始时间段期间确定用于查询的执行的累积执行时间。高速缓存引擎还可以基于查询的执行的累积执行时间来判定是否要将在查询的执行期间要被访问的资源进行高速缓存。在初始时间段之后,可以在另一个时间段内将资源进行高速缓存。高速缓存引擎可以使用任何方法基于对应查询的累积执行时间来确定要将哪些资源进行高速缓存。在示例中,如果在初始时间段期间查询的累积执行时间超过阈值,则在后续的时间段内将查询所访问的资源进行高速缓存。在另一个示例中,基于累积执行时间对查询进行排名。将用于具有最长累积执行时间的n个查询的资源进行高速缓存。一个或多个实施例包括至少基于查询的执行的子集的执行时间来将查询所访问的资源进行高速缓存。将在初始时间段期间查询的每次执行的执行时间与阈值进行比较。如果任何特定执行的执行时间超过阈值,则该特定执行被确定为在计算上昂贵的执行。如果查询的计算上昂贵的执行时间超过阈值,则在后续的时间段内将用于该查询的资源进行高速缓存。本说明书中描述的和/或权利要求书中阐述的一个或多个实施例可以不包括在这个总体概述部分中。2.资源高速缓存系统图1图示了根据一个或多个实施例的资源高速缓存系统100。资源高速缓存系统100是用于选择和高速缓存为执行查询而访问的资源(在本文中可以被称为由查询访问的资源)的系统。资源高速缓存系统100包括查询接口102、高速缓存引擎104、高速缓存124、查询执行引擎122和数据储存库110。在一个或多个实施例中,资源高速缓存系统100可以包括比图1所示的部件更多或更少的部件。图1所示的部件可以在彼此的本地或彼此远离。图1所示的部件可以以软件和/或硬件来实现。每个部件可以分布在多个应用和/或机器上。多个部件可以组合到一个应用和/或机器中。相对于一个部件描述的操作可以替代地由另一个部件执行。在一个或多个实施例中,查询接口102是包括接受定义查询的输入的功能的接口。查询接口102可以是用户接口(UI),诸如图形用户接口(GUI)。查询接口可以呈现接受描述查询的查询简档的用户可修改字段。查询接口102可以包括接受和解析定义一个或多个查询的文件的功能。查询接口可以在查询的执行之后显示查询输出数据。在实施例中,查询执行引擎122包括用于执行查询的硬件和/或软件部件。查询执行引擎122可以解析从查询接口接收的查询简档。查询执行引擎122可以将经解析的查询简档映射到SQL查询。查询执行引擎122可以将SQL查询发送到(一个或多个)适当的数据库以检索查询结果。查询执行引擎122可以对数据求和、对数据求平均,并全部或部分地组合表。在实施例中,高速缓存124与存储数据的硬件和/或软件部件对应。存储在高速缓存124中的数据通常可以比存储在盘上、主存储器上或远本文档来自技高网...

【技术保护点】
1.一种包括指令的非暂态计算机可读介质,所述指令在由一个或多个硬件处理器执行时,使得执行包括以下的操作:/n识别在第一时间段期间同一特定查询的多次执行;/n通过聚合所述多次执行的每次执行的执行时间,计算在第一时间段期间所述特定查询的所述多次执行的累积执行时间;/n确定在第一时间段期间所述特定查询的累积执行时间超过第一阈值;/n响应于所述确定操作:在第二时间段内将用于执行所述特定查询的资源进行高速缓存。/n

【技术特征摘要】
【国外来华专利技术】20170519 US 15/600,5181.一种包括指令的非暂态计算机可读介质,所述指令在由一个或多个硬件处理器执行时,使得执行包括以下的操作:
识别在第一时间段期间同一特定查询的多次执行;
通过聚合所述多次执行的每次执行的执行时间,计算在第一时间段期间所述特定查询的所述多次执行的累积执行时间;
确定在第一时间段期间所述特定查询的累积执行时间超过第一阈值;
响应于所述确定操作:在第二时间段内将用于执行所述特定查询的资源进行高速缓存。


2.如权利要求1所述的介质,其中所述资源是表。


3.如权利要求1所述的介质,其中所述操作还包括以下中的一个或多个:
确定所述特定查询的执行的至少子集的执行时间超过第二阈值;
其中响应于确定所述特定查询的执行的至少子集的执行时间超过第二阈值而执行所述计算操作;或者
确定所述特定查询的执行的子集数量超过第二阈值;
其中基于所述特定查询的执行的子集数量超过第二阈值来执行所述计算操作。


4.如权利要求1所述的介质,其中所述操作还包括以下中的一个或多个:
响应于所述确定操作,保留高速缓存的资源;或者
确定所述特定查询的执行的至少子集的执行时间超过第二阈值;
响应于确定所述特定查询的执行的至少子集的执行时间超过第二阈值,将所述特定查询的超过第二阈值的执行的子集中每次执行的日志存储到数据表;以及
使用来自所述数据表的同一特定查询的执行来执行所述计算操作。


5.如权利要求1所述的介质,其中确定所述特定查询的第一执行的执行时间包括:
确定在发送执行所述特定查询的请求与从所述特定查询的执行中接收结果之间的时间段。


6.如权利要求1所述的介质,其中经由存储的查询数据字段的表来识别同一特定查询。


7.一种包括指令的非暂态计算机可读介质,所述指令在由一个或多个硬件处理器执行时,使得执行包括以下的操作:
识别在第一时间段期间对特定资源的多个查询的一次或多次执行;
通过聚合所述多个查询的所述一次或多次执行的执行时间,计算在第一时间段期间所述特定资源的累积执行时间;
确定在第一时间段期间所述特定资源的累积执行时间超过第一阈值;
响应于所述确定操作:在第二时间段内将所述特定资源进行高速缓存。


8.如权利要求7所述的介质,其中所述特定资源是表。


9.如权利要求7所述的介质,其中所述操作还包括以下中的一个或多个:
确定对所述特定资源的所...

【专利技术属性】
技术研发人员:O·伊戈纳耶夫M·米哈伊洛夫
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1