一种分布式数据库及其对数据进行管理的方法与流程

文档序号:14835847发布日期:2018-06-30 12:22阅读:207来源:国知局
一种分布式数据库及其对数据进行管理的方法与流程

本发明涉及计算机技术领域,特别涉及一种分布式数据库及其对数据进行管理的方法。



背景技术:

随着计算机应用技术的快速的发展,产生的数据也大量增加,通常需要构建分布式数据库来管理海量数据。

目前,分布式数据库通常由一个全局控制节点和多个存储节点构成,全局控制节点可接收各个应用服务器分别发送的数据管理请求,针对每一个数据管理请求分别与相应的数据存储节点进行信息交互以实根据各个数据管理请求在各个存储节点中针对相应的数据进行管理。

上述技术方案中,当各个应用服务器高并发访问全局控制节点时,即全局控制节点需要同时针对多个应用服务器分别发送的数据管理请求分别与相应的存储节点进行信息交互时,全局控制节点负载较高,可能影响分布式数据库的响应速度。



技术实现要素:

本发明实施例提供了一种分布式数据库及其对数据进行管理的方法,分布式数据库的响应速度较快。

第一方面,本发明提供了一种分布式数据库,包括:

全局控制节点、至少两个协调节点和至少两个存储节点;其中,

所述全局控制节点,用于接收至少两个服务器发送的至少两个数据管理请求,确定各个所述协调节点所分别对应的负载参数,根据各个所述协调节点所分别对应的负载参数,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点;

每一个所述协调节点,用于在接收到所述全局控制节点分发的至少一个所述数据管理请求时,针对于接收的每一个当前数据管理请求,确定对应于所述当前数据管理请求的目标存储节点,在确定的所述目标存储节点中对所述当前数据管理请求所对应的目标数据进行管理。

优选地,

所述数据管理请求,包括:数据存储请求;

所述协调节点,用于针对于接收的每一个所述数据存储请求,在所述至少两个存储节点中确定出一个第一目标存储节点,将所述数据存储请求中携带的待存储数据写入所述第一目标存储节点,确定并存储所述待存储数据在所述第一目标存储节点中的存储地址。

优选地,

所述协调节点,进一步用于将所述待存储数据在所述第一目标存储节点中的存储地址发送至给至少两个协调节点中除所述协调节点以外的每一个对端节点,以使各个所述对端节点接收并存储所述待存储数据在所述第一目标存储节点中的存储地址。

优选地,

所述数据管理请求,包括:数据读取请求;

所述协调节点,用于针对于接收的每一个所述数据读取请求,根据所述数据读取请求中携带的当前存储地址,从所述至少两个存储节点中确定出对应于所述当前存储地址的第二目标存储节点,从所述第二目标存储节点中读取所述第一数据读取请求所对应的待读取数据,并将读取的所述待读取数据转发至所述全局控制节点;

所述全局控制节点,进一步用于将接收的所述待读取数据转发给发送所述数据读取请求的应用服务器。

优选地,

所述全局控制节点,用于确定各个所述协调节点在设定时间段内分别接收到数据管理请求的接收数量,根据各个所述协调节点所分别对应的接收数量,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点。

第二方面,本发明实施例提供了一种利用第一方面中任一所述的分布式数据库实现数据管理业务的方法,包括:

利用所述全局控制节点接收至少两个服务器发送的至少两个数据管理请求,确定各个所述协调节点所分别对应的负载参数,根据各个所述协调节点所分别对应的负载参数,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点;

分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个所述数据管理请求时,针对于接收的每一个当前数据管理请求,确定对应于所述当前数据管理请求的目标存储节点,在确定的所述目标存储节点中对所述当前数据管理请求所对应的目标数据进行管理。

优选地,

在所述数据管理请求包括数据存储请求时,

所述分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个所述数据管理请求时,针对于接收的每一个当前数据管理请求,确定对应于所述当前数据管理请求的目标存储节点,在确定的所述目标存储节点中对所述当前数据管理请求所对应的目标数据进行管理,包括:

分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个数据存储请求时,针对于接收的每一个所述数据存储请求,在所述至少两个存储节点中确定出一个第一目标存储节点,将所述数据存储请求中携带的待存储数据写入所述第一目标存储节点,确定并存储所述待存储数据在所述第一目标存储节点中的存储地址。

优选地,

在所述确定并存储所述待存储数据在所述第一目标存储节点中的存储地址之后,还包括:将所述待存储数据在所述第一目标存储节点中的存储地址发送至给至少两个协调节点中除所述协调节点以外的每一个对端节点,以使各个所述对端节点接收并存储所述待存储数据在所述第一目标存储节点中的存储地址。

