当前位置: 首页 > 专利查询>SAP股份公司专利>正文

使用异步缓冲器的多核查询处理制造技术

技术编号:7026037 阅读:360 留言:0更新日期:2012-04-11 18:40
一种系统可包括:缓冲器监视器,被配置来监视在查询任务在处理期间所使用的缓冲器的缓冲器内容,其中查询任务的写任务将数据写入缓冲器,以及查询任务的读任务从缓冲器读取数据,缓冲器具有缓冲器容量。系统可包括阈值管理器,被配置来将所述缓冲器内容与相对于缓冲器容量而定义的低阈值和高阈值进行比较;以及速度控制器,被配置来相对于当前正执行查询任务的读任务的数目来控制写任务的数目,以由此将缓冲器内容维持在低阈值和高阈值之间。

【技术实现步骤摘要】

本说明书涉及使用异步缓冲器的多核查询处理
技术介绍
可通过使用多个核来以并行或重叠方式执行数据密集型(data-intensive)计算操作,来以快速且高效的方式执行这种计算操作。例如,可针对关系数据库来执行查询,并且可使用一对核中的每一个来搜索该关系数据库的一半,由此获得总体的数据库的查询结果。更一般地,可通过定义(一个或多个)计算操作的子部分并向每一个子部分分配一个或多个可用核,来并行地使用任何数目的可用核。例如,可以通过划分要被查询的数据并/ 或通过定义(一个或多个)整个计算操作的各个子任务,来定义这些子部分。由此,在特定类型的计算操作中,可能有必要或者有利的是,通过定义查询的子任务来执行或者处理该查询,使得该查询的每个子任务具有中间的输入和输出,而(一个或多个)最终子任务输出最终的查询结果。在这样的情况下,可能常常出现的是,一定量和/ 或类型的正被查询的数据以及/或者一定量和/或类型的所期望的(一个或多个)查询结果可能受益于在查询处理期间在缓冲器中存储中间输出。例如,对于非常大量的数据,在所期望的时间帧内将数据从一个存储位置移动到另一存储位置是不现实或者不可能的。因此,相反,查询子任务可以写中间结果,作为向缓冲器的输出,且随后的查询子任务可以读这些中间的结果作为来自缓冲器的输入。以此方式,这些中间数据可以在处理期间停留在缓冲器中。有问题的是,可能出现下述情况,中间结果被写入缓冲器中的速度比可从其中读取中间结果的速度更快(或更慢)。在这样的情况下,随着时间流逝,缓冲器可能变为全满或全空。在这样的情况下,专用于相关处理的核可能变空闲,并且/或者可能从写入缓冲器切换为从其中读取(或反之)。然而,空闲的核的出现和/或查询子任务之间的核的过多切换的出现通常与查询处理中的低效以及获得最终查询结果的降低的速度有关。
技术实现思路
根据一个总体方面,系统可包括在计算机可读介质上记录的可由至少一个处理器执行的指令,该系统包括缓冲器监视器,被配置来使得至少一个处理器监视在查询任务在处理期间所使用的缓冲器的缓冲器内容,其中查询任务的写任务将数据写入缓冲器,以及查询任务的读任务从缓冲器读取数据,缓冲器具有缓冲器容量;阈值管理器,被配置来使得至少一个处理器将缓冲器内容与相对于缓冲器容量而定义的低阈值和高阈值进行比较;以及速度控制器,被配置来使得至少一个处理器相对于当前正执行查询任务的读任务的数目来控制写任务的数目,以由此将缓冲器内容维持在低阈值和高阈值之间。实现方式可包括以下特征中的一个或多个。例如,缓冲监视器可被配置来使得至少一个处理器相对于在缓冲器中的空白存储器块的数目来对填充存储器块的数目进行计数。阈值管理器可包括被配置来使得至少一个处理器确定缓冲器内容是否低于低阈值或高于高阈值的阈值比较器。阈值管理器可包括阈值调整器,被配置来使得至少一个处理器相对于写任务的数目和/或读任务的数目以及相对于缓冲器的空白和/或填充存储器块的数目来调整高阈值和低阈值。速度控制器可被配置来使得工作负载管理器使得至少一个处理器通过重新分配处理写任务和读任务的核而控制读任务和写任务的速度。速度控制器可被配置来使得工作负载管理器使得至少一个处理器在缓冲器内容高于高阈值时,将核从至少一个写任务分配到至少一个读任务,由此停止至少一个写任务并由此激活至少一个读任务。速度控制器可被配置来使得工作负载管理器使得至少一个处理器在缓冲器内容低于低阈值时,将核从至少一个读任务分配到至少一个写任务,由此停止至少一个读任务并由此激活至少一个写任务。工作负载管理器可被配置来使得至少一个处理器在查询任务中的多个缓冲器和与其相关的写和读任务之间关联。查询任务可包括至少一个缓冲器序列,以及其中工作负载管理器可以被配置来使得至少一个处理器实现流水线(pipeline)激励模式,包括将来自可用核的核分配到与至少一个缓冲器序列的每个缓冲器相关联的至少一个任务。查询任务可包括至少一个缓冲器序列,以及工作负载管理器可被配置来使得至少一个处理器实现局部(locale)激励模式,包括将来自可用核的核分配到缓冲器序列的第一选择缓冲器的任务,直到达到用于实现第一选择缓冲器的任务的最大数的核,然后将来自可用核的剩余处理器核分配到缓冲器序列的第二选择缓冲器的任务。查询任务可被表示为有向无环图,其中缓冲器是多个缓冲器之一,以及写任务和读任务被包括在多个任务中,以及其中多个缓冲器和多个任务是有向无环图的节点。根据另一总体方面,由至少一个处理器实现的方法可包括使用至少一个处理器监视在查询任务在处理期间所使用的缓冲器的缓冲器内容,其中查询任务的写任务将数据写入缓冲器,以及查询任务的读任务从缓冲器读取数据,缓冲器具有缓冲器容量。该方法还可以包括使用至少一个处理器将缓冲器内容与相对于缓冲器容量而定义的低阈值和高阈值进行比较;以及使用至少一个处理器相对于当前正执行查询任务的读任务的数目来控制写任务的数目,以由此将缓冲器内容维持在低阈值和高阈值之间。实现方式可包括以下特征中的一个或多个。例如,该比较可包括确定缓冲器内容是否低于低阈值或高于高阈值。该方法可包括相对于写任务的数量和/或读任务的数目以及相对于缓冲器的空白和/或填充存储器块的数目来调整高阈值和低阈值。该控制可包括通过重新分配处理写任务和读任务的核而控制读任务和写任务的速度。该方法可包括在查询任务中的多个缓冲器和与其相关的写和读任务之间关联。根据另一总体方面,计算机程序产品可被有形地实施在计算机可读存储介质上并且可包括在被执行时被配置来使得至少一个处理器进行如下步骤的指令监视在查询任务在处理期间所使用的缓冲器的缓冲器内容,其中查询任务的写任务将数据写入缓冲器,以及查询任务的读任务从缓冲器读取数据,缓冲器具有缓冲器容量;将缓冲器内容与相对于缓冲器容量而定义的低阈值和高阈值进行比较;以及相对于当前正执行查询任务的读任务的数目来控制写任务的数目,以由此将缓冲器内容维持在低阈值和高阈值之间。实现方式可包括以下特征中的一个或多个。例如,指令在被执行时可使得至少一个处理器比较缓冲器内容包括确定缓冲器内容是否低于阈值或高于高阈值。指令在被执行时可使得至少一个处理器通过重新分配处理写任务和读任务的核而控制读任务和写任务的速度。指令在被执行时还可使得至少一个处理器在查询任务中的多个缓冲器和与其相关的写和读任务之间关联。在附图和以下描述中阐述一个或多个实现方式的细节。根据描述和附图以及根据权利要求将清楚其他特征。附图说明图1是使用异步缓冲器的多核查询处理的系统的框图。图2是例示了图1的系统的示例操作的流程图。图3是由图1的系统处理的查询任务的更详细的例子的框图。图4是由图1的系统中使用的示例缓冲器结构的框图。图5是例示了当使用图1的系统来处理查询任务时在查询任务之间切换核的示例操作的流程图。图6是用于使用图1的系统在查询任务的多个缓冲器之间分配核的第一示例操作的流程图。图7是用于使用图1的系统在查询任务的多个缓冲器之间分配核的第二示例操作的流程图。具体实施例方式图1是使用异步缓冲器的多核查询处理的系统100的框图。在图1的例子中,查询处理器102使用多个核106来执行查询任务104。更具体地,如上所述,查询处理器102 一般可操作为通过将核106中的各本文档来自技高网
...

【技术保护点】
1.一种包括能由至少一个处理器执行的在计算机可读介质上记录的指令的系统,该系统包括:缓冲器监视器,被配置来使得所述至少一个处理器监视在查询任务在处理期间所使用的缓冲器的缓冲器内容,其中所述查询任务的写任务将数据写入所述缓冲器,以及所述查询任务的读任务从所述缓冲器读取数据,所述缓冲器具有缓冲器容量;阈值管理器,被配置来使得所述至少一个处理器将所述缓冲器内容与相对于所述缓冲器容量而定义的低阈值和高阈值进行比较;以及速度控制器,被配置来使得所述至少一个处理器相对于当前正执行所述查询任务的读任务的数目来控制所述写任务的数目,以由此将所述缓冲器内容维持在所述低阈值和所述高阈值之间。

【技术特征摘要】

【专利技术属性】
技术研发人员:闫剑锋黎文宪
申请(专利权)人:SAP股份公司
类型:发明
国别省市:DE

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

1