数据库的数据处理方法及装置与流程

文档序号:12597524阅读:217来源:国知局
数据库的数据处理方法及装置与流程

本发明涉及数据存储技术领域,尤其涉及一种数据库的数据处理方法及装置。



背景技术:

随着社交应用平台及电子商务类互联网应用的不断出现,标志着人们已经步入更高级的生活时代。在这种海量数据、高并发访问的情况下,数据库能提供稳定、可靠的性能是至关重要的。但传统的数据库已经不能满足这种大数据的问题,在这种技术背景下,分布式的数据库应运而生。HBase是分布式系统基础架构Hadoop上的一个NoSQL(Not only Structured Query Language,非关系类数据库)的实现,同时也是一个分布式的、面向列的开源数据库。它提供了强大的可扩展性和数据操作性能。在HBase中,随着表记录数据不断增加而逐渐分裂成、并最终形成为数据块,不同的数据块会被主机分配给相应的数据块服务器数据块服务器进行管理。

但是,在实际的应用中,常常会因为数据块服务器的负载不均衡或者每个数据块服务器中的服务请求数量不均衡,大量读、写请求集中在某几个数据块服务器的某几个数据块中,使得HBase无法及时进行业务处理,进而影响HBase的性能,导致HBase的工作效率低;甚至,在大量读、写请求集中在某几个数据块服务器时,可能会造成数据块服务器宕机,此时,HBase会将读、写请求转移到其他的数据块服务器,进而可能引起其他的数据块服务器的连续宕机,最终导致读、写请求对应的业务完全中断。



技术实现要素:

本发明提供一种数据库的数据处理方法及装置,旨在解决HBase中大量读、写请求集中在某几个数据块服务器的某几个数据块中而造成HBase无法及时进行业务处理的技术问题。

为实现上述目的,本发明提供的一种数据库的数据处理方法,所述数据库的数据处理方法包括以下步骤:

获取各个数据块服务器中数据流量最大的第一数据块服务器以及数据流量最小的第二数据块服务器;

获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块;

将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换。

优选地,所述获取各个数据块服务器中数据流量最大的第一数据块服务器以及数据流量最小的第二数据块服务器的步骤包括:

获取预设时间内数据块的流量参数,其中,所述流量参数包括写入的数据流量和/或读取的数据流量;

获取所述数据块的流量参数对应的本地性参数、数据块的历史热度参数及数据块服务器的分布参数;

基于所述流量参数、本地性参数、历史热度参数及分布参数计算获得所述数据块服务器的热度参数;

将热度参数最大的数据块服务器作为第一数据块服务器,并将热度参数最小的数据块服务器作为第二数据块服务器。

优选地,在所述获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块的步骤之前,所述方法还包括:

获取所述第一数据块服务器的第一热度参数及第二数据块服务器的第二热度参数;

确定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值;

在所述第一热度参数与所述第二热度参数的第一差值大于预设阈值时,执行所述获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块的步骤。

优选地,在获取所述第一数据块服务器的第一热度参数及第二数据块服务器的第二热度参数与所述确定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值的步骤之间,所述方法还包括:

确定所述第一数据块服务器的第一热度参数是否大于预设热度;

在所述第一数据块服务器的第一热度参数大于预设热度时,执行所述确定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值的步骤。

优选地所述获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块的步骤与所述将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换的步骤之间,所述方法还包括:

基于所述第一数据块及第二数据块生成调整计划,其中,调整计划中的所述数据库的配置参数为将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换后的各个数据块服务器的热度参数及其对应的数据块对应的流量参数;

获取调整计划中热度参数最大的第三数据块服务器以及热度参数最小的第四数据块服务器,并获取所述第三数据块服务器的第三热度参数及第四数据块服务器的第四热度参数;

确定所述第三热度参数与所述第四热度参数的第二差值是否大于所述预设阈值;

在所述第二差值大于所述预设阈值时,获取第三数据块服务器对应的各个数据块中的数据流量最大的第三数据块,以及所述第四数据块服务器对应的各个数据块中数据流量最小的第四数据块;

在所述将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换的步骤之后,所述方法还包括:

将所述第三数据块的数据请求与第四数据块的数据处理请求互换。

此外,为实现上述目的,本发明还提供一种数据库的数据处理装置,所述数据库的数据处理装置包括:

第一获取模块,用于获取各个数据块服务器中数据流量最大的第一数据块服务器以及数据流量最小的第二数据块服务器;

第二获取模块,用于获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块;

第一交换模块,用于将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换。

优选地,第一获取模块包括:

第一获取单元,用于获取预设时间内数据块的流量参数,其中,所述流量参数包括写入的数据流量和/或读取的数据流量;

第二获取单元,用于获取所述数据块的流量参数对应的本地性参数、数据块的历史热度参数及数据块服务器的分布参数;

计算单元,用于基于所述流量参数、本地性参数、历史热度参数及分布参数计算获得所述数据块服务器的热度参数;

设置单元,用于将热度参数最大的数据块服务器作为第一数据块服务器,并将热度参数最小的数据块服务器作为第二数据块服务器。

优选地,所述数据库的数据处理装置还包括:

第三获取模块,用于获取所述第一数据块服务器的第一热度参数及第二数据块服务器的第二热度参数;

第一确定模块,用于确定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值;

所述第二获取模块还用于在所述第一热度参数与所述第二热度参数的第一差值大于预设阈值时,获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块。

优选地,所述数据库的数据处理装置还包括:

第二确定模块,用于确定所述第一数据块服务器的第一热度参数是否大于预设热度;

所述第一确定模块还用于在所述第一数据块服务器的第一热度参数大于预设热度时,确定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值。

优选地,所述数据库的数据处理装置还包括:

生成模块,用于基于所述第一数据块及第二数据块生成调整计划,其中,调整计划中的所述数据库的配置参数为将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换后的各个数据块服务器的热度参数及其对应 的数据块对应的流量参数;

第四获取模块,用于获取调整计划中热度参数最大的第三数据块服务器以及热度参数最小的第四数据块服务器,并获取所述第三数据块服务器的第三热度参数及第四数据块服务器的第四热度参数;

第三确定模块,用于确定所述第三热度参数与所述第四热度参数的第二差值是否大于所述预设阈值;

第五获取模块,用于在所述第二差值大于所述预设阈值时,获取第三数据块服务器对应的各个数据块中的数据流量最大的第三数据块,以及所述第四数据块服务器对应的各个数据块中数据流量最小的第四数据块;

第二交换模块,用于将所述第三数据块的数据请求与第四数据块的数据处理请求互换。

本发明中,通过获取数据流量最大的第一数据块服务器中的数据流量最大的第一数据块以及数据流量最小的第二数据块服务器中数据流量最小的第二数据块,然后互换第一数据块中的数据请求与第二数据块中的数据请求;实现了第一数据块的数据请求与第二数据块的数据处理请求的互换,使得第一数据块服务器与第二数据块服务器之间的数据流量更加均衡,进而使数据库能够及时处理第一数据块的数据请求对应的业务,有效地避免了在数据库存在数据块的流量参数过大时造成数据块服务器宕机,提高了数据库的性能和工作效率。

附图说明

图1为本发明数据库的数据处理方法第一实施例的流程示意图;

图2为本发明获取第一数据块服务器及第二数据块服务器的步骤的细化流程示意图;

图3为本发明数据库的数据处理方法第二实施例的流程示意图;

图4为本发明数据库的数据处理方法第三实施例的流程示意图;

图5为本发明数据库的数据处理装置第一实施例的功能模块示意图;

图6为图5中计算模块的细化功能模块示意图;

图7为本发明数据库的数据处理装置第二实施例的功能模块示意图;

图8为本发明数据库的数据处理装置第三实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种数据库的数据处理方法。

参照图1,图1为本发明数据库的数据处理方法第一实施例的流程示意图。

在本实施例中,该数据库的数据处理方法包括:

步骤S10,获取各个数据块服务器中数据流量最大的第一数据块服务器以及数据流量最小的第二数据块服务器;

本实施例中,在数据库的每个数据块服务器中增加一套读写压力采集服务,周期性采集预设时间内每个数据块服务器的数据流量,然后确定预设时间内数据流量最大的第一数据块服务器以及数据流量最小的第二数据块服务器;也可以在数据库的每个数据块服务器的数据块中增加一套读写压力采集服务,周期性采集预设时间内每个数据块的数据流量,然后计算数据块服务器的数据流量,再确定预设时间内数据流量最大的第一数据块服务器以及数据流量最小的第二数据块服务器。

步骤S20,获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块;

即获取到的第一数据块为第一数据块服务器中数据流量最大的数据块,获取到的第二数据块为第二数据块服务器中数据流量最小的数据块;容易理解,在获取第一数据块及第二数据块时,如果第一数据块服务器中存在两个数据流量相同且最大的数据块或者第二数据块服务器中存在两个数据流量相同且最小的数据块,那么按照数据块的行键确定第一数据块或第二数据块。

当然,如果第一数据块属于元meta表或名称空间nameSpace表,则结束本实施例的后续流程,即在第一数据块属于meta表或nameSpace表时不需要进行与第二数据块的数据请求的交换,因为meta表或nameSpace表的读写访 问相对很小,即meta表或nameSpace表写入的数据流量和/或读取的数据流量,可以有效地避免在读写业务量较少的情况下频繁移动这两个系统内部表。

步骤S30,将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换。

其中,第一数据块中的数据请求为预设时间内第一数据块接收到的写入数据和/或读取数据的处理请求,第二数据块中的数据处理请求为预设时间内第二数据块接收到的写入数据和/或读取数据的处理请求;将第一数据块的数据请求设置在第二数据块上,将第二数据块的数据处理请求设置在第一数据块上,使得第一数据块写入的数据流量和/或读取的数据流量与第二数据块写入的数据流量和/或读取的数据流量的互换,进而降低了第一数据块服务器的热度参数、提高了第二数据块服务器的热度参数,使得数据库的数据块服务器的数据流量更加均衡。

本实施例中,在第一数据块的数据请求与第二数据块的数据请求进行交换之后,基于调整后的数据库更新数据库中的数据库信息,包括更新数据块的写入的数据流量和/或读取的数据流量信息,以及数据块之间数据请求的交换信息等。

在本实施例中,数据库为HBase,数据块服务器为HBase中的RegionServe,数据块为RegionServe中的Region。

本实施例中,通过获取数据流量最大的第一数据块服务器中的数据流量最大的第一数据块以及数据流量最小的第二数据块服务器中数据流量最小的第二数据块,然后互换第一数据块中的数据请求与第二数据块中的数据请求;实现了第一数据块的数据请求与第二数据块的数据处理请求的互换,使得第一数据块服务器与第二数据块服务器之间的数据流量更加均衡,进而使数据库能够及时处理第一数据块的数据请求对应的业务,有效地避免了在数据库存在数据块的流量参数过大时造成数据块服务器宕机,提高了数据库的性能和工作效率。

参照图2,图2为本发明获取第一数据块服务器及第二数据块服务器的步骤的细化流程示意图。

基于第一实施例提出本发明步骤S10的细化流程实施例,本实施例中, 步骤S10包括:

步骤S11,获取预设时间内数据块的流量参数,其中,所述流量参数包括写入的数据流量和/或读取的数据流量;

写入的数据流量是指数据块所有的写入请求对应的数据包大小总和,数据块所有的读取请求对应的数据包的大小总和,因此,获取预设时间内数据块的流量参数具体是指获取数据块所有的写入请求对应的数据包大小总和及/或数据块所有的读取请求对应的数据包的大小总和。当然,预设时间内数据块的流量参数可以周期性的获取,也可以根据预设时间间隔获取。本实施例中,在数据库的每个数据块服务器数据块服务器的数据块增加一套读写压力采集服务,周期性采集预设时间内每个数据块的读、写的流量。

步骤S12,获取所述数据块的流量参数对应的本地性参数、数据块的历史热度参数及数据块服务器的分布参数;

其中,所述数据块的流量参数对应的本地性参数LocalPercent是指数据块写入的数据和/或读取的数据的本地性比率权重,数据块写入的数据和/或读取的数据中该数据块所属的数据块服务器占有的数据比例,其取值范围是[0,1]。

数据块的历史热度参数HistoryPercent是指该数据块的历史热度趋势权重,其取值范围是[0,1],根据该数据块上最近X个(通过参数配置,默认3个)历史周期访问请求的曲线斜率趋势计算得到,其中,斜率越大说明访问请求一直呈现正向增长的趋势。

数据块服务器的分布参数TablePercent是指表Table的均衡分布率,即数据块服务器的数据块对应的Table的均衡分布率。

步骤S13,基于所述流量参数、本地性参数、历史热度参数及分布参数计算获得所述数据块服务器的热度参数;

数据块服务器的热度参数的计算公式为:

HotScorer=∑[(1-α)×LastQualityScorer+α×CurQualityScorer]×(1/LocalPercent)×(1+HistorySlope)×(1+TablePerCent)

式中,LastQualityScorer为数据块在上个预设时间内的数据流量和/或读取的数据流量,CurQualityScorer为当前预设时间内数据块的流量参数;α表示上一次该数据块服务器的数据块的热度权重值,其取值范围为[0,1],如设置成0就是不考虑上一次的热度访问,一般情况下,α的取值为0.5,表示同时 兼顾本次数据块上的热度与上一次的数据块热度。

步骤S14,将热度参数最大的数据块服务器作为第一数据块服务器,并将热度参数最小的数据块服务器作为第二数据块服务器。

根据数据块服务器的热度参数将数据库中热度参数最大的数据块服务器设置为第一数据块服务器,将数据库中热度参数最小的数据块服务器设置为二数据块服务器。当然,在获取所述第一数据块服务器及第二数据块服务器过程中,如果数据库中存在两个热度参数相同的最热的数据块服务器或两个热度参数相同的最冷的数据块服务器,则按照数据块服务器的机器名字典序顺序进行选择顺序在前的作为第一数据块服务器或第二数据块服务器。

本实施例中,根据获取到的流量参数、本地性参数、历史热度参数及分布参数计算获得数据块服务器的热度参数,然后将热度参数最大的数据块服务器作为第一数据块服务器,并将热度参数最小的数据块服务器作为第二数据块服务器,进而能够保证第一数据块服务器及第二数据块服务器分别为数据库的最热的数据块服务器与最冷的数据块服务器,进而提高了第一数据块与第二数据块的准确性,进一步提高了数据库的性能和工作效率。

参照图3,图3为本发明数据库的数据处理方法第二实施例的流程示意图。

基于第二实施例提出本发明数据库的数据处理方法的第二实施例,本实施例中,在步骤S20之前,数据库的数据处理方法还包括:

步骤S40,获取所述第一数据块服务器的第一热度参数及第二数据块服务器的第二热度参数;

在数据块服务器的热度参数中获取第一数据块服务器的第一热度参数及第二数据块服务器的第二热度参数。

步骤S50,确定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值;

由上述实施例可知,第一热度参数大于第二热度参数,第一热度参数与第二热度参数的第一差值即第一热度参数减去第二热度参数的差值大于零,预设阈值为数据库中最热的数据块服务器与最冷的数据块服务器之间热度参数的最大值,在第一热度参数与所述第二热度参数的第一差值大于预设阈值时,需要平衡最热的数据块服务器的数据块与最冷的数据块服务器的数据块。

在所述第一热度参数与所述第二热度参数的第一差值大于预设阈值时,执行所述获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块的步骤。

即步骤S20替换为:在所述第一热度参数与所述第二热度参数的第一差值大于预设阈值时,获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块。

本实施例中,通过在第一热度参数与第二热度参数的第一差值大于预设阈值时,执行获取第一数据块服务器的第一数据块及第二数据块服务器的第二数据块的步骤,避免了在第一热度参数与第二热度参数的第一差值未超过预设阈值时进行第一数据块的数据请求与第二数据块的数据请求,进而避免不必要的平衡数据库中数据块服务器的数据流量,进一步提高了数据库的性能和工作效率。

参照图4,图4为本发明数据库的数据处理方法第三实施例的流程示意图。

基于第三实施例提出本发明数据库的数据处理方法的第三实施例,本实施例中,在步骤S40与步骤S50之间,该数据库的数据处理方法还包括:

步骤S60,确定所述第一数据块服务器的第一热度参数是否大于预设热度;

本实施例中,可以为数据库中的数据块服务器设置对应的预设热度,具体的,在数据块服务器的热度参数未超过预设热度时,表示该数据块服务器未超过其自身数据处理的承受能力,即该数据块服务器中的数据块不需要进行平衡调整,容易理解,在确定第一数据块服务器的第一热度参数大于预设热度时,表示第一数据块服务器的数据处理能力已超过其自身的承受能力,需要通过第一数据块服务器中的数据块与其他数据块服务器中的数据块进行调整,以平衡数据库中数据块服务器的数据流量。在第一数据块服务器的第一热度参数未超过预设热度时,此时第一数据块服务器未超过其自身数据处理的承受能力,因此,可以结束本实施例的流程。

在所述第一数据块服务器的第一热度参数大于预设热度时,执行所述确 定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值的步骤。

即步骤S50替换为,在所述第一数据块服务器的第一热度参数大于预设热度时,确定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值。

本实施例中,通过确定第一数据块服务器的第一热度参数是否大于预设热度,然后在第一热度参数大于预设热度时,执行确定所述第一热度参数与第二热度参数的第一差值大于预设阈值的步骤,进而确定第一数据块服务器是否需要通过其数据块与其他数据块服务器中的数据块进行调整,进一步避免不必要的平衡调整数据库中数据块服务器的数据流量,提高了数据库的效率。

基于上述实施例提出本发明数据库的数据处理方法的第四实施例,本实施例中,在步骤S20与步骤S30之间,该数据库的数据处理方法还包括:

基于所述第一数据块及第二数据块生成调整计划,其中,调整计划中的所述数据库的配置参数为将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换后的各个数据块服务器的热度参数及其对应的数据块对应的流量参数;

即假设第一数据块中的数据请求与第二数据块中的数据请求互换完成,即第一数据块服务器的第一数据块的数据流量与第二数据块服务器的第二数据块的数据流量互换完成,根据互换完成后的数据库的配置参数生成调整计划,当然,调整计划中第一数据块服务器以及第二数据块服务器的热度参数为重新计算后的热度参数,以避免第一数据块服务器以及第二数据块服务器为交换后获取数据库中热度参数最大或最小的数据块服务器时出现错误。

获取调整计划中热度参数最大的第三数据块服务器以及热度参数最小的第四数据块服务器,并获取所述第三数据块服务器的第三热度参数及第四数据块服务器的第四热度参数;

确定所述第三热度参数与所述第四热度参数的第二差值是否大于所述预设阈值;

当然,在确定所述第三数据块服务器的第三热度参数与所述第四数据块 服务器的第四热度参数的第二差值大于预设阈值之前,还可以先确定所述第三数据块服务器的热度参数大于预设热度,以避免不必要的平衡数据库中的数据块服务器之间的数据流量。

在所述第二差值大于所述预设阈值时,获取第三数据块服务器对应的各个数据块中的数据流量最大的第三数据块,以及所述第四数据块服务器对应的各个数据块中数据流量最小的第四数据块;

在所述将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换的步骤之后,所述方法还包括:

将所述第三数据块的数据请求与第四数据块的数据处理请求进行交换。

将第三数据块的数据请求设置在第四数据块上,将第四数据块的数据处理请求设置在第三数据块上,使得第三数据块写入的数据流量和/或读取的数据流量与第四数据块写入的数据流量和/或读取的数据流量的互换。

当然,也可以在将所述第三数据块的数据请求与第四数据块的数据请求进行交换的步骤之前基于第三数据块和第四数据块更新平衡计划,继续循环判断数据库中是否存在两个热度参数之差的绝对值大于预设阈值的数据块服务器,继续上述步骤,直到数据库中不存在两个热度参数之差的绝对值大于预设阈值的数据块服务器,然后按照平衡计划依次进行数据块的链路交换,使数据库的各个数据块服务器之间的数据流量更加均衡。容易理解,由于数据库在进行数据块的链路交换时存在秒级的业务暂停,因此,每次进行链路交换的数据块不能太多,以避免长时间的业务暂停而影响用户体验。

本实施例中,通过基于调整计划确定热度参数最大的第三数据块服务器以及热度参数最小的第四数据块服务器,然后在确定第二差值大于所述预设阈值时,确定第三数据块服务器中数据流量最大的第三数据块以及第四数据块服务器中数据流量最小的第四数据块,最后在步骤S30之后互换第三数据块的数据请求与第四数据块的数据处理请求;实现了第三数据块写入的数据流量和/或读取的数据流量与第四数据块写入的数据流量和/或读取的数据流量的互换,进而降低了第三数据块服务器的热度同时提高了第四数据块服务器的热度,使得第三数据块服务器与第四数据块服务器之间的数据流量更加均衡,使数据库能够及时处理第三数据块的数据请求对应的业务,有效地避免了在数据库存在第三数据块的流量参数过大时造成第三数据块服务器宕 机,进一步提高了数据库的性能和工作效率。

当然,数据库的数据处理方法还可以基于表进行负载平衡,其流程包括:获取数据库中的表写入的数据流量和/或读取的数据流量,基于表写入的数据流量和/或读取的数据流量计算获得最热的表与最冷的表;判断最热的表的写入的数据流量和/或读取的数据流量是否超过该表的负载热度阈值;在最热的表的写入的数据流量和/或读取的数据流量超过负载热度阈值时,获取该表中的最热的数据块以及最冷的表中的最冷的数据块,然后将最热的数据块的数据请求对应的链路与最冷的数据块的数据请求对应的链路进行交换。当然,基于表表进行负载平衡的流程也可以按照上述实施例的方式进行循环执行,实现多张表中的数据块的并行迁移,相比数据块服务器中的数据块迁移,这种基于表的负载平衡方式在“热表”不多、“冷表”很多的情况下比较适用,热表是指该表的数据流量超过该表的负载热度阀值。

本发明进一步提供一种数据库的数据处理装置。

参照图5,图5为本发明数据库的数据处理装置第一实施例的功能模块示意图。

在本实施例中,该数据库的数据处理装置包括:

第一获取模块10,用于获取各个数据块服务器中数据流量最大的第一数据块服务器以及数据流量最小的第二数据块服务器;

本实施例中,在数据库的每个数据块服务器中增加一套读写压力采集服务,周期性采集预设时间内每个数据块服务器的数据流量,然后确定预设时间内数据流量最大的第一数据块服务器以及数据流量最小的第二数据块服务器;也可以在数据库的每个数据块服务器的数据块中增加一套读写压力采集服务,周期性采集预设时间内每个数据块的数据流量,然后计算数据块服务器的数据流量,再确定预设时间内数据流量最大的第一数据块服务器以及数据流量最小的第二数据块服务器。

第二获取模块20,用于获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块;

第二获取模块20获取到的第一数据块为第一数据块服务器中数据流量最大的数据块,获取到的第二数据块为第二数据块服务器中数据流量最小的数据块;容易理解,在获取第一数据块及第二数据块时,如果第一数据块服务器中存在两个数据流量相同且最大的数据块或者第二数据块服务器中存在两个数据流量相同且最小的数据块,那么按照数据块的行键rowkey确定第一数据块或第二数据块。

第一交换模块30,用于将所述第一数据块中的数据请求与第二数据块中的数据处理请求互换。

数据请求为预设时间内数据块接收到的写入数据和/或读取数据的请求,第一交换模块30将第一数据块的数据请求设置在第二数据块上,将第二数据块的数据处理请求设置在第一数据块上,使得第一数据块写入的数据流量和/或读取的数据流量与第二数据块写入的数据流量和/或读取的数据流量的互换,进而降低了第一数据块服务器的热度参数、提高了第二数据块服务器的热度参数,使得数据库的数据块服务器的数据流量更加均衡。

本实施例中,通过第二获取模块20获取数据流量最大的第一数据块服务器中的数据流量最大的第一数据块以及数据流量最小的第二数据块服务器中数据流量最小的第二数据块,然后第一交换模块30互换第一数据块中的数据请求与第二数据块中的数据处理请求;实现了第一数据块的数据请求与第二数据块的数据处理请求的互换,使得第一数据块服务器与第二数据块服务器之间的数据流量更加均衡,进而使数据库能够及时处理第一数据块的数据请求对应的业务,有效地避免了在数据库存在数据块的流量参数过大时造成数据块服务器宕机,提高了数据库的性能和工作效率。

参照图6,图6为图5中计算模块的细化功能模块示意图。