优选地,

在所述数据管理请求包括数据读取请求时,

所述分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个所述数据管理请求时,针对于接收的每一个当前数据管理请求,确定对应于所述当前数据管理请求的目标存储节点,在确定的所述目标存储节点中对所述当前数据管理请求所对应的目标数据进行管理,包括:

分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个所述数据读取请求时,根据所述数据读取请求中携带的当前存储地址,从所述至少两个存储节点中确定出对应于所述当前存储地址的第二目标存储节点,从所述第二目标存储节点中读取所述第一数据读取请求所对应的待读取数据,并将读取的所述待读取数据转发至所述全局控制节点;

还包括:利用所述全局控制节点将接收的所述待读取数据转发给发送所述数据读取请求的应用服务器。

优选地,

所述利用所述全局控制节点接收至少两个服务器发送的至少两个数据管理请求,确定各个所述协调节点所分别对应的负载参数,根据各个所述协调节点所分别对应的负载参数,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点,包括:

利用所述全局控制节点确定各个所述协调节点在设定时间段内分别接收到数据管理请求的接收数量,根据各个所述协调节点所分别对应的接收数量,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点。

本发明实施例提供了一种分布式数据库及其对数据进行管理的方法,该分布式数据库由全局控制节点、至少两个协调节点和至少两个存储节点构成,一方面,全局控制节点可确定各个协调节点所分别对应的负载参数,并根据各个协调节点所分别对应的负载参数将多个应用服务器发送的至少两个数据管理请求分发给至少两个协调节点,可实现对各个协调节点的负载情况进行控制,避免多个协调节点中出现单点负载过高而影响分布式数据库的响应速度;另一方面,多个协调节点中的每一个协调节点均可独自针对其接收的各个数据管理请求在相应的存储节点中对对应的目标数据进行管理,由多个协调节点分别针对一定数量的数据管理请求与相应的存储节点进行信息交互时,分布式数据库的并发能力相对较高,可在一定程度上提高分布式数据库的响应速度。综上所述,本发明实施例提供的技术方案中,分布式数据库的响应速度较快。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种分布式数据库的结构示意图;

图2是本发明一实施例提供的一种利用分布式数据库对数据进行管理的方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种分布式数据库,包括:

全局控制节点101、至少两个协调节点102和至少两个存储节点103;其中,

所述全局控制节点101,用于接收至少两个服务器发送的至少两个数据管理请求,确定各个所述协调节点102所分别对应的负载参数,根据各个所述协调节点102所分别对应的负载参数,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点102;

每一个所述协调节点102,用于在接收到所述全局控制节点101分发的至少一个所述数据管理请求时,针对于接收的每一个当前数据管理请求,确定对应于所述当前数据管理请求的目标存储节点103,在确定的所述目标存储节点103中对所述当前数据管理请求所对应的目标数据进行管理。

如图1所示的实施例,该分布式数据库由全局控制节点、至少两个协调节点和至少两个存储节点构成,一方面,全局控制节点可确定各个协调节点所分别对应的负载参数,并根据各个协调节点所分别对应的负载参数将多个应用服务器发送的至少两个数据管理请求分发给至少两个协调节点,可实现对各个协调节点的负载情况进行控制,避免多个协调节点中出现单点负载过高而影响分布式数据库的响应速度;另一方面,多个协调节点中的每一个协调节点均可独自针对其接收的各个数据管理请求在相应的存储节点中对对应的目标数据进行管理,由多个协调节点分别针对一定数量的数据管理请求与相应的存储节点进行信息交互时,分布式数据库的并发能力相对较高,可在一定程度上提高分布式数据库的响应速度。综上所述,本发明实施例提供的技术方案中,分布式数据库的响应速度较快。

各个应用服务器分别向分布式数据库发送数据管理请求时,数据管理请求通常可以是数据读取请求或数据存储请求两种类型,各个协调节点可针对不同类型的数据请求与各个存储节点进行不同形式的信息交互以实现在各个存储节点中针对相应的数据进行管理(比如,向相应存储节点写入数据或从相应存储节点中读取数据)。

相应的,由全局控制节点和多个协调节点实现对多个应用服务器并发的数据管理请求进行协调处理,可满足高并发要求。

具体地,本发明一个实施例中,在所述数据管理请求包括数据存储请求时,所述协调节点102,用于针对于接收的每一个所述数据存储请求,在所述至少两个存储节点103中确定出一个第一目标存储节点103,将所述数据存储请求中携带的待存储数据写入所述第一目标存储节点103,确定并存储所述待存储数据在所述第一目标存储节点103中的存储地址。

