CN107111653A - 适于并行数据库系统的系统内存负载的查询优化 - Google Patents
适于并行数据库系统的系统内存负载的查询优化 Download PDFInfo
- Publication number
- CN107111653A CN107111653A CN201680004113.6A CN201680004113A CN107111653A CN 107111653 A CN107111653 A CN 107111653A CN 201680004113 A CN201680004113 A CN 201680004113A CN 107111653 A CN107111653 A CN 107111653A
- Authority
- CN
- China
- Prior art keywords
- internal memory
- back end
- query execution
- memory
- execution plan
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
Abstract
一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的方法包括:从包括网络设备的多个数据节点接收内存使用数据;基于所述内存使用数据而计算对应于所述数据节点的代表性内存负载;基于所述所计算的代表性内存负载而对与所述数据节点对应的内存模式进行分类;基于所述内存模式而计算对应于所述数据节点的可用工作内存;基于所述可用工作内存而产生所述数据节点的所述查询执行计划,其中所述内存使用数据是基于与所述数据节点相关联的监测单个内存负载,且所述查询执行计划对应于所述当前可用工作内存。
Description
相关申请案交叉申请
本发明要求于2015年2月25日递交的发明名称为“适于并行数据库系统的系统内存负载的查询优化”的第14/631,074号美国非临时专利申请案的在先申请优先权,所述在先申请的内容以引入的方式并入本文。
技术领域
本发明大体涉及数据库,更具体地,涉及基于系统内存负载而适应性地对并行数据库查询执行计划进行优化。
背景技术
数据库系统用于存储信息及关系数据,所述关系数据可被查询用来找出单个信息、相关信息或各条信息之间的关系。典型的并行数据库系统包括一个协调器节点或多个协调器节点、以及通过网络互连的多个数据处理节点。
一般而言,协调器节点形成系统的前端,所述前端通过同一网络或另一网络而与客户端系统对接并与数据处理节点协调。通常,并行数据库客户端将查询提交至协调节点或协调器,所述协调节点或协调器继而将所述查询派遣至数据节点进行执行。
在一些现有的分布式并行数据库系统(例如,大规模并行处理(massivelyparallel processing,简称MPP)数据库系统)中,多个协调器节点与多个数据节点一起形成计算系统集群。在分布式数据库系统中,数据库的表通常被划分成多个区段或被分区,且所得的分区存在于所述集群的多个数据节点上。
一般而言,在传统单节点非分布式关系数据库管理系统及分布式关系数据库管理系统中,当数据库从客户端接收到查询(例如,结构化查询语言(structured querylanguage,简称SQL)查询)时,数据库系统编译所述查询,创建查询执行计划,对所述查询执行计划进行优化,并执行所述查询执行计划。所述数据库系统然后产生查询结果,并将所述结果发回至客户端。
在典型并行数据库系统中,由协调器节点进行所述查询计划编译及优化,且所述查询在所有节点上并行执行。在接收到查询时,协调器调用查询编译器来基于所述查询创建语义树。利用全局目录中的聚合统计如同所述数据库在单个计算机上运行般对所述查询进行解析。协调器然后调用查询规划器,所述查询规划器处理所述语义树,创建并比较所有可能的查询执行计划,并输出最优查询执行计划。
查询计划通常被再分片并针对系统中的分布式数据节点或数据分区的数目被并行化。一些查询片段在协调器节点上执行,而其他查询片段在数据节点上执行。因此,协调器将较后的查询计划片段发送至所述集群中的各种数据节点进行执行。通常,协调器节点将相同的一个或多个查询计划片段递送至每一单个数据节点,所有所述单个数据节点针对各种所存储的数据分区而执行相同的一个或多个查询执行计划片段。
就任一特定的查询而言,查询规划器考虑多个候选查询执行计划,并行数据库系统能够处理所述多个候选查询执行计划中的任一个并产生结果。举例而言,典型的查询执行计划由数据库运算符(例如,联接运算符、分类运算符及聚合运算符)组成。作为实例,就联接运算符而言,存在不同的联接算法,包括散列联接、嵌套循环联接及分类-合并联接。
由于每一运算符具有不同的效率,因此即使所有的候选计划均能够确定恰当的最终查询输出,执行每一计划的成本仍存在很大变化。在对数据库运算符的算法进行优化时,查询规划器将例如内存及表分区统计等系统资源考虑在内。查询规划器对协调器节点的优化器功能确定最优计划,例如在外部合并分类运算与快速分类运算之间作出选择或在散列联接运算与嵌套循环联接运算之间作出决定。
在一些现有的解决方案中,工作内存的概念及当前可供查询使用的系统内存区域或空间的量驱使确定出最优执行计划。一般而言,现有的解决方案应用固定工作内存的概念来优化查询计划,而未考虑不同数据节点随时间的负载之间的差异。因此,所有的数据节点通常执行同一计划片段,所述同一计划片段对每一数据节点而言并非总是最优计划。
因此,由于例如数据库表分区在各种数据节点上的非均匀分布、及不同数据节点上的内存可用性随时间的动态变化等因素,固定的工作内存配置有时会导致为数据节点选择出非最优查询计划。举例而言,对于具有大量可用内存的系统,若预定工作内存太小,则查询规划器为分类运算选择外部分类,即使在所述情况下快速分类运算可为更高效的。
此类优化错误可导致一般数据库性能退化。因此,由于数据库查询性能具有相对较高的重要性,因而一些现有的查询优化方法在用于分布式并行数据库系统中时可能存在缺陷。
发明内容
根据一个一般方面,一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的方法包括:从包括多个网络设备的多个数据节点接收内存使用数据;基于所述内存使用数据而计算对应于所述数据节点的代表性内存负载;基于所述所计算的代表性内存负载而对与所述数据节点对应的内存模式进行分类;基于所述内存模式而计算对应于所述数据节点的可用工作内存;基于所述可用工作内存而产生所述数据节点的所述查询执行计划。所述内存使用数据是基于与所述数据节点相关联的多个监测单个内存负载,且所述查询执行计划适于所述当前可用工作内存。
根据另一一般方面,一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的设备包括单个数据节点,所述单个数据节点包括:单个网络设备,与所述集群相关联且用于存储对应于所述数据库的数据的至少一部分并用于接收查询执行计划片段;内存负载监测器,与所述单个数据节点相关联且用于监测与所述单个数据节点相关联的内存负载;本地执行引擎,用于执行所述查询执行计划片段。
在附图及以下说明中阐述了本发明的一个或多个实施例的细节。通过所述说明及图式以及权利要求书,本发明的其他特征、目标及优点将显而易见。
附图说明
图1是描绘一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的系统的示意图。
图2是在用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的系统中实现的示例性协调器设备的方框图。
图3是在用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的系统中实现的示例性数据节点的方框图。
图4是代表一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的方法的流程图。
图5是代表另一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的方法的流程图。
具体实施方式
本发明阐述一种用于分布式关系数据库管理系统中的查询计划优化策略,在所述查询计划优化策略中,基于当前系统内存可用性而适应性地确定查询执行计划。不同于如在现有技术中假设固定的工作内存配置,在本发明中所述的方法及设备持续地监测与数据库集群相关联的分布式数据处理节点上的系统负载及内存可用性。
在一实施例中,协调器节点利用从每一数据节点上的内存负载监测器接收的内存使用数据来确定全局工作内存配置,并产生针对在所述数据节点上可用的当前总工作内存而被优化的查询计划。在一可选实施例中,每一数据节点根据在所述节点处监测到的当前内存使用及可用性而确定本地工作内存配置,并针对在所述数据节点上可用的当前本地工作内存而修改所述查询计划或对所述查询计划进行再优化。在前一实施例中,所述查询计划被调整以适应数据节点集群,而在后一实施例中,所述查询计划针对每一单个数据节点作出调整。
如图1所示,用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的系统10包括一对数据库协调器节点或协调器12及14、以及分别具有三个存储设备22、24及26的三个数据处理节点或数据节点16、18及20。在各种实施例中,存储设备22、24及26集成至或外围地连接至数据节点16、18及20。协调器节点12及14通过包括例如通信网络的数据链路28及30而与每一数据节点互连。
在数据节点16、18及20处的存储设备22、24及26各自存储有分布式数据库表的一个分区或多个分区。存储设备22、24及26一起容纳整个数据库表的信息数据。
在运行时,协调器节点从客户端节点或客户端32接收查询请求。举例而言,仍参照图1,协调器节点12从客户端32接收查询请求。作为响应,协调器12编译所述查询并创建查询计划。协调器12进一步将所述查询计划再分片并将所述查询计划片段通过数据链路28(例如,网络)发送至数据节点16、18及20中的每一个,以供在数据节点16、18及20中的每一个上进行本地执行。
由于工作环境包括例如数据倾斜或输入/输出(input/output,简称I/O)等因素,因此在各种数据节点16、18及20处的内存使用及可用性有时是不均匀的。在一实施例中,数据节点16、18及20中的每一个监测在单个数据节点16、18及20处的内存使用,并将内存使用数据发送至协调器12及14中的每一个。协调器12及14使用来自所有数据节点16、18及20的内存使用数据来确定总工作内存,所述总工作内存代表当前在数据节点16、18及20中的每一个上可用的平均内存量,数据节点16、18及20将用于在数据节点16、18及20上本地执行查询计划。协调器12及14对查询计划或查询计划片段进行优化以在所有数据节点16、18及20上实现全局最优执行性能,并将相同的查询计划或查询计划片段发送至所有数据节点16、18及20。
类似地,在一可选实施例中,数据节点16、18及20中的每一个监测在单个数据节点16、18及20处的内存使用。然而,单个数据节点16、18及20中的每一个确定指示当前在单个数据节点16、18及20上可用的内存量的本地工作内存,数据节点16、18及20将用于在数据节点16、18及20上本地执行查询计划。单个数据节点16、18及20中的每一个进一步实行本地化查询计划以适应性地改编从协调器12及14中的每一个接收的查询计划片段,以在单个数据节点16、18及20上实现最优执行性能。
这些实现方式相对于现有的解决方案提供了优点,所述现有的解决方案通常不将数据节点中的实际系统负载或内存使用及可用性变化考虑在内,而是假设固定的工作内存。通过确定更为准确的工作内存而非假设预定值,在本发明中阐述的实现方式可产生被动态地调整以适应数据节点的实际工作环境的更为高效的查询计划,且因此提高分布式并行数据库系统的整体性能。
参照图2,在图1所示系统10中实现的协调器节点或协调器40包括查询编译器42、可选的全局内存负载计算器44、可选的全局内存模式分类器46、可选的全局工作内存计算器48、全局查询规划器50、全局执行引擎52、内存54及处理器56,上述所有组件通过数据链路58互连。协调器40用于从客户端接收查询请求,例如(structured query language,简称SQL)查询请求。在图2中以短划线示出的组件是并非包括于所有实现方式中的可选项。
查询编译器42用于解析所接收的查询请求,并创建对应于所述查询请求的语义树。全局内存负载计算器44视情况利用从所有数据节点接收的内存使用数据来计算全局内存负载,所述全局内存负载例如代表形成所述集群的数据节点上的平均当前内存负载。
全局内存模式分类器46视情况指定全局类别或模式,所述全局类别或模式指示形成所述集群的数据节点中的当前内存使用或可用性的近似水平。在一些实现方式中,全局内存模式分类器46根据在整个系统中当前全局内存负载的轻重而将数据节点中的当前平均内存负载映射至三个类别(例如,轻、正常、及重)中的一个。
举例而言,全局内存模式分类器46在所有数据节点中的平均内存使用低于总系统内存容量的百分之三十(30%)时指定轻模式,在所有数据节点中的平均内存使用介于总系统内存容量的百分之三十(30%)与百分之七十(70%)之间时指定正常模式,并在所有数据节点中的平均内存使用高于总系统内存容量的百分之七十(70%)时指定重模式。
基于当前指定的内存模式,全局工作内存计算器48视情况计算当前全局工作内存,以用于对查询计划进行优化。当前全局工作内存对应于在形成所述集群的数据节点中的每一个上可用的平均内存空间。举例而言,在一些实现方式中,全局工作内存计算器48利用对应于当前内存模式或类别的内存负载因数来根据以下公式计算可用全局工作内存:
work_memory=system_memory_for_query×memory_load_factor
其中
利用以下定义来确定内存负载因数:
此外,存在以下定义:
system_memory_for_query可用于针对每一连接查询操作的内存量;
system_memory是单个数据节点上的总内存量;
memory_for_bufferpool是当前用于缓冲池的内存量;
other_memory_overhead是当前用于日志文件高速缓冲、线程创建等的内存量;
connection_number是至数据库的连接的近期平均数目。
因此,当内存模式为轻时,基于适合于进行内存相对密集型运算(例如,建立散列表或分类运算)的较大工作内存来产生查询计划。此可为可取的,因为尽管以较大工作内存计算的查询执行计划有可能消耗较多内存资源,但查询计划通常将以较快的响应速度执行。相反,当内存模式为重时,基于较小的工作内存而计算查询计划。
另一方面,当内存模式为正常时,基于查询的一或多个特征来区分查询。也不是说,更有可能为内存相对密集型的查询将被指定较大的工作内存进行查询计划,而为内存相对密集型的机会较小的查询将被指定较小的工作内存进行查询计划。相应地,优化器基于当前内存负载情况而适应性地对查询进行计划,从而实现动态内存利用及更好的执行性能。
全局查询规划器50创建多个替代候选查询计划,并利用所计算的全局工作内存来确定最优计划。选择的查询计划通常相对于固定的工作内存解决方案而提高查询执行性能,因为所计算的全局工作内存更准确地反映当前在分布式数据节点上可用的系统资源。
全局查询规划器50进一步将查询计划划分成多个将被转发至数据节点的片段,然后将经优化查询计划片段中的一个或多个发送至每一数据节点以在所述数据节点上本地执行。全局执行引擎在协调器节点40上执行查询计划片段的一些部分。
Referring to FIG.参照图3,在图1所示系统10中实现的数据处理节点或数据节点60包括内存负载监测器62、可选的本地内存模式分类器64、可选的本地工作内存计算器66、可选的本地查询规划器68、本地执行引擎70、内存72及处理器76,上述所有组件通过数据链路76互连。数据节点60用于从协调器节点中的一个接收一个或多个查询执行计划片段。在图2中以短划线示出的组件是并非包括于所有实现方式中的可选项。
内存负载监测器62监测数据节点60中的系统内存使用及可用性。在一实现方式中,数据节点60将内存使用及可用性信息周期性地发送至所有协调器节点。如以上参照图2所阐述,协调器利用内存使用及可用性数据来计算数据库集群中的所有数据节点的平均内存负载,并将所述内存负载映射至内存模式。协调器还如上所述计算工作内存,并为所有数据节点产生查询计划。
在可选实现方式中,再次参照图3,本地内存模式分类器64视情况指定本地类别或模式,所述本地类别或模式指示数据节点60上的当前内存使用或可用性的近似水平。在一些实现方式中,本地内存模式分类器64根据数据节点60处的当前本地内存负载的轻重而将数据节点60的当前内存负载映射至三个类别(例如,轻、正常、及重)中的一个。
举例而言,本地内存模式分类器64在数据节点60上的内存使用低于数据节点60内存容量的百分之三十(30%)时指定轻模式,在数据节点60上的内存使用介于数据节点60内存容量的百分之三十(30%)与百分之七十(70%)之间时指定正常模式,并在数据节点60上的内存使用高于数据节点60内存容量的百分之七十(70%)时指定重模式。
基于当前指定的本地内存模式,本地工作内存计算器66视情况计算当前本地工作内存,以用于使计划片段适应数据节点60处的当前工作环境。当前本地工作内存对应于在数据节点60上可用的内存空间。举例而言,在一些实现方式中,本地工作内存计算器66利用对应于当前内存模式或类别的内存负载因数来根据以下公式计算可用本地工作内存:
work_memory=system_memory_for_query×memory_load_factor
其中
利用以下定义来确定内存负载因数:
此外,存在以下定义:
system_memory_for_query是可用于针对每一连接查询操作的内存量;
system_memory是数据节点60上的内存量;
memory_for_bufferpool是当前用于缓冲池的内存量;
other_memory_overhead是当前用于日志文件高速缓冲、线程创建等的内存量;
connection_number是至数据库的连接的近期平均数目。
本地查询规划器68利用所计算的本地工作内存来修改或再优化一个或多个查询执行计划片段,以使所述一个或多个计划片段适应当前本地工作环境。经修改或经再优化的查询计划片段通常相对于固定的工作内存解决方案而提高查询执行性能,因为所计算的本地工作内存更准确地反映当前在数据节点60上可用的系统资源。在任一实施例中,本地执行引擎70在数据节点60上执行一个或多个查询执行计划片段。
参照图1至图3,协调器节点12、14及40以及数据处理节点16、18、40及60包括一般计算设备,且内存54及42以及处理器56及54是一般计算设备(例如,个人计算机(personalcomputer,简称PC)、工作站、服务器、大型计算器等)的不可缺少的组件。耦合至一般计算设备的外围组件还包括存储于计算机可读取介质上可被加载至内存54及52中并由处理器56及54执行的编程代码(例如,源代码、目标代码或可执行代码),以实行系统10的功能。
因此,在各种实施例中,系统10的功能在例如以下任何适当的处理器上执行:服务器、大型计算机、工作站、个人计算机(例如包括笔记本或平板计算机、PDA、一系列联网服务器或个人计算机等)。此外,随着开发出系统10的经修改或经改良版本以例如修订或添加模板或国别信息,与处理器相关联的软件得到更新。
在各种实施例中,系统10耦合至通信网络,所述通信网络可包括能够链接基于计算机的系统的设备与系统的任意可行组合,例如互联网、内联网或外联网、局域网(localarea network,简称LAN)、广域网(wide area network,简称WAN)、直接电缆连接、专用网络、公用网络、基于以太网的系统、令牌环、增值网络、基于电话的系统(例如包括T1设备或E1设备)、异步传输模式(Asynchronous Transfer Mode,简称ATM)网络、有线系统、无线系统、光系统、任意数目的分布式处理网络或系统的组合等。
系统10通过本地数据链路58及56耦合至通信网络,所述通信网络在各种实施例中包含用于耦合基于处理器的系统的设备的任意组合以及任意相关联软件或固件,例如调制解调器、接入点、网络接口卡、串行总线、并行总线、LAN接口或WAN接口、无线接口或光接口等,以及设计所期望或需要的任何相关联的传输协定。
本发明的实施例例如通过交互式、菜单驱动式、基于视觉显示的用户接口或图形用户接口(graphical user interface,简称GUI)将信息传送至用户并请求用户输入。用户接口例如在个人计算机(personal computer,简称PC)或具有鼠标及键盘的终端上执行,用户利用对图形用户接口的直接操控通过所述个人计算机或终端交互地输入信息。直接操控可包括使用定点设备(例如,鼠标或手写笔)而从各种视窗、图标及可选择字段(包括可选择菜单、下拉式菜单、页签、按钮、项目符号、复选框、文本框等)进行选择。然而,本发明的各种实施例包含任意数目的额外功能性用户接口方案来代替此接口方案,使用或不使用鼠标或按钮或键,包括例如追踪球、触摸屏或声控系统。
在图1所示系统10的示例性实现方式中,协调器节点12及14包括查询编译器42、全局内存负载计算器44、全局内存模式分类器46、全局工作内存计算器48、全局查询规划器50、全局执行引擎52、内存54及处理器56,而数据处理节点16、18及20包括内存负载监测器62、本地执行引擎70、内存72及处理器74。数据节点16、18及20将在数据节点16、18及20处监测到的内存使用数据周期性地发送至所有协调器节点12及14,且协调器节点12及14计算平均内存负载及全局工作内存,并产生和优化查询执行计划片段,所述查询执行计划片段将被发送至数据节点16、18及20中的每一个并在数据节点16、18及20中的每一个上执行。
举例而言,与图1所示数据节点16、18及20中的每一个相关联的内存负载监测器在特定时间点确定出数据节点16、18及20当前分别以近似百分之九十(90%)、百分之二十五(25%)及百分之五十(50%)运行。数据节点16、18及20随后将此信息递送至协调器节点12及14。然后,当协调器节点12及14中的一个(例如,协调器12)对已在协调器12处接收的查询请求进行处理时,协调器12计算出系统的平均内存负载为百分之五十五(55%),并将当前内存模式指定至正常类别。协调器12还根据所述正常内存模式而计算数据节点的可用全局工作内存,并鉴于当前工作环境为所有数据节点产生相同的经优化计划片段。
在图1所示系统10的可选实现方式中,协调器节点12及14包括查询编译器42、全局查询规划器50、全局执行引擎52、内存54及处理器56,而数据处理节点16、18及20包括内存负载监测器62、本地内存模式分类器64、本地工作内存计算器66、本地查询规划器68、本地执行引擎70、内存72及处理器74。协调器节点12及14产生全局查询执行计划片段并将所述全局查询执行计划片段发送至所有的数据节点16、18及20。数据节点16、18及20监测单个数据节点16、18及20处的内存使用,计算本地工作内存,并对查询执行计划片段进行修改或优化以供在单个数据节点16、18及20上执行。
举例而言,与图1所示数据节点16、18及20中的每一个相关联的内存负载监测器在特定时间点确定出数据节点16、18及20当前分别以近似百分之九十(90%)、百分之二十五(25%)及百分之五十(50%)运行。数据节点16、18及20随后从协调器节点12及14中的一个接收查询执行计划片段。数据节点16将当前本地内存模式指定为重类别,数据节点18将当前本地内存模式指定为轻类别,且数据节点20将当前本地内存模式指定为正常类别。数据节点16、18及20中的每一个还分别根据重内存模式、轻内存模式及正常内存模式来计算可用本地工作内存,并鉴于对应单个数据节点16、18及20处的当前工作环境并行地针对单个数据节点16、18及20中的每一个对查询计划片段进行再优化。因此,在数据节点16、18及20中的每一个处执行的查询计划片段不同。
在一示例性实施例中,一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的设备包括:接收模块,通过处理器从包括多个网络设备的多个数据节点接收内存使用数据;内存负载模块,基于所述内存使用数据而计算对应于所述数据节点的代表性内存负载;内存模式模块,基于所述所计算的代表性内存负载而对与所述数据节点对应的内存模式进行分类;工作内存模块,基于所述内存模式而计算对应于所述数据节点的可用工作内存;查询执行模块,基于所述可用工作内存而产生所述数据节点的所述查询执行计划,其中所述内存使用数据是根据与所述数据节点相关联的多个监测单个内存负载而确定,且所述查询执行计划对应于所述当前可用工作内存。在一些实施例中,所述设备可包括用于执行在所述实施例中阐述的任一步骤或步骤的组合的其他或额外模块。
在一示例性实施例中,一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的设备包括:内存负载模块,通过处理器监测与包括网络设备的数据节点相关联的内存负载;内存模式模块,基于所述内存负载而对与所述数据节点对应的内存模式进行分类;工作内存模块,基于所述内存模式而计算对应于所述数据节点的可用工作内存;查询计划接收模块,接收查询执行计划片段;查询计划改编模块,基于所述可用工作内存而针对所述数据节点适应性地改编所述查询执行计划片段,其中所述数据节点与所述集群相关联且所述查询执行计划片段对应于所述当前可用工作内存。在一些实施例中,所述设备可包括用于执行在所述实施例中阐述的任一步骤或步骤的组合的其他或额外模块。
现在参照图4,示出了一种流程图,所示流程图例如由图2所示协调器节点40实行以实现在本发明中阐述的用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的方法。在图4中以短划线示出的方块是并非在所有实现方式中实行的可选动作或事件。所示过程开始于方块80处,在方块80处,例如从客户端节点接收查询请求(例如,结构化查询语言(structured query language,简称SQL)查询)。
在方块82中,对所接收的查询进行解析,且在方块84中,编译对应于所述查询的语义树。在方块86中,基于所述语义树而创建多个候选查询执行计划。在方块88中,接收关于单个数据节点的当前内存使用或可用性信息,且在方块90中,如上所述利用所接收的内存使用或可用性数据来计算当前全局内存负载。在方块92中,如上所述对应于当前全局内存负载而将内存模式指定至恰当的类别。在方块94中,如上所述计算可用全局工作内存,且在方块96中,如上所述使用所述可用全局工作内存来对选自候选计划中的查询执行计划进行优化。
在方块98中,将查询执行计划划分成多个片段以分布至所述数据节点,且在方块100处,将相同的一个或多个查询执行计划片段传送至数据库集群中的所有数据节点。此外,在方块102处,将编译的语义树转发至数据节点。
现在参照图5,示出了一种流程图,所示流程图例如由图3所示数据处理节点60实行以实现在本发明中阐述的用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的方法。在图5中以短划线示出的方块是在所有实现方式中实行的可选动作或事件。所述过程开始于方块110处,在方块110处,接收一个或多个查询执行计划片段。在方块112中,也接收经编译的语义树。
在方块114中,监测单个数据节点的当前内存使用或可用性。可选地,在方块116中,将内存使用或可用性信息周期性地发送至所有协调器节点。在方块118中,如上所述视情况对应于当前内存使用或可用性将本地内存模式指定至类别。
在方块120中,如上所述计算可用本地工作内存,且在方块122中,如上所述使用所述可用本地工作内存来修改一个或多个查询执行计划片段或对所述一个或多个查询执行计划片段进行再优化。在方块124处,在数据节点上执行所述一个或多个查询执行片段。
在图1所示系统10的示例性实现方式中,协调器节点12及14实行在图4所示方块80至102中阐述的动作或事件,而数据节点16、18及20实行在图5所示方块112、114、116及124中阐述的动作或事件。因此,根据在所有数据节点中被动态确定的全局工作内存配置而进行优化的相同的一个或多个查询执行计划片段被发送至所述集群中的所有数据节点。
在图1所示系统10的可选实现方式中,协调器节点12及14实行在图4所示方块80至86、以及方块96至100中阐述的动作或事件,而数据节点16、18及20实行在图5所示方块110至114、以及方块118至124中阐述的动作或事件。因此,整个所述集群中的每一数据节点单个地利用对应于每一单个数据节点的被动态确定的本地工作内存配置来并行地对一个或多个查询执行计划片段进行再优化。
举例而言,由图1所示协调器节点12及14中的一个(例如,协调器12)接收以下查询请求:
select count(*)from lineitem,part where l_partkey=p_partkey group byl_partkey;
作为响应,协调器12产生以下查询执行计划片段并将所述片段发送至图1所示的三个数据节点16、18及20:
查询计划
查询计划片段的前三行在协调器12上执行,而聚合运算及联接运算根据鉴于在对应单个数据节点16、18及20处的当前工作环境被指定至数据节点16、18及20中的每一个的当前本地内存模式类别而在数据节点16、18及20中的每一个上执行。因此,举例而言,若数据节点16的本地内存模式当前被指定至重类别,则数据节点16对查询计划进行再优化以进行基于分类的聚合运算及嵌套循环联接运算。同时,若数据节点18及数据节点20的本地内存模式当前分别被指定至轻类别及正常类别,则数据节点18及数据节点20各自对查询计划进行再优化以进行散列聚合运算及散列联接运算。
使用在本发明中阐述的、实现反映当前系统负载的经动态计算的工作内存配置的适应性查询计划方法会相对于使用固定工作内存配置的解决方案提高查询执行效率或性能。通过使用更为准确的工作内存配置而非使用预定的或固定的值,适应性查询规划器可产生被调整以适应数据节点处的当前工作环境的经修改或经优化的查询计划,从而提高分布式并行数据库系统的性能、减少查询响应时间、提高内存资源利用并减少数据溢出。
本文中参照流程图或方框图阐述了本发明的各方面,在所述流程图或方框图中每一方块或方块的任意组合可由计算机程序指令实现。所述指令被提供至通用计算机、专用计算机或其他可编程数据处理装置的处理器以实现机器或制品,且当所述指令被处理器执行时,所述指令创建用于实现在所述图式中每一方块或方块的组合中规定的功能、动作或事件的方式。
就此而言,流程图或方框图中的每一方块对应于包括用于实现所规定的逻辑功能的一个或多个可执行指令的代码的模块、片段或一部分。还应说明的是,在一些可选实现方式中,与任一方块相关联的功能可不按图中所提及的次序发生。举例而言,连续示出的两个方块事实上可实质上同时执行,或者方块有时可以相反的次序执行。
本领域的普通技术人员的人员将会理解,本发明的各方面可以体现为设备、系统、方法或计算机程序产品。相应地,本发明的一般在本文中被称为电路、模块、组件或系统的各方面可以硬件、软件(包括固件、常驻软件、微代码等)或软件与硬件的任意组合(包括实施于计算机可读取介质中的计算机程序产品,所述计算机可读取介质上实施有计算机可读取程序代码)实施。
在这方面,可以利用一个或多个计算机可读介质的任何组合,包括但不限于:电子、磁、光、电磁、红外线、或半导体系统,装置或设备,或上述的任意合适组合。计算机可读存储介质的更具体的例子包括以下的非详尽列表:便携式计算机磁盘、硬盘、随机存取存储器(random access memory,简称RAM)、只读存储器(read-only memory,简称ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,简称EPROM)、闪存、便携式光盘只读只读存储器(compact disc read-only memory,简称CD-ROM)、光存储设备,网络连接存储(network-attached storage,简称NAS)、存储区域网络(storage areanetwork,简称SAN)、磁带或上述的任意合适组合。在本发明的上下文中,计算机可读存储介质可包括能够包含或存储被数据处理系统、装置或设备使用或与其相关的程序指令的任何有形介质。
可以用一个或多个编程语言的任意组合来写用于实现与本发明的各方面的操作的计算机程序代码,包括如Java、Smalltalk或C++等面向对象的程序设计语言,以及如“C”、FORTRAN、COBOL或Pascal等传统过程化编程语言。程序代码可以在单个个人计算机上完全执行,作为一个独立的软件包,部分在客户端计算机上部分在远程服务器计算机上,或完全在远程服务器或计算机上,或完全在分布式计算机节点的群集上。一般情况下,远程计算机、服务器或分布式计算机节点的群集可以通过任何类型的网络连接到个人(用户)计算机,包括一个局域网(local area network,简称LAN)、广域网(wide area network,简称WAN)、互联网接入点或其任意组合。
可以理解的是可以进行各种修改。例如,如果所公开的技术的步骤以不同的顺序进行,和/或如果所公开的系统中的组件以不同的方式合并,和/或由其他组件代替或补充,有用的结果仍可能会实现。相应地,其他实现方式在以下权利要求的保护范围之内。
Claims (20)
1.一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的方法,其特征在于,包括:
处理器从包括多个网络设备的多个数据节点接收内存使用数据;
基于所述内存使用数据而计算对应于所述数据节点的代表性内存负载;
基于所述所计算的代表性内存负载而对与所述数据节点对应的内存模式进行分类;
基于所述内存模式而计算对应于所述数据节点的可用工作内存;
基于所述可用工作内存而产生所述数据节点的所述查询执行计划,其中所述内存使用数据是根据与所述数据节点相关联的多个监测单个内存负载而确定,且所述查询执行计划对应于所述当前可用工作内存。
2.根据权利要求1所述的方法,其特征在于,还包括:
从与所述集群相关联的第一数据节点接收第一内存使用数据;
从与所述集群相关联的第二数据节点接收第二内存使用数据。
3.根据权利要求1至2中任一项所述的方法,其特征在于,基于对应于与所述集群相关联的所有所述数据节点的所述内存使用数据而计算所述代表性内存负载作为统计平均值。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述内存模式在所述代表性内存负载低于系统容量的第一预定百分比时被分类成第一类别,在所述代表性内存负载介于所述系统容量的所述第一预定百分比与第二预定百分比之间时被分类成第二类别,或在所述代表性内存负载高于所述系统容量的所述第二预定百分比时被分类成第三类别,其中所述系统容量对应于所述数据节点的总容量。
5.根据权利要求4所述的方法,其特征在于,所述可用工作内存是基于对应于所述内存模式的倍数而计算,所述倍数选自对应于所述第一类别的大于二分之一的第一倍数、若所述查询执行计划包括内存相对密集型运算符则对应于所述第二类别介于十分之三与十分之七之间的第二倍数、若所述查询执行计划不包括内存相对密集型运算符则介于十分之四与十分之八之间的第三倍数、以及对应于所述第三类别的介于十分之一与十分之五之间的第四倍数,其中所述第一倍数大于所述第二倍数,所述第二倍数大于所述第三倍数,且所述第三倍数大于所述第四倍数。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述可用工作内存是基于对应于所述内存模式的倍数而计算。
7.根据权利要求6所述的方法,其特征在于,所述可用工作内存是基于以下而计算:总系统内存大小、总缓冲器内存区域大小、总额外开销内存区域大小、以及与所述数据库相关联的客户端连接的平均数目。
8.根据权利要求1至7中任一项所述的方法,其特征在于,还包括:
通过与所述集群相关联的网络从与所述数据库互连的客户端设备接收查询请求,其中产生所述查询执行计划还包括:
基于所述查询请求而编译语义树;
基于所述语义树而创建多个候选查询执行计划;
基于所述候选查询执行计划及所述可用工作内存中的至少一个而实质上对所述查询执行计划进行优化;
将所述查询执行计划分割成多个查询执行计划片段;
将所述查询执行计划片段中的至少一个发送至所述数据节点中的每一个。
9.根据权利要求1至8中任一项所述的方法,其特征在于,还包括执行所述查询执行计划的全本地分。
10.一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的方法,其特征在于,包括:
处理器监测与包括网络设备的数据节点相关联的内存负载;
基于所述内存负载而对与所述数据节点对应的内存模式进行分类;
基于所述内存模式而计算对应于所述数据节点的可用工作内存;
接收查询执行计划片段;
基于所述可用工作内存而针对所述数据节点适应性地改编所述查询执行计划片段,其中所述数据节点与所述集群相关联且所述查询执行计划片段对应于所述当前可用工作内存。
11.根据权利要求10所述的方法,其特征在于,还包括:
监测与包括额外网络设备的额外数据节点相关联的额外内存负载;
基于所述额外内存负载而对与所述额外数据节点对应的额外内存模式进行分类;
基于所述额外内存模式而计算对应于所述额外数据节点的额外可用工作内存;
基于所述额外可用工作内存而针对所述额外数据节点适应性地改编所述查询执行计划片段,其中所述额外数据节点与所述集群相关联且所述查询执行计划片段对应于所述当前额外可用工作内存。
12.根据权利要求10至11中任一项所述的方法,其特征在于,所述内存模式在所述代表性内存负载低于系统容量的第一预定百分比时被分类成第一类别,在所述代表性内存负载介于所述系统容量的所述第一预定百分比与第二预定百分比之间时被分类成第二类别,或在所述代表性内存负载高于所述系统容量的所述第二预定百分比时被分类成第三类别,其中所述系统容量对应于所述数据节点的单个容量。
13.根据权利要求12所述的方法,其特征在于,所述可用工作内存是基于对应于所述内存模式的倍数而计算,所述倍数选自对应于所述第一类别的大于二分之一的第一倍数、若所述查询执行计划包括内存相对密集型运算符则对应于所述第二类别介于十分之三与十分之七之间的第二倍数、若所述查询执行计划不包括内存相对密集型运算符则介于十分之四与十分之八之间的第三倍数、以及对应于所述第三类别的介于十分之一与十分之五之间的第四倍数,其中所述第一倍数大于所述第二倍数,所述第二倍数大于所述第三倍数,且所述第三倍数大于所述第四倍数。
14.根据权利要求10至13中任一项所述的方法,其特征在于,所述可用工作内存是基于对应于所述内存模式的倍数而计算。
15.根据权利要求14所述的方法,其特征在于,所述可用工作内存是基于以下而计算:系统内存大小、开销内存缓冲器内存区域大小、额外区域大小、以及与所述数据库相关联的客户端连接的平均数目。
16.根据权利要求10至15中任一项所述的方法,其特征在于,适应性地改编所述查询执行计划还包括:
通过与所述集群相关联的网络而从与所述数据库互连的客户端设备接收基于查询请求的语义树;
基于至少所述可用工作内存而实质上对所述所接收查询执行计划片段进行优化。
17.根据权利要求10至16中任一项所述的方法,其特征在于,还包括执行所述查询执行计划片段。
18.一种用于对分布于数据节点集群中的并行数据库适应性地产生查询执行计划的设备,其特征在于,包括:
与所述集群相关联的单个网络设备,所述单个网络设备包括:
内存,存储对应于所述数据库的数据;
内存负载监测器,监测与所述单个网络设备相关联的内存负载;
处理器,接收查询执行计划片段,修改所述查询执行计划片段以创建对应于所述内存负载的经修改查询执行计划片段,并执行所述经修改查询执行计划片段。
19.根据权利要求18所述的设备,其特征在于,还包括:
数据库协调器,用于通过与所述集群相关联的网络而从耦合至所述数据库协调器的客户端设备接收查询请求,从包括所述单个网络设备的多个网络设备接收包括与所述单个网络设备相关联的所述内存负载的内存使用数据,并将多个查询执行计划片段中的至少一个发送至所述网络设备中的每一个;
一个或多个电路,用于执行:
查询编译器,用于基于所述查询请求而编译语义树;
全局内存负载计算器,用于基于所述内存使用数据而计算对应于所述网络设备的代表性内存负载;
全局内存模式分类器,用于基于所述所计算代表性内存负载而对与所述网络设备对应的内存模式进行分类;
全局工作内存计算器,用于基于所述内存模式而计算对应于所述网络设备的可用工作内存;
全局查询规划器,用于基于所述语义树而产生多个候选查询执行计划,基于所述候选查询执行计划及所述可用工作内存中的至少一个而产生所述网络设备的所述查询执行计划并实质上对所述查询执行计划进行优化,并将所述查询执行计划分割成所述查询执行计划片段;
全局执行引擎,用于执行所述查询执行计划的全本地分,其中所述查询执行计划对应于所述当前可用工作内存。
20.根据权利要求18至19中任一项所述的设备,其特征在于,还包括一个或多个用于执行以下的电路:
本地内存模式分类器,用于基于所述内存负载而对与所述单个网络设备对应的内存模式进行分类;
本地工作内存计算器,用于基于所述内存模式而计算对应于所述单个网络设备的可用工作内存;
本地查询规划器,用于基于至少所述可用工作内存而实质上对所述单个网络设备的所述所接收查询执行计划片段进行优化,其中所述单个网络设备还用于通过与所述集群相关联的网络而从与所述数据库互连的客户端设备接收基于查询请求的语义树,且所述查询执行计划片段对应于所述当前可用工作内存。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/631,074 | 2015-02-25 | ||
US14/631,074 US20160246842A1 (en) | 2015-02-25 | 2015-02-25 | Query optimization adaptive to system memory load for parallel database systems |
PCT/CN2016/074239 WO2016134646A1 (en) | 2015-02-25 | 2016-02-22 | Query optimization adaptive to system memory load for parallel database systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107111653A true CN107111653A (zh) | 2017-08-29 |
CN107111653B CN107111653B (zh) | 2020-11-03 |
Family
ID=56689920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680004113.6A Active CN107111653B (zh) | 2015-02-25 | 2016-02-22 | 适于并行数据库系统的系统内存负载的查询优化 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160246842A1 (zh) |
EP (1) | EP3251034B1 (zh) |
CN (1) | CN107111653B (zh) |
WO (1) | WO2016134646A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109085999A (zh) * | 2018-06-15 | 2018-12-25 | 华为技术有限公司 | 数据处理方法及处理系统 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10909117B2 (en) * | 2013-12-20 | 2021-02-02 | Micro Focus Llc | Multiple measurements aggregated at multiple levels of execution of a workload |
WO2015094319A1 (en) | 2013-12-20 | 2015-06-25 | Hewlett-Packard Development Company, L.P. | Generating a visualization of a metric at a level of execution |
WO2015188299A1 (zh) * | 2014-06-09 | 2015-12-17 | 华为技术有限公司 | 一种数据处理方法及装置 |
US9514247B1 (en) | 2015-10-28 | 2016-12-06 | Linkedin Corporation | Message passing in a distributed graph database |
US20170139991A1 (en) * | 2015-11-16 | 2017-05-18 | Linkedin Corporation | Dynamic query plan based on skew |
CN107102995B (zh) * | 2016-02-19 | 2020-02-21 | 华为技术有限公司 | 一种sql执行计划的确定方法及装置 |
US10180992B2 (en) | 2016-03-01 | 2019-01-15 | Microsoft Technology Licensing, Llc | Atomic updating of graph database index structures |
US10228855B2 (en) * | 2016-03-30 | 2019-03-12 | International Business Machines Corporation | Tuning memory across database clusters for distributed query stability |
US10034407B2 (en) * | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
US10789295B2 (en) | 2016-09-28 | 2020-09-29 | Microsoft Technology Licensing, Llc | Pattern-based searching of log-based representations of graph databases |
US20180095996A1 (en) * | 2016-10-03 | 2018-04-05 | Ocient Llc | Database system utilizing forced memory aligned access |
US10754859B2 (en) | 2016-10-28 | 2020-08-25 | Microsoft Technology Licensing, Llc | Encoding edges in graph databases |
US10445321B2 (en) | 2017-02-21 | 2019-10-15 | Microsoft Technology Licensing, Llc | Multi-tenant distribution of graph database caches |
US10628492B2 (en) | 2017-07-20 | 2020-04-21 | Microsoft Technology Licensing, Llc | Distributed graph database writes |
US10838647B2 (en) | 2018-03-14 | 2020-11-17 | Intel Corporation | Adaptive data migration across disaggregated memory resources |
US11567995B2 (en) | 2019-07-26 | 2023-01-31 | Microsoft Technology Licensing, Llc | Branch threading in graph databases |
CN115994037A (zh) * | 2023-03-23 | 2023-04-21 | 天津南大通用数据技术股份有限公司 | 一种集群数据库负载均衡方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822749A (en) * | 1994-07-12 | 1998-10-13 | Sybase, Inc. | Database system with methods for improving query performance with cache optimization strategies |
US6353818B1 (en) * | 1998-08-19 | 2002-03-05 | Ncr Corporation | Plan-per-tuple optimizing of database queries with user-defined functions |
US20030212668A1 (en) * | 2002-05-13 | 2003-11-13 | Hinshaw Foster D. | Optimized database appliance |
US20060026143A1 (en) * | 2004-08-02 | 2006-02-02 | Hirth Gerhard A | System for querying databases |
US20090271385A1 (en) * | 2008-04-28 | 2009-10-29 | Infosys Technologies Limited | System and method for parallel query evaluation |
CN101594371A (zh) * | 2008-05-28 | 2009-12-02 | 山东省标准化研究院 | 食品安全追溯数据库的负载均衡优化方法 |
US20100223305A1 (en) * | 2009-03-02 | 2010-09-02 | Oracle International Corporation | Infrastructure for spilling pages to a persistent store |
US7984043B1 (en) * | 2007-07-24 | 2011-07-19 | Amazon Technologies, Inc. | System and method for distributed query processing using configuration-independent query plans |
CN103905530A (zh) * | 2014-03-11 | 2014-07-02 | 浪潮集团山东通用软件有限公司 | 一种高性能全局负载均衡的分布式数据库数据路由方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7212204B2 (en) * | 2005-01-27 | 2007-05-01 | Silicon Graphics, Inc. | System and method for graphics culling |
CN100573528C (zh) * | 2007-10-30 | 2009-12-23 | 北京航空航天大学 | 数字博物馆网格及其构造方法 |
US9165032B2 (en) * | 2007-11-21 | 2015-10-20 | Hewlett-Packard Development Company, L.P. | Allocation of resources for concurrent query execution via adaptive segmentation |
US8887056B2 (en) * | 2012-08-07 | 2014-11-11 | Advanced Micro Devices, Inc. | System and method for configuring cloud computing systems |
US9311354B2 (en) * | 2012-12-29 | 2016-04-12 | Futurewei Technologies, Inc. | Method for two-stage query optimization in massively parallel processing database clusters |
US9723069B1 (en) * | 2013-03-15 | 2017-08-01 | Kaazing Corporation | Redistributing a connection |
CN103345447B (zh) * | 2013-06-21 | 2016-06-08 | 大唐移动通信设备有限公司 | 内存管理方法及系统 |
US9594839B2 (en) * | 2014-12-22 | 2017-03-14 | Sybase, Inc. | Methods and systems for load balancing databases in a cloud environment |
-
2015
- 2015-02-25 US US14/631,074 patent/US20160246842A1/en not_active Abandoned
-
2016
- 2016-02-22 WO PCT/CN2016/074239 patent/WO2016134646A1/en active Application Filing
- 2016-02-22 EP EP16754755.3A patent/EP3251034B1/en active Active
- 2016-02-22 CN CN201680004113.6A patent/CN107111653B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822749A (en) * | 1994-07-12 | 1998-10-13 | Sybase, Inc. | Database system with methods for improving query performance with cache optimization strategies |
US6353818B1 (en) * | 1998-08-19 | 2002-03-05 | Ncr Corporation | Plan-per-tuple optimizing of database queries with user-defined functions |
US20030212668A1 (en) * | 2002-05-13 | 2003-11-13 | Hinshaw Foster D. | Optimized database appliance |
US20060026143A1 (en) * | 2004-08-02 | 2006-02-02 | Hirth Gerhard A | System for querying databases |
US7984043B1 (en) * | 2007-07-24 | 2011-07-19 | Amazon Technologies, Inc. | System and method for distributed query processing using configuration-independent query plans |
US20090271385A1 (en) * | 2008-04-28 | 2009-10-29 | Infosys Technologies Limited | System and method for parallel query evaluation |
CN101594371A (zh) * | 2008-05-28 | 2009-12-02 | 山东省标准化研究院 | 食品安全追溯数据库的负载均衡优化方法 |
US20100223305A1 (en) * | 2009-03-02 | 2010-09-02 | Oracle International Corporation | Infrastructure for spilling pages to a persistent store |
CN103905530A (zh) * | 2014-03-11 | 2014-07-02 | 浪潮集团山东通用软件有限公司 | 一种高性能全局负载均衡的分布式数据库数据路由方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109085999A (zh) * | 2018-06-15 | 2018-12-25 | 华为技术有限公司 | 数据处理方法及处理系统 |
CN109085999B (zh) * | 2018-06-15 | 2022-04-22 | 华为技术有限公司 | 数据处理方法及处理系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2016134646A1 (en) | 2016-09-01 |
US20160246842A1 (en) | 2016-08-25 |
EP3251034A4 (en) | 2017-12-13 |
CN107111653B (zh) | 2020-11-03 |
EP3251034B1 (en) | 2022-02-16 |
EP3251034A1 (en) | 2017-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107111653A (zh) | 适于并行数据库系统的系统内存负载的查询优化 | |
US11126626B2 (en) | Massively parallel and in-memory execution of grouping and aggregation in a heterogeneous system | |
US7739269B2 (en) | Incremental repair of query plans | |
US11429609B2 (en) | Geo-scale analytics with bandwidth and regulatory constraints | |
EP1738290B1 (en) | Partial query caching | |
CN104903894B (zh) | 用于分布式数据库查询引擎的系统和方法 | |
US9092491B2 (en) | Searching documentation across interconnected nodes in a distributed network | |
WO2017005191A1 (en) | System and method for data caching in processing nodes of massively parallel processing (mpp) database system | |
US11928114B2 (en) | Query generation based on a logical data model with one-to-one joins | |
GB2516627A (en) | Parallel decision-or regression-tree growing | |
US10956417B2 (en) | Dynamic operation scheduling for distributed data processing | |
CN102479255B (zh) | 用于优化数据库查询的方法和系统 | |
CN103930888A (zh) | 基于更新、储存及响应约束的多粒度分组聚合选择 | |
CN101739398A (zh) | 分布式数据库多连接查询优化算法 | |
Labouseur et al. | Scalable and Robust Management of Dynamic Graph Data. | |
CN105550332A (zh) | 一种基于双层索引结构的起源图查询方法 | |
US20230325386A1 (en) | Query plan cache in database systems | |
CN110413927B (zh) | 在发布订阅系统中基于匹配实时性的优化方法及系统 | |
US20170262503A1 (en) | Fusing global reporting aggregate computation with the underlying operation in the query tree for efficient evaluation | |
Tawhid et al. | Simplex particle swarm optimization with arithmetical crossover for solving global optimization problems | |
US20150293971A1 (en) | Distributed queries over geometric objects | |
US20190236174A1 (en) | Techniques and architectures for partition mapping in a multi-node computing environment | |
Lai et al. | {GLogS}: Interactive Graph Pattern Matching Query At Large Scale | |
CN109165325A (zh) | 用于切分图数据的方法、装置、设备以及计算机可读存储介质 | |
Shalini Lakshmi et al. | A predictive context aware collaborative offloading framework for compute-intensive applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |