一种数据查找方法及设备与流程

文档序号:14779451发布日期:2018-06-26 10:52阅读:248来源:国知局

本发明实施例涉及通信技术领域,尤其涉及一种数据查找方法及设备。



背景技术:

集群数据库系统是一种利用多台数据库服务器构建的数据库集群的系统,该集群数据库系统包括协调节点和数据节点。

数据节点可以在与协调节点交互的过程中查找待查找数据。具体的,协调节点可以接收用户终端发送的携带有查询语句的访问请求,该查询语句可以为结构化查询语言(英文:Structured Query Language,简称:SQL)语句,然后对该查询语句执行语法语义解析和查询重写操作,生成执行计划,并根据执行计划生成查询计划树,然后根据查询计划树生成包含数据节点可以识别的指令集的执行结构体;向数据节点发送该执行结构体。数据节点在接收到执行结构体之后,需要根据执行结构体从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将该待查找数据所在数据块保存至预设缓存区,然后才可以根据执行结构体在预设缓存区中读取到待查找数据。

但是,数据节点接收到执行结构体后,并不能直接根据执行结构体读取到待查找数据,而是需要先从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将该待查找数据所在数据块保存至预设缓存区,然后才可以从预设缓存区中读取到待查找数据。即数据节点从接收到执行结构体开始,需要较长的时间才可以查找到待查找数据,数据节点查找待查找数据所用的时间较长,查找的效率较低。



技术实现要素:

本发明的实施例提供一种数据查找方法及设备,可以缩短数据节点查找待查找数据所用的时间,提高查找效率。

为达到上述目的,本发明的实施例采用如下技术方案:

本发明实施例的第一方面,提供一种数据查找方法,可以应用于集群数据库系统中,该集群数据库系统可以包括:协调节点和数据节点,本发明实施例的方法可以包括:协调节点获取查询语句,并解析该查询语句获得待查找数据所在数据块的标识;协调节点在获得待查找数据所在数据块的标识后,向数据节点发送数据预取指令,该数据预取指令中携带有待查找数据所在数据块的标识,该数据预取指令用于指示数据节点从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区。

其中,协调节点可以在解析查询语句获得待查找数据所在数据块的标识后,便向数据节点发送数据预取指令,以指示数据节点预先从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区;而不是传统技术中协调节点在生成执行结构体并向数据节点发送执行结构体之后,数据节点才可以从集群数据库系统中的磁盘中读取待查找数据所在数据块。如此,在协调节点生成执行结构体之前,数据节点便可以预先从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区,以便于在接收到协调节点发送的执行结构体后,可以根据执行结构体直接从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。这样,便可以缩短数据节点查找待查找数据所用的时间,从而可以缩短整个数据查找过程中查找待查找数据所用的时间,提高了查找效率。

在一种可能的实现方式中,在协调节点获取查询语句,并解析该查询语句获得待查找数据所在数据块的标识之后,本发明实施例的方法还可以包括:协调节点根据查询语句生成执行结构体;协调节点向数据节点发送该执行结构体;其中,该执行结构体中包含查询语句对应的算子操作的指令集和数据节点与集群数据库系统中的其他节点交互时执行的算子操作的指令集,上述查询语句对应的算子操作的指令集中包含待查找数据所在数据块的标识和待查找数据的标识。

其中,协调节点对查询语句进行解析,并最终将查询语句转换为执行结构体,由于该执行结构体中包含数据节点可以识别的指令集,而该指令集为查询语句对应的算子操作的指令集;因此数据节点可以通过执行该算子操作的指令集,完成上述查询语句对应的数据查找操作,即数据节点可以根据执行结构体查找待查找数据。

在一种可能的实现方式中,上述“协调节点根据查询语句生成执行结构体”的方法可以包括:协调节点通过查询重写对查询语句进行优化;协调节点根据优化后的查询语句生成执行计划,该执行计划可以用于指示查找数据时的数据访问方式;协调节点根据执行计划生成查询计划树,该查询计划树中包含算子树,该算子树中包含查询语句对应的算子操作。

其中,协调节点可以将优化后的查询语句与生成的执行计划进行融合,生成查询计划树,该查询计划树中包含算子树,数据节点可以根据该算子树中包含的查询语句对应的算子操作的指令集,完成上述查询语句对应的数据查找操作。

