CN116069464B - 一种基于分布式存储调用数据执行的优化方法及装置 - Google Patents

一种基于分布式存储调用数据执行的优化方法及装置 Download PDF

Info

Publication number
CN116069464B
CN116069464B CN202211638410.XA CN202211638410A CN116069464B CN 116069464 B CN116069464 B CN 116069464B CN 202211638410 A CN202211638410 A CN 202211638410A CN 116069464 B CN116069464 B CN 116069464B
Authority
CN
China
Prior art keywords
service node
code
target service
machine code
characteristic information
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.)
Active
Application number
CN202211638410.XA
Other languages
English (en)
Other versions
CN116069464A (zh
Inventor
王海峰
化明虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Institute of Computing Sciences
Original Assignee
Shenzhen Institute of Computing Sciences
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Computing Sciences filed Critical Shenzhen Institute of Computing Sciences
Priority to CN202211638410.XA priority Critical patent/CN116069464B/zh
Priority to PCT/CN2023/070708 priority patent/WO2024130795A1/zh
Publication of CN116069464A publication Critical patent/CN116069464A/zh
Application granted granted Critical
Publication of CN116069464B publication Critical patent/CN116069464B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于分布式存储调用数据执行的优化方法,具体为:当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。通过对PL代码进行解析时提取特征信息,依据特征信息将PL代码分成若干个代码执行子任务,分配给不同的服务节点进行执行,提升整体集群的执行性能。

Description

一种基于分布式存储调用数据执行的优化方法及装置
技术领域
本发明主要涉及数据处理领域,尤其涉及一种基于分布式存储调用数据执行的优化方法及装置。
背景技术
PL/SQL(存储过程)是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL),从Ada语言发展而来。PL/SQL是关系数据库对SQL语句的扩展,在普通SQL语句的基础上增加了编程语言的特点,把数据操作和查询语句组织在PL/SQL的过程化代码中,通过逻辑判断、循环等操作实现复杂的功能。使用PL/SQL可以编写具有很多高级功能的程序,能够把业务逻辑封装在数据库内部,提供更好的抽象和安全性,同时减少了网络的交互,并且调用更快,从而提升整体性能。
存储过程因其低RT(Response Time,系统响应时间)、低资源消耗、高吞吐率、高稳定性和可靠性,在数据库领域得到广泛引用。存储过程除包含SQL语句外,还包含很多逻辑判断、循环等操作。用户编写的存储过程脚本,经过预编译后,永久有效。对于传统分布式数据库,存储过程代码只在一个服务节点执行,通常存储过程代码量较大,却无法在不同的数据节点上分担代码执行任务,使系统性能和吞吐效率提升,当涉及到SQL交互时,才会对SQL本身进行分布式查询。如果用户编写的存储过程脚本代码规模庞大,那么只在单节点顺序执行大量的逻辑判断和循环等操作,将会极大降低查询效率
现有技术中PL的解析、编译和执行都在某一个服务节点执行,当与SQL交互时,才进行分布式执行。传统方案会选择存储过程里访问的第一张表所在的节点编译和执行PL,当无法确定所访问数据所在的节点,会随机选择几个节点执行。因为是整体代码在一个节点执行,只能确保部分数据是本地访问,其它数据则只能通过分布式调用来获取,增加了网络消耗和分布式调用。
当分布式执行的SQL调用了PL函数时,PL函数可能在多个服务节点上编译,但是PL函数本身的逻辑代码只在一个服务节点执行。如果这些函数都在一个节点执行,那么由于分配不均衡,导致执行节点的服务器负载较高,而其他节点较为空闲,没能最大程度利用分布式集群的资源,由单节点的性能下降一起整个集群性能的降低。
发明内容
鉴于所述问题,提出了本申请以便提供克服所述问题或者至少部分地解决所述问题的一种基于分布式存储调用数据执行的优化方法及装置,包括:
一种基于分布式存储调用数据执行的优化方法,包括:
当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;
所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;
所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;
当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。
进一步地,所述当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息的步骤,包括:
当用户输入PL代码到目标服务节点时,所述目标服务节点加载所述PL代码;
所述目标服务节点解析所述PL代码得到解析结果,并获取所述PL代码的特征信息;
所述目标服务节点对所述解析结果进行校验。
进一步地,所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点的步骤,包括:
对所述PL代码进行编译得到可被服务器执行的机器码;
将所述机器码同步到所述辅助服务节点;
依据所述特征信息确定所述辅助服务节点执行的机器码代码段。
进一步地,所述依据所述特征信息确定所述辅助服务节点执行的机器码代码段的步骤,包括:
所述目标服务节点依据所述特征信息确定所述目标服务节点需要执行的所述机器码代码段;
所述目标服务节点依据所述特征信息确定所述辅助服务节点需要执行的所述机器码代码段。
进一步地,所述当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果的步骤,包括:
当用户调用存储数据时,所述目标服务节点依据所述特征信息依次选择执行机器码代码段的服务节点执行所述机器码代码段;
所述目标服务节点获取所述辅助服务节点的执行结果。
进一步地,所述当用户调用存储数据时,所述目标服务节点依据所述特征信息依次选择执行机器码代码段的服务节点执行所述机器码代码段的步骤,包括:
所述目标服务节点依据所述特征信息选择执行起始所述机器码代码段的服务节点执行起始所述机器码代码段;
所述目标服务节点依据所述特征信息选择执行下一段所述机器码代码段的服务节点执行下一段所述机器码代码段;
所述目标服务节点判断所述机器码是否执行完毕,若未执行完毕,继续选择执行下一段所述机器码代码段的服务节点继续执行。
进一步地,所述机器码的执行粒度是代码行级。
一种基于分布式存储调用数据执行的装置,所述分布式存储过程执行优化的装置实现上述任一项所述的分布式存储过程执行优化的方法的步骤,包括:
PL代码解析模块,用于当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;
服务节点确定模块,用于所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;
编译模块,用于所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;
执行模块,用于当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的基于分布式存储调用数据执行的优化方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的基于分布式存储调用数据执行的优化方法的步骤。
本申请具有以下优点:
在本申请的实施例中,针对于现有技术中存储过程脚本代码至在一个服务节点进行执行的缺点,本申请提供了一种基于分布式存储调用数据执行的优化方法,具体为:当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。通过对PL代码进行解析时提取特征信息,依据特征信息将PL代码分成若干个代码执行子任务,分配给不同的服务节点进行执行,提升整体集群的执行性能。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种基于分布式存储调用数据执行的优化方法的步骤流程图;
图2是本申请一实施例提供的一种基于分布式存储调用数据执行的装置的模块结构示意图;
图3是本发明一实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的所述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人通过分析现有技术发现:通过在编译阶段对代码进行优化,将特定的代码段分配相应的执行节点,从而使代码在多个服务节点上进行执行,提高存储过程执行的效率。
参照图1,示出了本申请一实施例提供的一种基于分布式存储调用数据执行的优化方法;
所述方法包括:
S110、当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;
S120、所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;
S130、所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;
S140、当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。
在本申请的实施例中,针对于现有技术中存储过程脚本代码至在一个服务节点进行执行的缺点,本申请提供了一种基于分布式存储调用数据执行的优化方法,具体为:当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。通过对PL代码进行解析时提取特征信息,依据特征信息将PL代码分成若干个代码执行子任务,分配给不同的服务节点进行执行,提升整体集群的执行性能。
下面,将对本示例性实施例中一种基于分布式存储调用数据执行的优化方法作进一步地说明。
如上述步骤S110所述,当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息。
在本发明一实施例中,可以结合下列描述进一步说明步骤S110所述“当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息”的具体过程。
需要说明的是,所述目标服务节点为在服务器集群中随机选择的服务节点,由该服务节点对PL代码进行解析并确定辅助服务节点,将PL代码分配给不同的服务节点进行执行。
如下列步骤所述,当用户输入PL代码到目标服务节点时,所述目标服务节点加载所述PL代码。
如下列步骤所述,所述目标服务节点解析所述PL代码得到解析结果,并获取所述PL代码的特征信息。
需要说明的是,解析所述PL代码是将所述PL代码转化为分布式数据库内的临时性数据结构,所述特征信息为SQL引擎在解析存储过程脚本时提取的数据字典、分区信息、数据统计信息等。
如下列步骤所述,所述目标服务节点对所述解析结果进行校验。进行校验的操作为分析语法是否正确、权限是否完整、数据表是否存在等。
如上述步骤S120所述,所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系。
在本发明一实施例中,可以结合下列描述进一步说明步骤S120所述“所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系”的具体过程。
需要说明的是,所述节点信息为目标服务节点加载所有节点的统计信息、分区信息和数据字典信息,确定节点是否空闲以及PL代码可执行的节点。
如上述步骤S130所述,所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点。
在本发明一实施例中,可以结合下列描述进一步说明步骤S130所述“所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点”的具体过程。
如下列步骤所述,对所述PL代码进行编译得到可被服务器执行的机器码。
如下列步骤所述,将所述机器码同步到所述辅助服务节点。确保所有服务节点,包括目标服务节点与辅助服务节点拥有相同的副本。
如下列步骤所述,依据所述特征信息确定所述辅助服务节点执行的机器码代码段。SQL引擎在解析存储过程脚本时,会将根据数据字典、分区信息、数据统计信息等,判断某一行或某一段代码会在具体特定的某个服务节点执行,解析完成后将编译结果下发到具体的服务节点。当执行存储过程时,该存储过程会被切分成若干个代码执行子任务,在不同的服务节点执行,提升整个集群的执行性能。
在本发明一实施例中,可以结合下列描述进一步说明所述“依据所述特征信息确定所述辅助服务节点执行的机器码代码段”的具体过程。
如下列步骤所述,所述目标服务节点依据所述特征信息确定所述目标服务节点需要执行的所述机器码代码段。
如下列步骤所述,所述目标服务节点依据所述特征信息确定所述辅助服务节点需要执行的所述机器码代码段。
对所述机器码代码段执行的服务节点确定之后,使代码分散在不同的服务节点进行执行,每个服务节点的数据相关性大大增加,确保了PL对数据的访问都是本地的,降低了网络消耗和分布式调用。
如上述步骤S140所述,当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。
在本发明一实施例中,可以结合下列描述进一步说明步骤S140所述“当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果”的具体过程。
需要说明的是,所述PL代码的执行粒度是代码行级,一行或多行代码,包括但不限于函数级或package级。
如下列步骤所述,当用户调用存储数据时,所述目标服务节点依据所述特征信息依次选择执行机器码代码段的服务节点执行所述机器码代码段。
在本发明一实施例中,可以结合下列描述进一步说明所述“当用户调用存储数据时,所述目标服务节点依据所述特征信息依次选择执行机器码代码段的服务节点执行所述机器码代码段”的具体过程。
如下列步骤所述,所述目标服务节点依据所述特征信息选择执行起始所述机器码代码段的服务节点执行起始所述机器码代码段。执行完毕后移交到下一个执行的服务节点。
如下列步骤所述,所述目标服务节点依据所述特征信息选择执行下一段所述机器码代码段的服务节点执行下一段所述机器码代码段。执行完毕后移交到下一个服务节点。
如下列步骤所述,所述目标服务节点判断所述机器码是否执行完毕,若未执行完毕,继续选择执行下一段所述机器码代码段的服务节点继续执行,执行完毕后移交到下一个服务节点。重复此操作直到所有所述机器码完全执行完毕,将执行结果移交到所述目标服务节点。
如下列步骤所述,所述目标服务节点获取所述辅助服务节点的执行结果。
在一具体实现中,用户创建了一个100万行代码的存储过程package,里面有1万个函数,整个分布式集群有10个服务节点。将这100万行代码分配到10个不同的服务节点,每个节点执行其中不同的10万行代码,同时确保每个PL对数据的访问都是本地的,降低了网络消耗和分布式调用;同时降低了单个服务节点的负责,整体提升了性能。
相较于传统分布式数据库,100万行代码只会在一个服务节点执行,即便是这100万行代码访问的表数据分散其他9个节点上面。因为要从不同的节点获取数据,在分布式内部就多了很多分布式调用,增加了网络消耗和额外流程处理;同时,如果同时有多个连接同时执行这100万行代码,也会对当前节点的硬件资源造成较大损耗,从而降低整个分布式的性能。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图2,示出了本申请一实施例提供的一种基于分布式存储调用数据执行的装置;
具体包括:
PL代码解析模块S210,用于当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;
服务节点确定模块S220,用于所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;
编译模块S230,用于所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;
执行模块S240,用于当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。
在本发明一实施例中,所述PL代码解析模块S210,包括:
加载子模块,用于当用户输入PL代码到目标服务节点时,所述目标服务节点加载所述PL代码;
解析子模块,用于所述目标服务节点解析所述PL代码得到解析结果,并获取所述PL代码的特征信息;
校验子模块,用于所述目标服务节点对所述解析结果进行校验。
在本发明一实施例中,所述编译模块S230,包括:
编译子模块,用于对所述PL代码进行编译得到可被服务器执行的机器码;
同步子模块,用于将所述机器码同步到所述辅助服务节点;
机器码代码段确定执行子模块,用于依据所述特征信息确定所述辅助服务节点执行的机器码代码段。
在本发明一实施例中,所述机器码代码段确定执行子模块,包括:
目标服务节点确定执行子模块,用于所述目标服务节点依据所述特征信息确定所述目标服务节点需要执行的所述机器码代码段;
辅助服务节点确定执行子模块,用于所述目标服务节点依据所述特征信息确定所述辅助服务节点需要执行的所述机器码代码段。
在本发明一实施例中,所述执行模块S240,包括:
选择执行子模块,用于当用户调用存储数据时,所述目标服务节点依据所述特征信息依次选择执行机器码代码段的服务节点执行所述机器码代码段;
执行结果获取子模块,用于所述目标服务节点获取所述辅助服务节点的执行结果。
在本发明一实施例中,所述选择执行子模块,包括:
起始代码段执行子模块,用于所述目标服务节点依据所述特征信息选择执行起始所述机器码代码段的服务节点执行起始所述机器码代码段;
中间代码段执行子模块,用于所述目标服务节点依据所述特征信息选择执行下一段所述机器码代码段的服务节点执行下一段所述机器码代码段;
代码段继续执行判断子模块,用于所述目标服务节点判断所述机器码是否执行完毕,若未执行完毕,继续选择执行下一段所述机器码代码段的服务节点继续执行。
参照图3,示出了本发明的一种基于分布式存储调用数据执行的优化方法的计算机设备,具体可以包括如下:
上述计算机设备12以通用计算设备的形式表现,计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线18结构中的一种或多种,包括存储器总线18或者存储器控制器,外围总线18,图形加速端口,处理器或者使用多种总线18结构中的任意总线18结构的局域总线18。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线18,微通道体系结构(MAC)总线18,增强型ISA总线18、音视频电子标准协会(VESA)局域总线18以及外围组件互连(PCI)总线18。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其他移动/不可移动的、易失性/非易失性计算机体统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质界面与总线18相连。存储器可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块42,这些程序模块42被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块42以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24、摄像头等)通信,还可与一个或者多个使得医护人员能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)界面22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN)),广域网(WAN)和/或公共网络(例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其他模块通信。应当明白,尽管图3中未示出,可以结合计算机设备12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元16、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统34等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种基于分布式存储调用数据执行的优化方法。
也即,上述处理单元16执行上述程序时实现:一种基于分布式存储调用数据执行的优化方法:当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。
在本发明实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有实施例提供的一种基于分布式存储调用数据执行的优化方法:
也即,给程序被处理器执行时实现:一种基于分布式存储调用数据执行的优化方法:当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机克顿信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPOM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在医护人员计算机上执行、部分地在医护人员计算机上执行、作为一个独立的软件包执行、部分在医护人员计算机上部分在远程计算机上执行或者完全在远程计算机或者服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到医护人员计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种基于分布式存储调用数据执行的优化方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (8)

1.一种基于分布式存储调用数据执行的优化方法,其特征在于,包括:
当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;其中,所述目标服务节点为在服务器集群中随机选择的服务节点,所述特征信息为SQL引擎在解析存储过程脚本时提取的数据字典、分区信息和数据统计信息;
所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;其中,所述节点信息为所有节点的统计信息、分区信息和数据字典信息;
所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;
当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果;具体地,当用户调用存储数据时,所述目标服务节点依据所述特征信息依次选择执行机器码代码段的服务节点执行所述机器码代码段;所述目标服务节点依据所述特征信息选择执行起始所述机器码代码段的服务节点执行起始所述机器码代码段;所述目标服务节点依据所述特征信息选择执行下一段所述机器码代码段的服务节点执行下一段所述机器码代码段;所述目标服务节点判断所述机器码是否执行完毕,若未执行完毕,继续选择执行下一段所述机器码代码段的服务节点继续执行;所述目标服务节点获取所述辅助服务节点的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息的步骤,包括:
当用户输入PL代码到目标服务节点时,所述目标服务节点加载所述PL代码;
所述目标服务节点解析所述PL代码得到解析结果,并获取所述PL代码的特征信息;
所述目标服务节点对所述解析结果进行校验。
3.根据权利要求1所述的方法,其特征在于,所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点的步骤,包括:
对所述PL代码进行编译得到可被服务器执行的机器码;
将所述机器码同步到所述辅助服务节点;
依据所述特征信息确定所述辅助服务节点执行的机器码代码段。
4.根据权利要求3所述的方法,其特征在于,所述依据所述特征信息确定所述辅助服务节点执行的机器码代码段的步骤,包括:
所述目标服务节点依据所述特征信息确定所述目标服务节点需要执行的所述机器码代码段;
所述目标服务节点依据所述特征信息确定所述辅助服务节点需要执行的所述机器码代码段。
5.根据权利要求1所述的方法,其特征在于,所述机器码的执行粒度是代码行级。
6.一种基于分布式存储调用数据执行的装置,其特征在于,所述分布式存储过程执行优化的装置实现如权利要求1至5中任一项所述的分布式存储过程执行优化的方法的步骤,包括:
PL代码解析模块,用于当用户输入PL代码到目标服务节点时,所述目标服务节点解析所述PL代码并获取所述PL代码的特征信息;其中,所述目标服务节点为在服务器集群中随机选择的服务节点,所述特征信息为SQL引擎在解析存储过程脚本时提取的数据字典、分区信息和数据统计信息;
服务节点确定模块,用于所述目标服务节点依据所述特征信息与节点信息确定辅助服务节点并维护所述PL代码与所述辅助服务节点的映射关系;其中,所述节点信息为所有节点的统计信息、分区信息和数据字典信息;
编译模块,用于所述目标服务节点对所述PL代码进行编译得到机器码并同步到所述辅助服务节点;
执行模块,用于当用户调用存储数据时,所述目标服务节点依据所述特征信息获取辅助服务节点的执行结果;具体地,当用户调用存储数据时,所述目标服务节点依据所述特征信息依次选择执行机器码代码段的服务节点执行所述机器码代码段;所述目标服务节点依据所述特征信息选择执行起始所述机器码代码段的服务节点执行起始所述机器码代码段;所述目标服务节点依据所述特征信息选择执行下一段所述机器码代码段的服务节点执行下一段所述机器码代码段;所述目标服务节点判断所述机器码是否执行完毕,若未执行完毕,继续选择执行下一段所述机器码代码段的服务节点继续执行;所述目标服务节点获取所述辅助服务节点的执行结果。
7.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-5中任一项所述的基于分布式存储调用数据执行的优化方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的基于分布式存储调用数据执行的优化方法的步骤。
CN202211638410.XA 2022-12-19 2022-12-19 一种基于分布式存储调用数据执行的优化方法及装置 Active CN116069464B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211638410.XA CN116069464B (zh) 2022-12-19 2022-12-19 一种基于分布式存储调用数据执行的优化方法及装置
PCT/CN2023/070708 WO2024130795A1 (zh) 2022-12-19 2023-01-05 一种基于分布式存储调用数据执行的优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211638410.XA CN116069464B (zh) 2022-12-19 2022-12-19 一种基于分布式存储调用数据执行的优化方法及装置

Publications (2)

Publication Number Publication Date
CN116069464A CN116069464A (zh) 2023-05-05
CN116069464B true CN116069464B (zh) 2024-01-16

Family

ID=86179465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211638410.XA Active CN116069464B (zh) 2022-12-19 2022-12-19 一种基于分布式存储调用数据执行的优化方法及装置

Country Status (2)

Country Link
CN (1) CN116069464B (zh)
WO (1) WO2024130795A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111343262A (zh) * 2020-02-20 2020-06-26 中国建设银行股份有限公司 分布式集群登录方法、装置、设备和存储介质
CN111367630A (zh) * 2019-07-12 2020-07-03 北京关键科技股份有限公司 一种基于云计算的多用户多优先级的分布式协同处理方法
CN114356555A (zh) * 2021-12-14 2022-04-15 南京欧珀软件科技有限公司 编程方法及相关装置
CN114791856A (zh) * 2022-06-27 2022-07-26 北京瑞莱智慧科技有限公司 基于K8s的分布式训练任务处理方法、相关设备及介质
CN115202876A (zh) * 2022-07-11 2022-10-18 医利捷(上海)信息科技有限公司 一种基于etl服务器的任务处理方法、系统和电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2716770C (en) * 2010-10-06 2012-03-13 Ibm Canada Limited - Ibm Canada Limitee Application services source refactoring
CN107766378A (zh) * 2016-08-22 2018-03-06 南京中兴新软件有限责任公司 请求信息的发送方法及装置、分布式数据库系统
US20190121669A1 (en) * 2017-10-20 2019-04-25 American Express Travel Related Services Company, Inc. Executing tasks using modular and intelligent code and data containers
CN109885585B (zh) * 2019-02-18 2020-01-10 星环信息科技(上海)有限公司 支持存储过程、触发器与视图的分布式数据库系统和方法
CN111694846B (zh) * 2020-06-04 2023-08-29 贵州易鲸捷信息技术有限公司 一种基于Type 2 JDBC驱动的分离模式分布式存储过程实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367630A (zh) * 2019-07-12 2020-07-03 北京关键科技股份有限公司 一种基于云计算的多用户多优先级的分布式协同处理方法
CN111343262A (zh) * 2020-02-20 2020-06-26 中国建设银行股份有限公司 分布式集群登录方法、装置、设备和存储介质
CN114356555A (zh) * 2021-12-14 2022-04-15 南京欧珀软件科技有限公司 编程方法及相关装置
CN114791856A (zh) * 2022-06-27 2022-07-26 北京瑞莱智慧科技有限公司 基于K8s的分布式训练任务处理方法、相关设备及介质
CN115202876A (zh) * 2022-07-11 2022-10-18 医利捷(上海)信息科技有限公司 一种基于etl服务器的任务处理方法、系统和电子设备

Also Published As

Publication number Publication date
WO2024130795A1 (zh) 2024-06-27
CN116069464A (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
CN110297689B (zh) 智能合约执行方法、装置、设备及介质
US7926035B2 (en) Testing multi-thread software using prioritized context switch limits
WO2018072493A1 (zh) 编译方法和编译系统
US8626786B2 (en) Dynamic language checking
US20130227194A1 (en) Active non-volatile memory post-processing
CN112104709B (zh) 智能合约的处理方法、装置、介质及电子设备
US10496659B2 (en) Database grouping set query
CN111562885A (zh) 数据处理方法、装置、计算机设备及存储介质
US20180300146A1 (en) Database operating method and apparatus
US9870314B1 (en) Update testing by build introspection
CN113157411B (zh) 一种基于Celery的可靠可配置任务系统及装置
CN114818565A (zh) 基于python的仿真环境管理平台、方法、设备及介质
CN113296786A (zh) 数据处理方法、装置、电子设备及存储介质
CN113986402A (zh) 函数调用方法、装置、电子设备及存储介质
CN115408391A (zh) 一种数据库表变更方法、装置、设备和存储介质
CN112052082A (zh) 任务属性优化方法、装置、服务器及存储介质
CN116069464B (zh) 一种基于分布式存储调用数据执行的优化方法及装置
CN112948136A (zh) 一种嵌入式操作系统异步日志记录的实现方法
US8607201B2 (en) Augmenting visualization of a call stack
CN111611479A (zh) 用于网络资源推荐的数据处理方法及相关装置
CN109491904B (zh) 一种SparkSQL应用程序的自动化测试方法和装置
CN112766470A (zh) 特征数据处理方法、指令序列生成方法、装置及设备
CN115705294B (zh) 用于获取函数调用信息的方法、装置、电子设备和介质
CN113032256B (zh) 自动化测试方法、装置、计算机系统和可读存储介质
CN114217790A (zh) 接口编排调度方法、装置、电子设备及介质

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