本发明一个实施例中,所述协调节点102,进一步用于将所述待存储数据在所述第一目标存储节点103中的存储地址发送至给至少两个协调节点102中除所述协调节点102以外的每一个对端节点,以使各个所述对端节点接收并存储所述待存储数据在所述第一目标存储节点102中的存储地址。

本发明上述实施例中,由于全局控制节点会根据各个协调节点的负载参数向各个协调节点分发其接收的各个数据管理请求,可能导致同一个数据所对应的数据存储请求和数据读取请求被分发给不同的协调节点,因此,在任一协调节点与目标存储节点进行信息交互以实现将一个待存储数据存储到目标存储节点,并存储该待存储数据在目标存储节点中的存储地址之后,该协调节点进一步将该待存储数据在目标存储节点中的存储地址发送给分布式数据库中的其它各个协调节点,使得分布式数据库中的每一个协调节点中均存储该待存储数据在目标存储节点中的存储地址,如此,在后续过程中,无论全局控制节点将对应于该待存储数据的数据读取请求分发给哪一个协调节点,接收该数据读取请求的协调节点均可根据其存储的待存储数据在目标存储节点中的存储地址,与存储该待存储数据的目标存储节点进行信息交互以实现从目标存储节点中读取该待存储数据。

本发明一个实施例中,在所述数据管理请求包括数据读取请求时,所述协调节点102,用于针对于接收的每一个所述数据读取请求,根据所述数据读取请求中携带的当前存储地址,从所述至少两个存储节点103中确定出对应于所述当前存储地址的第二目标存储节点103,从所述第二目标存储节点103中读取所述第一数据读取请求所对应的待读取数据,并将读取的所述待读取数据转发至所述全局控制节点101;

所述全局控制节点101,进一步用于将接收的所述待读取数据转发给发送所述数据读取请求的应用服务器。

本发明一个实施例中,所述全局控制节点101,用于确定各个所述协调节点102在设定时间段内分别接收到数据管理请求的接收数量,根据各个所述协调节点所分别对应的接收数量,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点102。

本发明上述实施例中,协调节点的负载参数可以是协调节点在设定时间段内接收到数据管理请求的接收数量,在各个协调节点的硬件参数相同的情况下,一个协调节点所对应的接收数量越大,则说明该协调节点的负载越高,因此,全局控制节点将其接收的多个数据管理请求分发给各个协调节点时,可将各个协调节点优先分发给对应接收数量较小的各个协调节点,从而实现确保各个协调节点负载均衡,避免分布式数据库的各个协调节点中出现单点负载过高而影响分布式数据库的响应速度。

举例来说,当分布式数据库包括A、B、C三个协调节点时,以设定时间段是当前时间点之前的5秒内为例,若协调节点A在该设定时间段内已经接收的数据管理请求的接收数量是6,协调节点B在该设定时间段内已经接收的数据管理请求的接收数量是7,协调节点C在该设定时间段内已经接收的数据管理请求的接收数量是7,且全局控制节点在当前时刻并发接收的数据管理请求的数量是20个为例,那么,全局控制节点向协调节点A、B、C分发其接收的20个数据管理请求时,则可向协调节点A分发8个数据管理请求,向协调节点B分发7个数据管理请求,向协调节点C分发7个数据管理请求,从而避免协调节点A、B、C中出现单点负载过高。

不难理解的,全局控制节点根据各个协调节点的负载参数分发其接收的数据管理请求时,具体的分发规则可以多种多样,只要能够实现确保分布式数据库中各个协调节点不会出现单点负载过高而影响分布式数据库的响应速度即可。

不难理解的,协调节点的负载参数包括但不限于协调节点在设定时间段内接收到数据管理请求的接收数量;比如,还可以是协调节点的处理器利用率,处理器利用率越大,则说明协调节点的负载越高,相应的,全局控制节点可优先将接收的数据管理请求分发给对应处理器利用率相对较小的协调节点。

不难理解的是,不同协调节点具体指的是能够实现相应业务的不同服务器物理机。

如图2所示,本发明实施例提供了一种利用本发明任意一个实施例提供的分布式数据库对数据进行管理的方法,包括:

步骤201,利用所述全局控制节点接收至少两个服务器发送的至少两个数据管理请求,确定各个所述协调节点所分别对应的负载参数,根据各个所述协调节点所分别对应的负载参数,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点;

步骤202,分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个所述数据管理请求时,针对于接收的每一个当前数据管理请求,确定对应于所述当前数据管理请求的目标存储节点,在确定的所述目标存储节点中对所述当前数据管理请求所对应的目标数据进行管理。

本发明一个实施例中,在所述数据管理请求包括数据存储请求时,