在一种可能的实现方式中,上述“协调节点在获得待查找数据所在数据块的标识后,向数据节点发送数据预取指令”的方法可以包括:协调节点在协调节点生成执行计划的过程中,向数据节点发送数据预取指令。

其中,协调节点可以在执行计划生成的过程中,通过代价模型确定出查找数据时的数据访问方式和待查找数据所在数据块,并开启数据预取线程,向数据节点发送携带有待查找数据所在数据块的标识的数据预取指令。

在一种可能的实现方式中,查询语句可以为结构化查询语言SQL语句。

其中,上述SQL语句可以包括数据查询语言(英文:Data Query Language,简称:DQL)、数据操纵语言(英文:Data Manipulation Language,简称:DML)、数据定义语言(英文:Data Definition Language,简称:DDL)和数据控制语言(英文:Data Control Language,简称:DCL)。

本发明实施例的第二方面,提供一种数据查找方法,可以应用于集群数据库系统中,该集群数据库系统可以包括:协调节点和数据节点,本发明实施例的方法可以包括:数据节点接收协调节点发送的数据预取指令,该数据预取指令中携带有待查找数据所在数据块的标识;数据节点根据数据预取指令中携带的数据块的标识,读取待查找数据所在数据块,并将读取到的数据块保存至预设缓存区。

其中,数据节点在接收到协调节点发送的数据预取指令后,可以预先从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区;而不是在数据节点接收到协调节点发送的执行结构体之后,数据节点才从集群数据库系统中的磁盘中读取待查找数据所在数据块。如此,在协调节点生成执行结构体之前,数据节点便可以预先从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区,以便于在接收到协调节点发送的执行结构体后,可以直接根据执行结构体从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。这样,便可以缩短数据节点查找待查找数据所用的时间,从而可以缩短整个数据查找过程中查找待查找数据所用的时间,提高了查找效率。

在一种可能的实现方式中,在数据节点接收协调节点发送的数据预取指令之后,本发明实施例的方法还可以包括:数据节点接收协调节点发送的执行结构体;其中,该执行结构体中包含查询语句对应的算子操作的指令集和数据节点与集群数据库系统中的其他节点(集群数据库系统中的集群模块管理器、全局事务管理器、工作负载管理器以及协调节点等节点)交互时执行的算子操作的指令集,查询语句对应的算子操作的指令集中包含待查找数据所在数据块的标识和待查找数据的标识;数据节点停止执行预取指令,该预取指令可以用于指示所述数据节点根据数据预取指令中携带的数据块的标识,读取待查找数据所在数据块;数据节点根据执行结构体,从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。

其中,在数据节点接收到执行结构体之后,协调节点向数据节点发送数据预取停止指令,数据节点在接收到数据预取停止指令之后,结束数据预取线程,停止执行预取指令,该预取指令可以用于指示数据节点读取待查找数据所在数据块,并从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。

本发明实施例的第三方面,提供一种协调节点,可以应用于集群数据库系统中,该集群数据库系统可以包括:协调节点和数据节点,上述协调节点可以包括:获取单元、解析单元和发送单元。其中,获取单元,用于获取查询语句。解析单元,用于解析获取单元获取的查询语句,获得待查找数据所在数据块的标识。发送单元,用于在解析单元获得待查找数据所在数据块的标识后,向数据节点发送数据预取指令,该数据预取指令中携带有待查找数据所在数据块的标识,该数据预取指令可以用于指示数据节点从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区。

在一种可能的实现方式中,在获取单元获取查询语句,且解析单元解析查询语句获得待查找数据所在数据块的标识之后,协调节点还可以包括:生成单元。生成单元,用于根据获取单元获取的查询语句生成执行结构体。发送单元,还用于向数据节点发送生成单元生成的执行结构体。其中,该执行结构体中包含查询语句对应的算子操作的指令集和数据节点与集群数据库系统中的其他节点交互时执行的算子操作的指令集,查询语句对应的算子操作的指令集中包含待查找数据所在数据块的标识和待查找数据的标识。

在一种可能的实现方式中,生成单元,具体可以用于:通过查询重写对查询语句进行优化;根据优化后的查询语句生成执行计划,执行计划可以用于指示查找数据时的数据访问方式;根据执行计划生成查询计划树,查询计划树中包含算子树,该算子树中包含查询语句对应的算子操作;根据查询计划树生成执行结构体。

在一种可能的实现方式中,发送单元,具体可以用于:在生成单元生成执行计划的过程中,向数据节点发送数据预取指令。

在一种可能的实现方式中,查询语句可以为结构化查询语言SQL语句。

需要说明的是,本发明实施例的第三方面及其各种可能的实现方式的各个功能单元,是为了执行上述第一方面以及第一方面的各种可选方式的数据查找方法,而对协调节点进行的逻辑上的划分。第三方面及其各种可能的实现方式的各个功能单元的详细描述以及有益效果分析可以参考上述第一方面及其各种可能的实现方式中的对应描述及技术效果,此处不再赘述。

第四方面,提供一种协调节点,该协调节点包括:一个或多个处理器、存储器、总线和收发器。存储器用于存储计算机执行指令,处理器与存储器通过总线连接,当协调节点运行时,处理器执行存储器存储的计算机执行指令,以使协调节点执行如第一方面以及第一方面的各种可选方式中的用于数据查找方法。

第五方面,提供一种计算机存储介质,该计算机存储介质中存储有一个或多个程序代码,当第四方面中的协调节点的处理器执行该程序代码时,协调节点执行如第一方面以及第一方面的各种可选方式中的用于数据查找方法。

上述第三方面和第四方面中协调节点的各个模块的详细描述和相应技术效果分析可参见上述第一方面及其各种可能的实现方式中的详细描述,本发明实施例这里不再赘述。

本发明实施例的第六方面,提供一种数据节点,可以应用于集群数据库系统中,该集群数据库系统可以包括:协调节点和数据节点,该数据节点可以包括:接收单元、读取单元和保存单元。其中,接收单元,用于接收协调节点发送的数据预取指令,该数据预取指令中携带有待查找数据所在数据块的标识。读取单元,用于根据接收单元接收的数据预取指令中携带的数据块的标识,读取待查找数据所在数据块。保存单元,用于将读取单元读取到的数据保存至预设缓存区。

在一种可能的实现方式中,接收单元,还用于在接收协调节点发送的数据预取指令之后,接收协调节点发送的执行结构体。其中,该执行结构体中包含查询语句对应的算子操作的指令集和数据节点与集群数据库系统中的其他节点交互时执行的算子操作的指令集,查询语句对应的算子操作的指令集中包含待查找数据所在数据块的标识和待查找数据的标识;

在一种可能的实现方式中,在接收单元接收到协调节点发送的执行结构体之后,数据节点还包括:停止单元。停止单元,用于停止执行预取指令,该预取指令可以用于指示数据节点根据数据预取指令中携带的数据块的标识,读取待查找数据所在数据块。读取单元,还用于根据执行结构体,从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。

需要说明的是,本发明实施例的第六方面及其各种可能的实现方式的各个功能单元,是为了执行上述第二方面以及第二方面的各种可选方式所述的数据查找方法,而对数据节点进行的逻辑上的划分。第六方面及其各种可能的实现方式的各个功能单元的详细描述以及有益效果分析可以参考上述第二方面及其各种可能的实现方式中的对应描述及技术效果,此处不再赘述。

本发明实施例的第七方面,提供一种数据节点,该数据节点包括:一个或多个处理器、存储器、总线和收发器。存储器用于存储计算机执行指令,处理器与存储器通过总线连接,当数据节点运行时,处理器执行存储器存储的计算机执行指令,以使数据节点执行如第二方面以及第二方面的各种可选方式中的用于数据查找方法。

本发明实施例的第八方面,提供一种计算机存储介质,该计算机存储介质中存储有一个或多个程序,该一个或多个程序包括指令,当第七方面中的数据节点的处理器执行所述指令时,数据节点执行如第二方面及其各种可选方式所述的数据查找方法。

上述第六方面和第七方面中数据节点的各个模块的详细描述和相应技术效果分析可参见上述第二方面及其各种可能的实现方式中的详细描述,本发明实施例这里不再赘述。

附图说明

图1为本发明实施例提供的一种集群数据库系统的结构示意图;

图2为本发明实施例提供的一种数据查找方法的数据查找过程的实例示意图;

图3为本发明实施例提供的一种数据查找方法流程图;

图4为本发明实施例提供的另一种数据查找方法的数据查找过程的实例示意图;

图5为本发明实施例提供的一种数据节点查找待查找数据所用时间的实例示意图;

图6为本发明实施例提供的另一种数据查找方法流程图;

图7为本发明实施例提供的另一种数据查找方法流程图;

图8为本发明实施例提供的另一种数据查找方法流程图;

图9为本发明实施例提供的另一种数据查找方法流程图;

图10为本发明实施例提供的一种协调节点的结构示意图;

图11为本发明实施例提供的另一种协调节点的结构示意图;

图12为本发明实施例提供的另一种协调节点的结构示意图;

图13为本发明实施例提供的一种数据节点的结构示意图;

图14为本发明实施例提供的另一种数据节点的结构示意图;

图15为本发明实施例提供的另一种数据节点的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部实施例。

本发明实施例提供的数据查找方法及设备可以应用于集群数据库系统的数据查找过程中。

请参考图1,其示出了本发明实施例提供的一种集群数据库系统的结构示意图。如图1所示,该集群数据库系统可以包括:集群模块管理器、全局事务管理器、工作负载管理器、至少一个协调节点、至少两个数据节点以及存储器。

其中,存储器可以包括磁盘和预设缓存区,协调节点和数据节点可以为独立的两个服务器,也可以为一个服务器中的两个模块。集群数据库系统中的集群模块管理器、全局事务管理器、工作负载管理器、协调节点以及数据节点等节点可以通过如图1所示的节点网络通道进行数据传输。

具体的,集群管理模块可以管理和监控该集群数据库系统中的各个节点的运行情况和资源的分配情况;全局事务管理器可以通过生成全局事务标识,实现对全局事务的控制以及保证数据的一致性,使得数据查找操作能够准确完成;工作负载管理器可以对各个节点的业务负载进行鉴定标识、管理和监视,防止过量业务负载对系统的冲击而导致业务拥塞和系统崩溃。

协调节点可以接收用户终端各个业务应用的访问请求(该访问请求携带有查询语句),并将各个业务应用分配给各个数据节点;数据节点可以根据上述业务应用的查询语句执行数据操作,例如该数据操作可以为数据查找操作和/或数据写入操作,并向协调节点返回执行的操作结果,协调节点在接收到数据节点发送的操作结果后,向用户终端返回该操作结果。

具体的,如图2所示,协调节点接收查询语句后,对查询语句执行编译绑定生成执行结构体的过程具体可以为:协调节点对查询语句执行语法语义解析和查询重写操作,生成执行计划,并根据执行计划生成查询计划树,然后根据查询计划树生成执行结构体(该执行结构体中包含查询语句对应的算子操作的指令集和数据节点与集群数据库系统中的其他节点交互时执行的算子操作的指令集,查询语句对应的算子操作的指令集中包含待查找数据所在数据块的标识和待查找数据的标识),并将该执行结构体发送给数据节点;由于执行结构体中包含数据节点可以识别的指令集,而该指令集为查询语句对应的算子操作的指令集;因此数据节点可以通过执行该算子操作的指令集,完成上述查询语句对应的数据查找操作,即数据节点可以在接收到执行结构体之后,根据执行结构体从存储器的磁盘中读取待查找数据所在的数据块,并将读取到的待查找数据所在数据块保存到存储器的预设缓存区中,然后再从预设缓存区中保存的待查找数据所在数据块中查找待查找数据。

本发明实施例提供的一种数据查找方法及设备,可以在执行集群数据库系统的数据查找过程中,缩短数据节点查找待查找数据所用的时间,提高查找效率。

下面结合附图,通过具体的实施例及其应用场景对本发明实施例提供的一种数据查找方法及设备进行详细地说明。

本发明实施例提供一种数据查找方法,如图3所示,该数据查找方法包括:

S301、协调节点获取查询语句,并解析查询语句获得待查找数据所在数据块的标识。

