用于数据的高效重新分区的通信制造技术

技术编号:16049007 阅读:32 留言:0更新日期:2017-08-20 08:43
提供了一种用于使用经调度的网络通信来高效地将数据重新分区的方法。给定定义要在多个服务器节点之间发送的数据块的重新分区数据,对应的网络调度表被确定以便以协调的方式发送数据块。网络调度表被划分为时隙,其中多个服务器节点中的每个服务器节点在每个时隙中可以发送最多一个数据块以及接收最多一个数据块。通过使用优先化最大发送者和最大接收者的贪婪选择算法,即使存在严重偏斜,也可以确定近似最佳的调度表。贪婪选择算法可以用O(T*N^2)时间复杂度实现,从而实现扩展到具有许多服务器节点的大型多节点集群。网络调度表是需要对关于不同键的运算符进行重新分区的数据库执行计划特别感兴趣的。

【技术实现步骤摘要】
【国外来华专利技术】用于数据的高效重新分区的通信
本公开涉及网络通信,并且更具体地涉及为数据的高效重新分区确定网络调度表。
技术介绍
当在分布式多节点系统中评估分析查询时,常常会出现将数据重新分发或重新分区的需要。例如,在数据库系统的上下文中,需要对不同的键进行连接(join)和聚合操作的分析查询将受益于数据的重新分区,以便最佳地处理对不同键的每个操作。此外,如果对于特定运算符的数据分发朝某些节点严重偏斜,则可以通过将数据重新分区以跨多节点系统重新平衡工作负载来提高性能。虽然重新分区允许在分布式多节点系统中更高效地处理数据,但是因为需要以多对多的方式在节点之间交换大量的数据,所以重新分区本身会增加处理开销。重新分区的复杂性还随着节点数量的增加而增加。可以使用非阻塞的、高带宽的互连(诸如InfiniBand(无限带宽))来加速重新分区。然而,即使使用适当的高速互连,重新分区也仍然可能占整个查询执行时间的50-60%。基于上述,存在对用于优化分布式多节点系统中的数据重新分区的方法的需要。本节中描述的方法是可以被追寻的方法,但不一定是以前已经构想或追寻的方法。因此,除非另有指示,否则不应当假设本节中描述的任何方法仅仅因为被包含在本节中而成为现有技术。附图说明在附图的图中以示例的方式而非限制的方式示出了本专利技术,并且附图中相似的附图标记指代相似的元件,在附图中:图1A是绘出用于在多个服务器节点之间进行数据重新分区的示例系统的框图;图1B是绘出根据实施例的用于在多个服务器节点之间进行数据重新分区的示例系统的框图;图1C是绘出根据实施例的示例重新分区数据的矩阵表示的框图;图1D、图1E和图1F是绘出基于图1C的重新分区数据来将数据重新分区的示例网络调度表的框图;图2A是绘出根据实施例的用于为数据的高效重新分区构建网络调度表的过程的框图;图2B是绘出根据实施例的图1F的网络调度表的填充的框图;图3是其上可以实现实施例的计算机系统的框图。具体实施方式在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对本专利技术的透彻理解。然而,将明显的是,可以在没有这些具体细节的情况下实践本专利技术。在其它实例中,公知的结构和设备以框图的形式示出,以避免不必要地使本专利技术模糊。总体概述在实施例中,提供了用于使用经调度的网络通信来将数据高效地重新分区的改进方法。给定定义要在多个服务器节点之间发送的数据块的重新分区数据,对应的网络调度表(schedule)被确定,以便以协调的方式发送数据块。网络调度表被划分为时隙(timeslot),其中多个服务器节点中的每个服务器节点可以在每个时隙中发送多达一个数据块以及接收多达一个数据块。通过使用首先优先化具有要发送的最大数量的数据块的发送者节点、其次优先化具有要接收的最大数量的数据块的最大接收者节点的贪婪选择算法,可以确定近似最佳调度表。此外,通过优先化具有要发送或接收的最大量的数据的节点,贪婪选择算法特别适用于朝特定节点严重偏斜的重新分区。通过使用为发送者和接收者维护的经排序的列表实现贪婪选择算法而带来最小的计算开销。在确定网络调度表之后,数据重新分区可以根据该网络调度表继续进行。用于使用近似最佳网络调度表将数据重新分区的这种改进的方法可以显著减少完成重新分区所需的时间。此外,与在O(N^4)时间内运行的最优解相比,贪婪选择算法可以利用O(T*N^2)的时间复杂度来实现,其中T是用于网络调度表的时隙的总数,N是通信节点的数量。因此,这种方法与扩展到具有许多服务器节点的大型多节点集群特别相关。数据库系统本专利技术的实施例在DBMS的上下文中使用。因此,对DBMS的描述是有用的。DBMS管理数据库。DBMS可以包括一个或多个数据库服务器。数据库包括存储在持久性存储器机构(诸如硬盘集合)上的数据库数据和数据库字典。数据库数据可以被存储在一个或多个数据容器中。每个容器包含记录。每个记录内的数据被组织成一个或多个字段。在关系DBMS中,数据容器被称为表,记录被称为行,并且字段被称为列。在面向对象的数据库中,数据容器被称为对象类,记录被称为对象,记录在本文中还被称为对象记录,并且字段被称为属性。其它数据库架构可以使用其它术语。用户通过向数据库服务器提交使得数据库服务器对存储在数据库中的数据执行操作的命令来与DBMS的数据库服务器交互。用户可以是运行在客户端计算机上与数据库服务器交互的一个或多个应用。本文中多个用户还可以被统称为用户。数据库命令可以是符合数据库语言的数据库语句的形式。用于表达数据库命令的数据库语言是结构化查询语言(SQL)。存在很多不同版本的SQL,一些版本是标准的,一些版本是专有的,并且存在各种扩展。数据操纵语言(“DML”)语句是在表中检索或操纵数据的SQL语句。DML语句是最常用的SQL语句。数据定义语言(“DDL”)命令被发给数据库服务器,以创建或配置数据库对象,诸如表、视图或复杂数据类型。SQL/XML是在对象-关系数据库中操纵XML数据时使用的SQL的常见扩展。多节点数据库管理系统由共享对同一数据库的访问的互连节点组成。通常,节点经由网络互连并且以不同的程度共享对共享存储装置的访问,例如,对一组盘驱动器和存储在其上的数据库块的共享访问。多节点数据库系统中的节点可以是经由网络互连的一组计算机(例如,工作站、个人计算机)的形式。可替代地,节点可以是网格的节点,该网格由以与机架上的其它服务器刀片互连的服务器刀片的形式的节点组成。多节点数据库系统中的每个节点托管数据库服务器。服务器(诸如数据库服务器)是集成的软件组件和计算资源分配的组合,其中计算资源诸如存储器、节点和节点上的用于在处理器上执行集成的软件组件的进程,软件和计算资源的组合专用于代表一个或多个客户端执行特定的功能。来自多节点数据库系统中的多个节点的资源可以被分配以运行特定数据库服务器的软件。软件和来自节点的资源分配的每个组合是在本文中被称为“服务器实例”或“实例”的服务器。数据库服务器可以包括多个数据库实例,这些数据库实例中的一些或全部在分开的计算机(包括分开的服务器刀片)上运行。系统概述图1A是绘出用于在多个服务器节点之间进行数据重新分区的示例系统的框图。图1A的系统100包括服务器节点110A、服务器节点110B、服务器节点110C、服务器节点110D、互连120A、互连120B、互连120C、互连120D和网络180。为了支持具有大量记录和事务的数据密集型应用,可以使用图1A中的服务器节点110A-110D来实现多节点数据库系统。对于诸如表连接和聚合之类的某些数据库操作,为了并行处理而在多个服务器节点之间(例如通过指派节点基于由数据库操作使用的键来处理某些键范围)将数据工作负载重新分区可能是高效的。对于每次重新分区,可能需要在服务器节点110A-110D之间经网络180交换大量数据。在详细描述重新分区过程之前,首先建立如在本申请中使用的“时隙”的概念会是有帮助的。每个调度表可以依据顺序时隙来定义。时隙定义一段时间,在该段时间中每个服务器节点可以从网络发送或接收多达设置量的数据。该设置量的数据被称为数据块;数据块大小可以根据应用、硬件或网络规范来设置。因此,每个时隙的长度可以依赖于所选择的数据块大小和网络180的性能特性,其中网络18本文档来自技高网...
用于数据的高效重新分区的通信