所述分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个所述数据管理请求时,针对于接收的每一个当前数据管理请求,确定对应于所述当前数据管理请求的目标存储节点,在确定的所述目标存储节点中对所述当前数据管理请求所对应的目标数据进行管理,包括:分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个数据存储请求时,针对于接收的每一个所述数据存储请求,在所述至少两个存储节点中确定出一个第一目标存储节点,将所述数据存储请求中携带的待存储数据写入所述第一目标存储节点,确定并存储所述待存储数据在所述第一目标存储节点中的存储地址。

本发明一个实施例中,在所述确定并存储所述待存储数据在所述第一目标存储节点中的存储地址之后,还包括:将所述待存储数据在所述第一目标存储节点中的存储地址发送至给至少两个协调节点中除所述协调节点以外的每一个对端节点,以使各个所述对端节点接收并存储所述待存储数据在所述第一目标存储节点中的存储地址。

本发明一个实施例中,在所述数据管理请求包括数据读取请求时,

所述分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个所述数据管理请求时,针对于接收的每一个当前数据管理请求,确定对应于所述当前数据管理请求的目标存储节点,在确定的所述目标存储节点中对所述当前数据管理请求所对应的目标数据进行管理,包括:分别利用每一个所述协调节点在接收到所述全局控制节点分发的至少一个所述数据读取请求时,根据所述数据读取请求中携带的当前存储地址,从所述至少两个存储节点中确定出对应于所述当前存储地址的第二目标存储节点,从所述第二目标存储节点中读取所述第一数据读取请求所对应的待读取数据,并将读取的所述待读取数据转发至所述全局控制节点;

还包括:利用所述全局控制节点将接收的所述待读取数据转发给发送所述数据读取请求的应用服务器。

本发明一个实施例中,所述利用所述全局控制节点接收至少两个服务器发送的至少两个数据管理请求,确定各个所述协调节点所分别对应的负载参数,根据各个所述协调节点所分别对应的负载参数,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点,包括:利用所述全局控制节点确定各个所述协调节点在设定时间段内分别接收到数据管理请求的接收数量,根据各个所述协调节点所分别对应的接收数量,将接收的所述至少两个数据管理请求分发给所述至少两个协调节点。

综上所述,本发明各个实施例至少具有如下有益效果:

1、本发明一实施例中,该分布式数据库由全局控制节点、至少两个协调节点和至少两个存储节点构成,一方面,全局控制节点可确定各个协调节点所分别对应的负载参数,并根据各个协调节点所分别对应的负载参数将多个应用服务器发送的至少两个数据管理请求分发给至少两个协调节点,可实现对各个协调节点的负载情况进行控制,避免多个协调节点中出现单点负载过高而影响分布式数据库的响应速度;另一方面,多个协调节点中的每一个协调节点均可独自针对其接收的各个数据管理请求在相应的存储节点中对对应的目标数据进行管理,由多个协调节点分别针对一定数量的数据管理请求与相应的存储节点进行信息交互时,分布式数据库的并发能力相对较高,可在一定程度上提高分布式数据库的响应速度。综上所述,本发明实施例提供的技术方案中,分布式数据库的响应速度较快。

2、本发明一实施例中,由于全局控制节点会根据各个协调节点的负载参数向各个协调节点分发其接收的各个数据管理请求,可能导致同一个数据所对应的数据存储请求和数据读取请求被分发给不同的协调节点,因此,在任一协调节点与目标存储节点进行信息交互以实现将一个待存储数据存储到目标存储节点,并存储该待存储数据在目标存储节点中的存储地址之后,该协调节点进一步将该待存储数据在目标存储节点中的存储地址发送给分布式数据库中的其它各个协调节点,使得分布式数据库中的每一个协调节点中均存储该待存储数据在目标存储节点中的存储地址,如此,在后续过程中,无论全局控制节点将对应于该待存储数据的数据读取请求分发给哪一个协调节点,接收该数据读取请求的协调节点均可根据其存储的待存储数据在目标存储节点中的存储地址,与存储该待存储数据的目标存储节点进行信息交互以实现从目标存储节点中读取该待存储数据。

3、本发明一实施例中,协调节点的负载参数可以是协调节点在设定时间段内接收到数据管理请求的接收数量,在各个协调节点的硬件参数相同的情况下,一个协调节点所对应的接收数量越大,则说明该协调节点的负载越高,因此,全局控制节点将其接收的多个数据管理请求分发给各个协调节点时,可将各个协调节点优先分发给对应接收数量较小的各个协调节点,从而实现确保各个协调节点负载均衡,避免分布式数据库的各个协调节点中出现单点负载过高而影响分布式数据库的响应速度。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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