基于第一实施例提出本发明计算模块20的细化功能模块实施例,本实施例中,第一获取模块10包括:

第一获取单元11,用于获取预设时间内数据块的流量参数,其中,所述流量参数包括写入的数据流量和/或读取的数据流量;

写入的数据流量是指数据块所有的写入请求对应的数据包大小总和,数据块所有的读取请求对应的数据包的大小总和,因此,获取预设时间内数据 块的流量参数具体是指获取数据块所有的写入请求对应的数据包大小总和及/或数据块所有的读取请求对应的数据包的大小总和。当然,预设时间内数据块的流量参数可以周期性的获取,也可以根据预设时间间隔获取。本实施例中,在数据库的每个数据块服务器数据块服务器的数据块增加一套读写压力采集服务,周期性采集预设时间内每个数据块的读、写的流量。

第二获取单元12,用于获取所述数据块的流量参数对应的本地性参数、数据块的历史热度参数及数据块服务器的分布参数;

其中,所述数据块的流量参数对应的本地性参数LocalPercent是指数据块写入的数据和/或读取的数据的本地性比率权重,数据块写入的数据和/或读取的数据中该数据块所属的数据块服务器占有的数据比例,其取值范围是[0,1]。

数据块的历史热度参数HistoryPercent是指该数据块的历史热度趋势权重,其取值范围是[0,1],根据该数据块上最近X个(通过参数配置,默认3个)历史周期访问请求的曲线斜率趋势计算得到,其中,斜率越大说明访问请求一直呈现正向增长的趋势。

数据块服务器的分布参数TablePercent是指表Table的均衡分布率,即数据块服务器的数据块对应的表Table的均衡分布率。

计算单元13,用于基于所述流量参数、本地性参数、历史热度参数及分布参数计算获得所述数据块服务器的热度参数;

数据块服务器的热度参数的计算公式为:

HotScorer=∑[(1-α)×LastQualityScorer+α×CurQualityScorer]×(1/LocalPercent)×(1+HistorySlope)×(1+TablePerCent)

式中,LastQualityScorer为数据块在上个预设时间内的数据流量和/或读取的数据流量,CurQualityScorer为当前预设时间内数据块的流量参数;α表示上一次该数据块服务器的数据块的热度权重值,其取值范围为[0,1],如设置成0就是不考虑上一次的热度访问,一般情况下,α的取值为0.5,表示同时兼顾本次数据块上的热度与上一次的数据块热度。

设置单元14,用于将热度参数最大的数据块服务器作为第一数据块服务器,并将热度参数最小的数据块服务器作为第二数据块服务器。

本实施例中,通过计算单元13根据获取到的流量参数、本地性参数、历史热度参数及分布参数计算获得数据块服务器的热度参数,然后设置单元 14将热度参数最大的数据块服务器作为第一数据块服务器,并将热度参数最小的数据块服务器作为第二数据块服务器,进而能够保证第一数据块服务器及第二数据块服务器分别为数据库的最热的数据块服务器与最冷的数据块服务器,进而提高了第一数据块与第二数据块的准确性,进一步提高了数据库的性能和工作效率。

参照图7,图7为本发明数据库的数据处理装置第二实施例的功能模块示意图。

基于第二实施例提出本发明数据库的数据处理装置的第二实施例,本实施例中,数据库的数据处理装置还包括:

第三获取模块40,用于获取所述第一数据块服务器的第一热度参数及第二数据块服务器的第二热度参数;

第一确定模块50,用于确定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值;

第二获取模块20还用于在所述第一热度参数与所述第二热度参数的第一差值大于预设阈值时,获取第一数据块服务器对应的各个数据块中的数据流量最大的第一数据块,以及所述第二数据块服务器对应的各个数据块中数据流量最小的第二数据块。

本实施例中,通过第三获取模块40获取第一数据块服务器的第一热度参数及第二数据块服务器的第二热度参数,然后第二获取模块20在所述第一确定模块50确定第一热度参数与所述第二热度参数的第一差值大于预设阈值时,获取所述第一数据块服务器的第一数据块及所述第二数据块服务器的第二数据块;避免了在第一热度参数与第二热度参数的第一差值未超过预设阈值时进行第一数据块的数据请求与第二数据块的数据请求,进而避免不必要的平衡数据库中数据块服务器的数据流量,进一步提高了数据库的性能和工作效率。