其中,本发明实施例中的数据查找方法可以应用与集群数据库系统中,该集群数据库系统可以包括:协调节点和数据节点。协调节点可以接收用户终端各个业务应用的访问请求(该访问请求携带有查询语句),并将各个业务应用分配给各个数据节点。协调节点可以根据用户终端业务应用的访问请求,获取查询语句,并可以通过语法语义解析对查询语句进行编译解析,获得待查找数据所在数据块的标识。

示例性的,上述查询语句可以为SQL语句:SELECT C1,C2,C3FROM TB1 WHERE C4=8。协调节点可以通过语法语义解析对SQL语句进行编译解析,确定出待查找数据(例如C1,C2,C3)所在数据块(例如TB1)。具体的,协调节点可以在如图2所示的编译绑定生成执行结构体的语法语义解析阶段确定出TB1,即协调节点可以在语法解析之后的语义解析过程中确定出TB1。或者,协调节点也可以在语义解析之后,执行计划生成的过程中确定TB1。其中,上述数据块TB可以为传输块(英文:Transport Block,简称:TB)。

S302、协调节点在获得待查找数据所在数据块的标识后,向数据节点发送数据预取指令,该数据预取指令中携带有待查找数据所在数据块的标识,数据预取指令用于指示数据节点从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区。

其中,协调节点在确定待查找数据所在数据块之后,可以开启数据预取线程向数据节点发送携带有待查找数据所在数据块的标识的数据预取指令,使得数据节点可以从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区。

为了在执行集群数据库系统的数据查找过程中,缩短数据节点查找待查找数据所用的时间,提高查找效率,如图4所示,协调节点可以在生成执行结构体的过程中,向数据节点下发数据预取指令(数据预取指令中携带有待查找数据所在数据块的标识),使得数据节点可以预先从存储器的集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至存储器的预设缓存区中,然后在协调节点生成执行结构体之后,数据节点可以直接根据执行结构体从预设缓存区中保存的待查找数据所在数据块中查找待查找数据。

示例性的,协调节点在确定待查找数据所在数据块之后,可以在如图4所示的编译绑定生成执行结构体的语法解析之后的语义解析过程中,向数据节点发送数据预取指令;或者,协调节点也可以在如图4所示的编译绑定生成执行结构体的生成执行计划过程中,向数据节点发送数据预取指令。

S303、数据节点接收协调节点发送的数据预取指令,该数据预取指令中携带有待查找数据所在数据块的标识。

其中,数据预取指令可以用于指示数据节点从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区。

S304、数据节点根据数据预取指令中携带的数据块的标识,读取待查找数据所在数据块,并将读取到的待查找数据所在数据块保存至预设缓存区。

其中,数据节点在接收到协调节点发送的数据预取指令之后,可以开启一个线程从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区。

由于现有技术中协调节点是在如图4所示的编译绑定生成执行结构体之后,向数据节点发送数据预取指令;而本发明实施例中协调节点可以在如图4所示的编译绑定生成执行结构体过程中,向数据节点发送数据预取指令,使得数据节点可以预先从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将读取到的待查找数据所在数据块保存至预设缓存区,而不是在生成执行结构体并向数据节点发送执行结构体之后,数据节点才可以从集群数据库系统中的磁盘中读取待查找数据所在数据块。如此,在协调节点生成执行结构体的过程中,数据节点便可以预先从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区,以便于在接收到协调节点发送的执行结构体后,可以根据执行结构体直接从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。这样,便可以缩短数据节点查找待查找数据所用的时间,提高查找效率。

示例性的,如图5所示,由于现有技术中协调节点从t0时刻开始对查询语句进行编译绑定到t2时刻生成执行结构体所用的时间为T1+T2;然后协调节点在t2时刻向数据节点发送执行结构体,数据节点从t2时刻开始接收执行结构体,并在接收到执行结构体后,在t3时刻从集群数据库系统中的磁盘中读取到待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区,即数据节点从接收到执行结构体到将待查找数据所在数据块保存至预设缓存区所用的时间为T3;最后数据节点从t3时刻开始从预设缓存区中保存的待查找数据所在数据块中读取待查找数据,到t4时刻从预设缓存区中读取到待查找数据所用的时间为T4。因此,现有技术中集群数据库系统中的各个节点在查找到待查找数据所需的时间为T1+T2+T3+T4。

而本发明实施例中协调节点从t0时刻开始对查询语句进行编译绑定到t1时刻生成执行计划所用的时间为T1;协调节点继续完成编译绑定生成执行结构体的过程,并在t1时刻向数据节点发送数据预取指令,数据节点从t1时刻开始接收数据预取指令,并在接收到数据预取指令后,在t2时刻预先从集群数据库系统中的磁盘中读取到待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区,即数据节点从接收到数据预取指令到预先从集群数据库系统中的磁盘中读取到待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区所用的时间为T2;协调节点在t2时刻生成执行结构体,并向数据节点发送执行结构体,数据节点在接收到执行结构体后,从t3时刻开始从预设缓存区中保存的待查找数据所在数据块中读取待查找数据,到t4时刻从预设缓存区中读取到待查找数据所用的时间为T4。因此,本发明实施例中集群数据库系统中的各个节点在查找到待查找数据所需的时间为T1+T2+T4。

综上而言,本发明实施例中数据节点查找待查找数据所用的时间少于现有技术中数据节点查找待查找数据所用的时间。

本发明实施例提供一种数据查找方法,协调节点可以在解析查询语句获得待查找数据所在数据块的标识后,便向数据节点发送数据预取指令,以指示数据节点预先从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区;而不是在协调节点生成执行结构体并向数据节点发送执行结构体之后,数据节点才可以从集群数据库系统中的磁盘中读取待查找数据所在数据块。如此,在协调节点生成执行结构体之前,数据节点便可以预先从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将待查找数据所在数据块保存至预设缓存区,以便于在接收到协调节点发送的执行结构体后,可以根据接收到的执行结构体,直接从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。这样,便可以缩短数据节点查找待查找数据所用的时间,从而可以缩短整个数据查找过程中查找待查找数据所用的时间,提高了查找效率。

协调节点在获得待查找数据所在数据块的标识之后,向数据节点发送数据预取指令的过程中,协调节点仍然在继续执行编译绑定生成执行结构体过程。具体的,如图6所示,在图3所示的S301之后,本发明实施例的方法还可以包括S601和S602:

S601、协调节点根据查询语句生成执行结构体。

其中,协调节点对查询语句进行编译绑定,并最终将查询语句转换为执行结构体,该执行结构体中包含查询语句对应的算子操作的指令集和数据节点与集群数据库系统中的其他节点(集群数据库系统中的集群模块管理器、全局事务管理器、工作负载管理器以及协调节点等节点)交互时执行的算子操作的指令集,查询语句对应的算子操作的指令集中包含待查找数据所在数据块的标识和待查找数据的标识。

S602、协调节点向数据节点发送执行结构体。

其中,由于执行结构体中包含数据节点可以识别的指令集,而该指令集为查询语句对应的算子操作的指令集;因此数据节点可以通过执行该算子操作的指令集,完成上述查询语句对应的数据查找操作。

本发明实施例中协调节点可以对查询语句进行编译解析,生成执行结构体。具体的,如图7所示,图6所示的S601可以包括S701-S704:

S701、协调节点通过查询重写对查询语句进行优化。

其中,协调节点可以通过查询重写对查询语句进行逻辑优化,即利用查询语言的语义性质,将查询语句进行等价变换以获得优化的逻辑计划。

S702、协调节点根据优化后的查询语句生成执行计划,该执行计划用于指示查找数据时的数据访问方式。

其中,协调节点可以采用代价模型对查询语句进行物理优化,估算出各个逻辑计划的运行代价,选取出在绑定编译生成执行结构体的过程中运行代价最小的执行计划,该执行计划可以用于指示查找数据时的数据访问方式,例如索引访问或表访问。

S703、协调节点根据执行计划生成查询计划树,该查询计划树中包含算子树,该算子树中包含查询语句对应的算子操作。

其中,协调节点可以将优化后的查询语句与生成的执行计划进行融合,生成查询计划树,该查询计划树中包含算子树,数据节点可以根据该算子树中包含的查询语句对应的算子操作的指令集,完成上述查询语句对应的数据查找操作。