【技术保护点】
一种方法,包括:接收重新分区数据,所述重新分区数据为多个服务器节点中的每个服务器节点描述要发送到所述多个服务器节点中的每个服务器节点的数据块的数量;通过使用所述重新分区数据按照要发送的数据块的总数对所述多个服务器节点进行降序排序来确定所述多个服务器节点的发送者次序;按所述发送者次序填充包括多个时隙的网络调度表,其中所述多个时隙中的每个时隙为所述多个服务器节点中作为发送者节点的每个服务器节点指定所述多个服务器节点中的最多一个接收者节点,以经网络发送数据块,其中所述多个时隙中的每个时隙指定特定节点不多于一次,以及其中所述最多一个接收者节点是至少基于根据所述重新分区数据具有要由所述发送者节点接收的最大可能数量的数据块来指定的;使得所述多个服务器节点根据所述网络调度表来重新分区;以及其中所述方法由一个或多个计算设备执行。

【技术特征摘要】
【国外来华专利技术】2015.05.13 US 14/711,6171.一种方法,包括:接收重新分区数据,所述重新分区数据为多个服务器节点中的每个服务器节点描述要发送到所述多个服务器节点中的每个服务器节点的数据块的数量;通过使用所述重新分区数据按照要发送的数据块的总数对所述多个服务器节点进行降序排序来确定所述多个服务器节点的发送者次序;按所述发送者次序填充包括多个时隙的网络调度表,其中所述多个时隙中的每个时隙为所述多个服务器节点中作为发送者节点的每个服务器节点指定所述多个服务器节点中的最多一个接收者节点,以经网络发送数据块,其中所述多个时隙中的每个时隙指定特定节点不多于一次,以及其中所述最多一个接收者节点是至少基于根据所述重新分区数据具有要由所述发送者节点接收的最大可能数量的数据块来指定的;使得所述多个服务器节点根据所述网络调度表来重新分区;以及其中所述方法由一个或多个计算设备执行。2.如权利要求1所述的方法,其中所述最多一个接收者节点是通过遍历用于所述发送者节点的接收者的经排序的列表来指定的,其中所述接收者的经排序的列表按照要由所述发送者节点接收的数据块的降序被维护。3.如权利要求2所述的方法,其中所述遍历使用为所述多个时隙中的每个时隙维护的位掩码,以确保所述多个时隙中的每个时隙指定特定节点不多于一次。4.如权利要求1所述的方法,其中所述最多一个接收者节点是基于利用所述最多一个接收者节点填充相邻的时隙来指定的。5.如权利要求1所述的方法,其中所述重新分区数据用于从对于第一键的第一数据库运算符转变到对于第二键的第二数据库运算符。6.如权利要求1所述的方法,其中所述一个或多个计算设备包括协调器服务器。7.如权利要求1所述的方法,其中所述数量的数据块中的每个数据块的大小和所述多个时隙中的每个时隙的长度...

【专利技术属性】
技术研发人员:S·伊蒂库拉A·巴斯安特V·阿格尔沃S·沃尔夫N·阿格尔沃
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国,US

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

1