参照图8,图8为本发明数据库的数据处理装置第三实施例的功能模块示意图。

基于第三实施例提出本发明数据库的数据处理装置的第三实施例,本实 施例中,数据库的数据处理装置还包括:

第二确定模块60,用于确定所述第一数据块服务器的第一热度参数是否大于预设热度;

所述第一确定模块还用于在所述第一数据块服务器的第一热度参数大于预设热度时,确定所述第一热度参数与所述第二热度参数的第一差值是否大于预设阈值。

本实施例中,通过第二确定模块60确定所述第一数据块服务器的第一热度参数大于预设热度,然后第一确定模块60在所述第一数据块服务器的第一热度参数大于预设热度时,确定所述第一热度参数与所述第二热度参数的第一差值大于预设阈值;进而确定第一数据块服务器是否需要通过其数据块与其他数据块服务器中的数据块进行调整,进一步避免不必要的平衡调整数据库中数据块服务器的数据流量,提高了数据库的效率。

基于上述实施例提出本发明数据库的数据处理装置的第四实施例,本实施例中,该数据库的数据处理装置还包括:

生成模块,用于基于所述第一数据块及第二数据块生成调整计划,其中,调整计划中的所述数据库的配置参数为将所述第一数据块中的数据请求与第二数据块中的数据请求互换后的各个数据块服务器的热度参数及其对应的数据块对应的流量参数;

假设第一数据块中的数据请求与第二数据块中的数据请求互换完成,即第一数据块服务器的第一数据块的数据流量与第二数据块服务器的第二数据块的数据流量互换完成,根据互换完成后的数据库的配置参数生成调整计划,当然,调整计划中第一数据块服务器以及第二数据块服务器的热度参数为重新计算后的热度参数,以避免第一数据块服务器以及第二数据块服务器为交换后获取数据库中热度参数最大或最小的数据块服务器时出现错误。

第四获取模块,用于获取调整计划中热度参数最大的第三数据块服务器以及热度参数最小的第四数据块服务器,并获取所述第三数据块服务器的第三热度参数及第四数据块服务器的第四热度参数;

第三确定模块,用于确定所述第三热度参数与所述第四热度参数的第二差值是否大于所述预设阈值;

当然,在第三确定模块确定所述第三数据块服务器的第三热度参数与所述第四数据块服务器的第四热度参数的第二差值大于预设阈值之前,还可以先确定所述第三数据块服务器的热度参数大于预设热度,以避免不必要的平衡数据库中的数据块服务器之间的数据流量。

第五获取模块,用于在所述第二差值大于所述预设阈值时,获取第三数据块服务器对应的各个数据块中的数据流量最大的第三数据块,以及所述第四数据块服务器对应的各个数据块中数据流量最小的第四数据块;

第二交换模块,用于将所述第三数据块的数据请求与第四数据块的数据处理请求互换。

第二交换模块将第三数据块的数据请求设置在第四数据块上,将第四数据块的数据处理请求设置在第三数据块上,使得第三数据块写入的数据流量和/或读取的数据流量与第四数据块写入的数据流量和/或读取的数据流量的互换。

本实施例中,通过第四获取模块基于调整计划确定热度参数最大的第三数据块服务器以及热度参数最小的第四数据块服务器,然后在第三确定模块确定第二差值大于所述预设阈值时,第五获取模块确定第三数据块服务器中数据流量最大的第三数据块以及第四数据块服务器中数据流量最小的第四数据块,最后第二交换模块互换第三数据块的数据请求与第四数据块的数据处理请求;实现了第三数据块写入的数据流量和/或读取的数据流量与第四数据块写入的数据流量和/或读取的数据流量的互换,进而降低了第三数据块服务器的热度同时提高了第四数据块服务器的热度,使得第三数据块服务器与第四数据块服务器之间的数据流量更加均衡,使数据库能够及时处理第三数据块的数据请求对应的业务,有效地避免了在数据库存在第三数据块的流量参数过大时造成第三数据块服务器宕机,进一步提高了数据库的性能和工作效率。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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