S704、协调节点根据查询计划树生成执行结构体。

其中,执行结构体用于指示数据节点在预设缓存区查找待查找数据。

协调节点在获得待查找数据所在数据块的标识后,向数据节点发送数据预取指令。具体的,如图8所示,图3所示的S302可以替换为S302a:

S302a、协调节点在协调节点生成执行计划的过程中,向数据节点发送数据预取指令。

其中,协调节点可以在如图4所示的执行计划生成过程中,通过代价模型确定出查找数据时的数据访问方式和待查找数据所在数据块,并开启数据预取线程,向数据节点发送携带有待查找数据所在数据块的标识的数据预取指令。

在协调节点根据查询计划树生成执行结构体之后,向数据节点发送执行结构体,数据节点在接收到执行结构体之后,停止执行预取指令。具体的,如图9所示,在图6所示的S303之后,本发明实施例的方法还可以包括S901-S903:

S901、数据节点接收协调节点发送的执行结构体。

其中,在协调节点向数据节点发送数据预取指令之后,数据节点可以从集群数据库系统中的磁盘中读取待查找数据所在数据块,并将读取到的待查找数据所在数据块保存至预设缓存区;同时,协调节点可以继续执行绑定编译生成执行结构体的过程,并在生成执行结构体之后,向数据节点发送执行结构体。

S902、数据节点停止执行预取指令,该预取指令用于指示数据节点根据数据预取指令中携带的数据块的标识,读取待查找数据所在数据块。

其中,在数据节点接收到执行结构体之后,协调节点会向数据节点发送数据预取停止指令,数据节点在接收到数据预取停止指令之后,结束数据预取线程,停止执行预取指令,该预取指令用于指示数据节点读取待查找数据所在数据块。

示例性的,本发明实施例中的数据预取停止指令也可以是图4所示的本地事务代理模块或者全局事务管理器发送的。

S903、数据节点根据执行结构体,从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。

其中,数据节点可以在接收到执行结构体,停止执行预取指令(该预取指令可以用于指示数据节点读取待查找数据所在数据块)之后,根据接收到的执行结构体从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。

可选的,数据节点也可以在接收到执行结构体之后,继续执行预取指令,该预取指令可以用于指示数据节点根据数据预取指令中携带的数据块的标识,读取待查找数据所在数据块,并将读取到的待查找数据所在数据块保存至预设缓存区;并且在数据节点继续执行预取指令的过程中,数据节点还可以同时执行“从预设缓存区中保存的待查找数据所在数据块中读取待查找数据”。

上述主要从协调节点与数据节点交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,协调节点与数据节点为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的协调节点与数据节点及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明实施例可以根据上述方法示例对协调节点与数据节点进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本发明实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图10示出了上述实施例中所涉及的协调节点的一种可能的结构示意图。该协调节点1000可以包括:获取单元1001、解析单元1002和发送单元1003。其中,获取单元1001,用于获取查询语句。例如,获取单元1001,用于支持上述实施例中的S301,和/或用于本文所描述的技术的其它过程。解析单元1002,用于解析查询语句获得待查找数据所在数据块的标识。例如,解析单元1002,用于支持上述实施例中的S301,和/或用于本文所描述的技术的其它过程。发送单元1003,用于向数据节点发送数据预取指令和执行结构体。例如,发送单元1003,用于支持上述实施例中的S302、S302a和S602,和/或用于本文所描述的技术的其它过程。

进一步的,如图11所示,该协调节点1000还可以包括:生成单元1004。生成单元1004,用于根据查询语句生成执行结构体。例如,生成单元1004,用于支持上述实施例中的S601、S701、S702、S703和S704,和/或用于本文所描述的技术的其它过程。

当然,本发明实施例提供的协调节点1000包括但不限于上述所述的功能单元,例如协调节点1000中还可以包括存储单元和接收单元。存储单元可以用于存储待查找数据所在数据块。接收单元,可以用于接收数据节点发送的数据查找操作的结果。

