包含大规模低功率集群的异构数据库系统中的联接的有效下推的制作方法_2

文档序号:8399327阅读:来源:国知局
,带来Cl成本。最后,在将分割关系发送回集群时,带来C2成本。
[0038]避免分割成本
[0039]在某些情况下,系统可通过以有利的方式将关系的部分预先分布到集群的处理单元中来避免与集群中的处理联接相关的成本中的一些。一种可将数据预先分布到集群中的方式依赖于应用的访问模式。另一方式依赖于处理单元如何与集群中的开关连接。
[0040]在根据应用的访问模式分布数据的情况下,以共同定位不同表的相应分割的方式分布数据。可通过在表之间使用基准约束或者通过将分割键(key)为同一类型的所有表分组,找到组在一起的表。例如,如果存储分割是跨着两个处理单元分开,那么对分割键为同一类型的所有表使用相同的分开值(split value)。该技术确保,对于联接列与分割键相同的联接,表已被分割并且方便地驻留于适当的处理单元中。
[0041 ] 在基于集群中的开关的配置分布数据的情况下,仍可在与集群中的共用开关连接的节点组之间复制不能在每个节点上复制的表。与共用开关连接的处理单元具有用于相互通信的更大带宽。当需要执行联接时,仅需要在与共用开关连接的一组单元内完成数据的分割和重新分布。在具有大量处理单元的集群的情况下,基于开关配置分布数据是特别有利的。
[0042]如上所述,当集群参与数据库操作时,RDBMS中的并行度和事务一致性受到影响。
[0043]RDBMS中的并行度
[0044]由于集群可对RDBMS执行重要的查询处理,因此,在一个实施例中,RDBMS根据集群正在执行的工作量调整并行查询处理或线程的数量。如果完全在集群中处理联接,那么各并行查询处理或线程仅处理与集群中的单元的通信。具体而言,RDBMS从处理单元获得结果并且使它们流动到在查询方面执行其它操作的其它并行查询处理。在这种情况下,分配到各处理的处理单元的数量(由此,并行度)依赖于联接结果的估计尺寸和处理单元有望处理联接的速率。RDBMS中的处理或线程被配置为以产生结果的速率处理来自处理单元的结果。
[0045]在分块操作参与联接的情况下,并行度被设定以有效地合并分块操作的结果并然后在集群中的单元之间分割它。这种情况下的并行度以与分类操作的合并阶段类似的方式被设定。RDBMS中的各处理需要能够合并发送给它的结果而不变为瓶颈以及参与所有处理之间的最终合并。在运行时间,各处理单元首先发送其结果尺寸,并且,基于尺寸的分布,在RDBMS处理之间划分单元以使负载均衡化。
[0046]事务一致性
[0047]在图5所示的异构系统中,RDBMS保留事务一致性。使用其对图5中的事务记录502的访问,RDBMS 504采取几个步骤以确保当具有处理单元508a_j的集群510参与事务时的事务一致性。
[0048]首先,在集群执行查询之前,RDBMS 504确保从保持这些项目的数据的任何写入缓冲器更新受查询影响的项目。
[0049]第二,RDBMS 504确保集群仅处理具有不比查询自身的快照标识符晚的快照标识符的块中的行。如图6所示,具有比查询的快照标识符晚的标识符的任何块作为未处理的块被发送到RDBMS,这里,未处理的块包含关系402中的行610和关系404中的行612。
[0050]第三,提供RDBMS 504中的机制,以处理诸如包括610、612的那些的任何未处理块。机制包含允许RDBMS 504对给定的一组块执行部分评估的增强。在其树包含表扫描行源的查询计划的情况下,增强仅扫描给定的块。分组和分类行源在该增强上构建合并该部分评估与来自集群的评估。
[0051]在包含联接行源的查询计划的情况下,如果需要的话,其子行源均首先通过一组未处理块(诸如包含用于各基础表402,404的行610、612的那些未处理块)以及来自集群的操作的结果被初始化。RDBMS 504通过计算部分结果的Bloom过滤器跟踪两个子行源的部分结果(称为“增量(delta)”),然后它将该部分结果发送到集群中的处理单元。处理单元使用Bloom过滤器以确定集群中的联接匹配的数量。如果在集群中存在少量的匹配行(与来自子行源中的一个子行源的行对应),那么匹配行连同联接结果被发送到RDBMS504。RDBMS 504然后计算与delta和它们的匹配行对应的联接结果。如果在集群中的所有单元上存在大量的匹配行并且匹配行的尺寸大于相应delta的尺寸,那么RDBMS 504向集群中的所有处理单元广播delta。与delta对应的联接结果然后通过集群中的处理单元被计算并然后被送回到RDBMS 504。
[0052]为了决定RDBMS 504是否应处理delta,系统在联接键列上进行Bloom过滤器的效率的估计。基于联接过滤器估计,来估计(从RDBMS 504)发送delta或者(从处理单元)发送匹配行的成本和针对delta处理联接的增加成本。其主要影响在于,如果delta较大,那么完全在RDBMS 504中处理联接通常更好。在大多数数据仓库场景中,delta有望较小(如果不是零),原因是更新不频繁并且是以面向批处理的方式完成的。
[0053]注意,该处理增加联接处理的总成本。在上述的成本模型中,这主要影响在集群中处理联接的成本。成本模型应包含用于联接行源的一致性处理的额外成本,但不包括子行源的一致性处理的成本,原因是RDBMS 504在所有的情况下执行该处理。
[0054]硬件概要
[0055]根据一个实施例,通过一个或更多个专用计算装置实现这里描述的技术。专用计算装置可被硬接线以执行技术,或者可包含被永久编程以执行技术的诸如一个或更多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子器件,或者可包含被编程以根据固件、存储器、其它存储装置或组合中的程序指令执行技术的一个或更多个通用硬件处理器。这种专用计算装置还可以将定制硬接线逻辑、ASIC或FPGA与定制编程进行组合以实现技术。专用计算装置可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或结合硬接线和/或程序逻辑以实现技术的任何其它装置。
[0056]例如,图7是示出可实现实施例的计算机系统700的框图。计算机系统700包含用于传送信息的总线702或其它通信机构和与总线702耦合的用于处理信息的硬件处理器704。硬件处理器704可以例如为通用微处理器。
[0057]计算机系统700还包括与总线702耦合的用于存储信息和要通过处理器704执行的指令的主存储器706,诸如随机存取存储器(RAM)或其它动态存储装置。主存储器706也可用于在执行要通过处理器704执行的指令期间存储临时变量或其它中间信息。这种指令,当存储于处理器704可访问的非暂时性存储介质中时,将计算机系统700转变成被定制以执行在指令中规定的操作的专用机器。
[0058]计算机系统700还包括只读存储器(ROM) 708或与总线702耦合的用于存储静态信息和用于处理器704的指令的其它静态存储装置。存储装置710,诸如磁盘或光盘,被设置并且与总线702耦合以存储信息和指令。
[0059]计算机系统700可通过总线702与用于向计算机用户显示信息的诸如阴极射线管(CRT)的显示器712耦合。用于向处理器704传送信息和命令选择的包含数字字母和其它键的输入装置714与总线702耦合。另一类型的用户输入装置是用于向处理器704传送方向信息和命令选择并且用于控制显示器712上的光标移动的光标控制件716,诸如鼠标、跟踪球或光标方向键。该输入装置一般沿两个轴即第一轴(例如,X)和第二轴(例如,y)具有两个自由度,这两个自由度允许装置规定面中的位置。
[0060]计算机系统700可通过使用与计算机系统组合以导致计算机系统700或者将其编程成为专用机器的定制硬接线逻辑、一个或更多个ASIC或FPGA、固件和/或程序逻辑来实现这里描述的技术。根据一个实施例,响应于执行包含于主存储器706中的一个或更多个指令的一个或更多个序列的处理器704,通过计算机系统700执行这里的技术。这种指令可从诸如存储装置710的另一存储介质被读入到主存储器706中。执行包含于主存储器706中的指令序列导致处理器704执行这里描述的处理步骤。在替代性实施例中,作为软件指令的替代,或者,与软件指令组合,可以使用硬接线电路。
[0061]这里
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1