在采用集成的单元的情况下,上述获取单元1001、解析单元1002和生成单元1004等可以集成在一个处理单元中实现,该处理单元可以是处理器或控制器,例如可以是CPU,通用处理器,数字信号处理器(英文:Digital Signal Processor,简称:DSP),专用集成电路(英文:Application-Specific Integrated Circuit,简称:ASIC),现场可编程门阵列(英文:Field Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种举例说明逻辑方框,模块和电路。处理单元也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。发送单元1003和接收单元可以集成在一个通信单元中实现,该通信单元可以是通信接口、收发电路或收发器等。存储单元可以是存储器。

当上述处理单元为处理器,存储单元为存储器,通信单元为收发器时,本发明实施例所涉及的协调节点1000可以为图12所示的协调节点1200。参阅图12所示,协调节点1200包括:一个或多个处理器1201、存储器1202、收发器1203以及总线1204。其中,一个或多个处理器1201、存储器1202和收发器1203通过总线1204相互连接。其中,总线1204可以是外设部件互连标准(英文:Peripheral Component Interconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended Industry Standard Architecture,简称:EISA)总线等。上述总线1204可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

本发明实施例还提供一种计算机存储介质,该计算机存储介质中存储有一个或多个程序代码,当协调节点1200的处理器1201执行该程序代码时,该协调节点1200执行图3、图6-图9中任一附图中的相关方法步骤。

其中,本发明实施例提供的协调节点1200中各个模块或单元的详细描述以及各个模块或单元执行图3、图6-图9中任一附图中的相关方法步骤后所带来的技术效果可以参考本发明方法实施例中的相关描述,此处不再赘述。

图13示出了上述实施例中所涉及的数据节点的一种可能的结构示意图。该数据节点1300可以包括:接收单元1301、读取单元1302和保存单元1303。其中,接收单元1301,用于协调节点发送的数据预取指令和执行结构体。例如,接收单元1301,用于支持上述实施例中的S303和S901,和/或用于本文所描述的技术的其它过程。读取单元1302,用于读取待查找数据所在数据块以及从预设缓存区中保存的待查找数据所在数据块中读取待查找数据。例如,读取单元1302,用于支持上述实施例中的S304和S903,和/或用于本文所描述的技术的其它过程。保存单元1303,用于将读取到的待查找数据所在数据块保存至预设缓存区。例如,保存单元1303,用于支持上述实施例中的S304,和/或用于本文所描述的技术的其它过程。

进一步的,如图14所示,该数据节点1300还可以包括:停止单元1304。其中,停止单元1304,用于停止执行预取指令,该预取指令可以用于指示数据节点根据数据预取指令中携带的数据块的标识,读取待查找数据所在数据块。例如,停止单元1304,用于支持上述实施例中的S902,和/或用于本文所描述的技术的其它过程。

当然,本发明实施例提供的数据节点1300包括但不限于上述所述的功能单元,例如数据节点1300中还可以包括存储单元和发送单元。存储单元可以用于存储待查找数据。发送单元,可以用于向协调节点发送数据查找操作的结果。

在采用集成的单元的情况下,上述读取单元1302和保存单元1303等功能单元可以集成在一个处理单元中实现,处理单元可以是处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种举例说明逻辑方框,模块和电路。处理单元也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。接收单元1301和发送单元可以集成在一个通信单元中实现,该通信单元可以是通信接口、收发电路或收发器等。存储单元可以是存储器。

当上述处理单元为处理器,存储单元为存储器,通信单元为收发器时,本发明实施例所涉及的数据节点1300可以为图15所示的数据节点1500。

参阅图15所示,数据节点1500包括:一个或多个处理器1501、存储器1502、收发器1503以及总线1504。其中,一个或多个处理器1501、存储器1502和收发器1503通过总线1504相互连接。其中,总线1504可以是PCI总线或EISA总线等。总线1504可以分为地址总线、数据总线、控制总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

本发明实施例还提供一种计算机存储介质,该计算机存储介质中存储有一个或多个程序代码,当数据节点1500的处理器1501执行该程序代码时,数据节点1500执行图3、图6-图9中任一附图中的相关方法步骤。

其中,本发明实施例提供的数据节点1500中各个模块的详细描述以及各个模块执行图3、图6-图9中任一附图中的相关方法步骤后所带来的技术效果可以参考本发明方法实施例中的相关描述,此处不再赘述。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1