CN112035498B - 数据块调度方法、装置、调度层节点及存储层节点 - Google Patents
数据块调度方法、装置、调度层节点及存储层节点 Download PDFInfo
- Publication number
- CN112035498B CN112035498B CN202010899896.7A CN202010899896A CN112035498B CN 112035498 B CN112035498 B CN 112035498B CN 202010899896 A CN202010899896 A CN 202010899896A CN 112035498 B CN112035498 B CN 112035498B
- Authority
- CN
- China
- Prior art keywords
- data block
- layer node
- storage layer
- queue
- preset
- 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
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/23—Updating
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例提供了一种数据块调度方法、装置、调度层节点、存储层节点及分布式数据库系统,其中方法包括:应用于分布式数据库系统中的调度层节点,获取各个存储层节点所存储的每个数据块的读频率;将读频率大于预设读频率阈值的数据块确定为目标数据块;向待调度存储层节点发送针对目标数据块的数据块拆分指令,以使待调度存储层节点将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储。本发明实施例能够平衡分布式数据库系统中各存储层节点的处理压力。
Description
技术领域
本发明涉及分布式数据库系统技术领域,特别是涉及一种数据块调度方法、装置、调度层节点及存储层节点。
背景技术
目前,分布式数据库系统广泛的应用在各个领域中。分布式数据库系统常用的数据存储方法为各存储层分段存储数据,每段数据单位为一个数据块(segment),不同数据块的数据内容互不重叠。
现有技术中,分布式数据库中通常可以包括多个存储层节点,其中每个存储层节点中均存储有多个数据块,且多个数据块中的数据内容为固定数据内容。
由于不同的数据块中的数据内容不同,有一些数据块的数据内容可能是用户特别感兴趣的数据,该数据块会被客户端100频繁访问,使得存储该数据块的存储层节点130处理压力较大;还有一些数据块的数据内容可能是用户不感兴趣的数据,该数据块被客户端100访问的频率很低,使得存储该数据块的存储层节点130处理压力较小。
可见,现有技术中,整个分布式数据库系统中各存储层节点130的处理压力分布不均。
发明内容
本发明实施例的目的在于提供一种数据块调度方法、装置、调度层节点及存储层节点,以平衡分布式数据库系统中各存储层节点的处理压力。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种数据块调度方法,应用于分布式数据库系统中的调度层节点,所述分布式数据库系统还包括多个存储层节点,所述方法包括:
获取各个存储层节点所存储的每个数据块的读频率;
将所述读频率大于预设读频率阈值的数据块确定为目标数据块;
向待调度存储层节点发送针对所述目标数据块的数据块拆分指令,以使所述待调度存储层节点将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,所述待调度存储层节点为存储所述目标数据块的存储层节点,所述目标存储层节点为所述多个存储层节点中除所述待调度层节点之外的其他存储层节点。
可选地,所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
将所述读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,所述分级队列中包括多个不同级别的队列;
若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于所述最高级队列预设的拆分阈值;如果是,则将该数据块标识对应的数据块确定为所述目标数据块,所述拆分阈值大于或等于所述预设读频率阈值。
可选地,在所述若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块在预设时长之后,读频率是否大于所述最高级队列预设的拆分阈值的步骤之后,所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,还包括:
若否,则判断该数据块标识对应的数据块,在预设时长后的读频率是否小于所述最高级队列预设的下降阈值,若是,则将该数据块标识移动至下一级队列。
可选地,所述分级队列中还包括最低级队列和至少一个中间队列,所述所述中间队列设置有下降阈值,所述最低级队列和所述中间队列设置有晋升阈值,所述最低级队列中还设置有淘汰阈值;所述淘汰阈值大于或等于所述预设读频率阈值;
所述将所述读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中的步骤,包括:
将所述读频率大于所述预设读频率阈值的数据块的数据块标识,添加至所述分级队列的最低级队列中;
在所述若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块在预设时长之后,读频率是否大于所述最高级队列预设的拆分阈值的步骤之前,所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,还包括:
轮询各级队列;
判断所述最低级队列中的各数据块标识对应的数据块的当前读频率是否大于或等于所述最低级队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述淘汰阈值,若是,则将该数据块标识从所述分级队列中移除;
判断所述中间队列中的各数据块标识对应的数据块的当前读频率是否大于或等于该中间队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述最低级队列的下降阈值,若是,则将该数据块标识移动至下一级队列。
可选地,所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
保存读频率大于所述预设读频率阈值的数据块的数据块标识;
判断所保存的数据块标识中,各数据块标识对应的数据块,在预设时长之内的读频率是否保持大于所述预设读频率阈值;
若是,则将该数据块标识对应的数据块确定为所述目标数据块。
可选地,所述获取各个存储层节点所存储的每个数据块的读频率的步骤,包括:
定时接收各个所述存储层节点发送的,该存储层节点所存储的每个数据块的读频率;
或者,定时从各个所述存储层节点,查询该存储层节点所存储的每个数据块的读频率。
可选地,所述数据块拆分指令中包括:目标数据块标识、目标存储层节点标识和拆分数量;
在所述向待调度存储层节点发送针对所述目标数据块的数据块拆分指令之前,所述方法还包括:
根据所述目标数据块的读频率,确定子数据块的拆分数量,其中,所述拆分数量随所述目标数据块的读频率的增加而增加;
根据各个存储层节点所存储数据块的数量之间的大小关系,确定所述目标存储层节点;
或者,根据各个存储层节点所存储数据块的读频率之和之间的大小关系,确定所述目标存储层节点。
可选地,所述方法还包括:
接收目标存储层节点反馈的拆分结果,所述拆分结果中包含:每个拆分出的子数据块与存储该子数据块的存储层节点之间的对应关系;
保存所述拆分结果中的子数据块与存储该子数据块的存储层节点之间的对应关系。
可选地,所述分布式数据库系统还包括:查询层节点;
所述方法还包括:
当接收到查询层节点的访问请求时,判断是否已发出所述数据块拆分指令,且未接收到所述拆分结果;
如果是,向所述查询层节点发送反馈信息,以使所述查询层节点在接收到所述反馈信息后,再次向所述调度层节点发送访问请求。
可选地,在所述获取各个存储层节点所存储的每个数据块的读频率之后,所述方法还包括:
获取各个存储层节点所存储的每个数据块的写频率;
计算所述读频率与所述写频率之间的比值,作为读写比;
所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
将所述读频率大于预设读频率阈值,且所述读写比大于预设读写比阈值的数据块确定为目标数据块。
在本发明实施的第二方面,还提供了一种数据块调度方法,应用于分布式数据库系统中的存储层节点,所述分布式数据库系统还包括调度层节点,所述方法包括:
接收所述调度层节点发送针对目标数据块的数据块拆分指令,所述数据块拆分指令为:所述调度层节点在获取各个存储层节点所存储的每个数据块的读频率,并将所述读频率大于预设读频率阈值的数据块确定为目标数据块后发送的;
将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至所述目标存储层节点中进行存储,所述目标存储层节点为所述多个存储层节点中除所述待调度层节点之外的其他存储层节点,所述待调度存储层节点为存储所述目标数据块的存储层节点。
可选地,所述数据块拆分指令中,包括:拆分数量,所述将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至所述目标存储层节点中进行存储的步骤,包括:
根据所述拆分数量,将所述目标数据块拆分为所述拆分数量个子数据块;
将至少一个所述子数据块发送至所述目标存储层节点中进行存储。
在本发明的第三方面,提供了一种数据块调度装置,应用于分布式数据库系统中的调度层节点,所述分布式数据库系统还包括多个存储层节点,所述装置包括:
读频率获取模块,用于获取各个存储层节点所存储的每个数据块的读频率;
目标数据块确定模块,用于将所述读频率大于预设读频率阈值的数据块确定为目标数据块;
数据块拆分指令发送模块,用于向所述待调度存储层节点发送针对所述目标数据块的数据块拆分指令,以使所述待调度存储层节点将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,所述待调度存储层节点为存储所述目标数据块的存储层节点;所述目标存储层节点为所述多个存储层节点中除所述待调度层节点之外的的其他存储层节点。
可选地,所述目标数据块确定模块,包括:
数据块标识添加子模块,用于将所述读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,所述分级队列中包括多个不同级别的队列;
第一目标数据块确定子模块,用于若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于所述最高级队列预设的拆分阈值;如果是,则将该数据块标识对应的数据块确定为所述目标数据块,所述拆分阈值大于或等于所述预设读频率阈值。
可选地,所述目标数据块确定模块,还包括:
数据块标识移动子模块,用于若否,则判断该数据块标识对应的数据块,在预设时长后的读频率是否小于所述最高级队列预设的下降阈值,若是,则将该数据块标识移动至下一级队列。
可选地,所述分级队列中还包括最低级队列和至少一个中间队列,所述所述中间队列设置有下降阈值,所述最低级队列和所述中间队列设置有晋升阈值,所述最低级队列中还设置有淘汰阈值;所述淘汰阈值大于或等于所述预设读频率阈值;
所述数据块标识添加子模块,包括:
数据块标识添加单元,用于将所述读频率大于所述预设读频率阈值的数据块的数据块标识,添加至所述分级队列的最低级队列中;
所述目标数据块确定模块,还包括:
队列轮询子模块,用于轮询各级队列;
第一当前读频率判断子模块,用于判断所述最低级队列中的各数据块标识对应的数据块的当前读频率是否大于或等于所述最低级队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述淘汰阈值,若是,则将该数据块标识从所述分级队列中移除;
第二当前读频率判断子模块,用于判断所述中间队列中的各数据块标识对应的数据块的当前读频率是否大于或等于该中间队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述最低级队列的下降阈值,若是,则将该数据块标识移动至下一级队列。
可选地,所述目标数据块确定模块,包括:
数据块标识保存子模块,用于保存读频率大于所述预设读频率阈值的数据块的数据块标识;
读频率判断子模块,用于判断所保存的数据块标识中,各数据块标识对应的数据块,在预设时长之内的读频率是否保持大于所述预设读频率阈值;
第二目标数据块确定子模块,用于若是,则将该数据块标识对应的数据块确定为所述目标数据块。
所述读频率获取模块,具体用于:
定时接收各个所述存储层节点发送的,该存储层节点所存储的每个数据块的读频率;
或者,定时从各个所述存储层节点,查询该存储层节点所存储的每个数据块的读频率。
可选地,所述数据块拆分指令中包括:目标数据块标识、目标存储层节点标识和拆分数量;
所述装置还包括:
拆分数量确定模块,用于根据所述目标数据块的读频率,确定子数据块的拆分数量,其中,所述拆分数量随所述目标数据块的读频率的增加而增加;
第一目标存储层节点确定模块,用于根据各个存储层节点所存储数据块的数量之间的大小关系,确定所述目标存储层节点;
或者,第一目标存储层节点确定模块,用于根据各个存储层节点所存储数据块的读频率之和之间的大小关系,确定所述目标存储层节点。
可选地,所述装置还包括:
拆分结果接收模块,用于接收目标存储层节点反馈的拆分结果,所述拆分结果中包含:每个拆分出的子数据块与存储该子数据块的存储层节点之间的对应关系;
对应关系保存模块,用于保存所述拆分结果中的子数据块与存储该子数据块的存储层节点之间的对应关系。
可选地,所述分布式数据库系统还包括:查询层节点;
所述装置还包括:
数据块拆分指令判断模块,用于当接收到查询层节点的访问请求时,判断是否已发出所述数据块拆分指令,且未接收到所述拆分结果;
反馈信息发送模块,用于如果是,向所述查询层节点发送反馈信息,以使所述查询层节点在接收到所述反馈信息后,再次向所述调度层节点发送访问请求。
可选地,所述装置还包括:
写频率获取模块,用于获取各个存储层节点所存储的每个数据块的写频率;
读写比计算模块,用于计算所述读频率与所述写频率之间的比值,作为读写比;
所述目标数据块确定模块,具体用于:
将所述读频率大于预设读频率阈值,且所述读写比大于预设读写比阈值的数据块确定为目标数据块。
在本发明实施的第四方面,提供了一种数据块调度装置,应用于分布式数据库系统中的存储层节点,所述分布式数据库系统还包括调度层节点,所述装置包括:
数据块拆分指令接收模块,用于接收所述调度层节点发送针对目标数据块的数据块拆分指令,所述数据块拆分指令为:所述调度层节点在获取各个存储层节点所存储的每个数据块的读频率,并将所述读频率大于预设读频率阈值的数据块确定为目标数据块后发送的;
目标数据块拆分模块,用于将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至所述目标存储层节点中进行存储,所述目标存储层节点为所述多个存储层节点中除所述待调度层节点之外的其他存储层节点,所述待调度存储层节点为存储所述目标数据块的存储层节点。
可选地,所述数据块拆分指令中包括:拆分数量,所述目标数据块拆分模块,包括:
目标数据块拆分子模块,用于根据所述拆分数量,将所述目标数据块拆分为所述拆分数量个子数据块;
子数据块发送子模块,用于将至少一个所述子数据块发送至所述目标存储层节点中进行存储。
在本发明实施的又一方面,还提供了一种调度层节点,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的方法中,任一所述的方法步骤。
在本发明实施的又一方面,还提供了一种存储层节点,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第二方面提供的方法中,任一所述的方法步骤。
在本发明实施的又一方面,还提供了一种分布式数据库系统,分布式数据库系统包括:调度层节点以及多个存储层节点;
所述调度层节点用于获取各个存储层节点所存储的每个数据块的读频率;
所述调度层节点还用于将所述读频率大于预设读频率阈值的数据块确定为目标数据块;
所述调度层节点还用于向所述待调度存储层节点发送针对所述目标数据块的数据块拆分指令;以使所述待调度存储层节点将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,所述待调度存储层节点为存储所述目标数据块的存储层节点,所述目标存储层节点为所述多个存储层节点中除所述待调度层节点之外的的其他存储层节点;
所述存储层节点用于接收所述调度层节点发送针对目标数据块的数据块拆分指令,所述数据块拆分指令为:所述调度层节点在获取各个存储层节点所存储的每个数据块的读频率,并将所述读频率大于预设读频率阈值的数据块确定为目标数据块后发送的;
所述存储层节点还用于将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至所述目标存储层节点中进行存储。
可选地,所述调度层节点,将所述读频率大于预设读频率阈值的数据块确定为目标数据块,包括:
将所述读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,所述分级队列中包括多个不同级别的队列;
若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于所述最高级队列预设的拆分阈值;如果是,则将该数据块标识对应的数据块确定为所述目标数据块,所述拆分阈值大于或等于所述预设读频率阈值。
可选地,所述调度层节点,将所述读频率大于预设读频率阈值的数据块确定为目标数据块,还包括:
若否,则判断该数据块标识对应的数据块,在预设时长后的读频率是否小于所述最高级队列预设的下降阈值,若是,则将该数据块标识移动至下一级队列。
可选地,所述分级队列中还包括最低级队列和至少一个中间队列,所述所述中间队列设置有下降阈值,所述最低级队列和所述中间队列设置有晋升阈值,所述最低级队列中还设置有淘汰阈值;所述淘汰阈值大于或等于所述预设读频率阈值;
所述调度层节点,所述将所述读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,包括:
将所述读频率大于所述预设读频率阈值的数据块的数据块标识,添加至所述分级队列的最低级队列中;
所述调度层节点,将所述读频率大于预设读频率阈值的数据块确定为目标数据块,还包括:
轮询各级队列;
判断所述最低级队列中的各数据块标识对应的数据块的当前读频率是否大于或等于所述最低级队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述淘汰阈值,若是,则将该数据块标识从所述分级队列中移除;
判断所述中间队列中的各数据块标识对应的数据块的当前读频率是否大于或等于该中间队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述最低级队列的下降阈值,若是,则将该数据块标识移动至下一级队列。
可选地,所述调度层节点,所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
保存读频率大于所述预设读频率阈值的数据块的数据块标识;
判断所保存的数据块标识中,各数据块标识对应的数据块,在预设时长之内的读频率是否保持大于所述预设读频率阈值;
若是,则将该数据块标识对应的数据块确定为所述目标数据块。
可选地,所述调度层节点,获取各个存储层节点所存储的每个数据块的读频率,包括:
定时接收各个所述存储层节点发送的,该存储层节点所存储的每个数据块的读频率;
或者,定时从各个所述存储层节点,查询该存储层节点所存储的每个数据块的读频率。
可选地,所述数据块拆分指令中包括:目标数据块标识、目标存储层节点标识和拆分数量;
所述调度层节点还用于:
根据所述目标数据块的读频率,确定子数据块的拆分数量,其中,所述拆分数量随所述目标数据块的读频率的增加而增加;
根据各个存储层节点所存储数据块的数量之间的大小关系,确定所述目标存储层节点;
或者,根据各个存储层节点所存储数据块的读频率之和之间的大小关系,确定所述目标存储层节点。
可选地,所述调度层节点还用于:
接收目标存储层节点反馈的拆分结果,所述拆分结果中包含:每个拆分出的子数据块与存储该子数据块的存储层节点之间的对应关系;
保存所述拆分结果中的子数据块与存储该子数据块的存储层节点之间的对应关系。
可选地,所述分布式数据库系统还包括:查询层节点;
所述调度层节点,还用于:
当接收到查询层节点的访问请求时,判断是否已发出所述数据块拆分指令,且未接收到所述拆分结果;
如果是,向所述查询层节点发送反馈信息,以使所述查询层节点在接收到所述反馈信息后,再次向所述调度层节点发送访问请求。
可选地,所述调度层节点还用于:
获取各个存储层节点所存储的每个数据块的写频率;
计算所述读频率与所述写频率之间的比值,作为读写比;
所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
将所述读频率大于预设读频率阈值,且所述读写比大于预设读写比阈值的数据块确定为目标数据块。
可选地,所述数据块拆分指令中,包括:拆分数量,所述存储层节点,将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至所述目标存储层节点中进行存储,包括:
根据所述拆分数量,将所述目标数据块拆分为所述拆分数量个子数据块;
将至少一个所述子数据块发送至所述目标存储层节点中进行存储。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的方法中任一所述的方法步骤。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面提供的方法中任一所述的方法步骤。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的方法中,任一所述的方法步骤。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面提供的方法中,任一所述的方法步骤。
本发明实施例提供的数据块调度方法、装置、调度层节点、存储层节点、分布式数据库系统及存储介质,调度层节点通过获取各个存储层节点所存储的每个数据块的读频率;将读频率大于预设读频率阈值的数据块确定为目标数据块;向待调度存储层节点发送数据块拆分指令,以使待调度存储层节点将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储。在本发明实施例中,调度层节点可以指令待调度存储层节点对读频率大于预设读频率阈值的目标数据块,也就是是客户端访问频繁的数据块,进行拆分,并将拆分后的至少一个子数据块发送至目标存储层节点进行存储,因此,可以降低该待调度存储层节点的处理压力,进而平衡整个分布式数据库系统中各存储层节点的处理压力,提高了分布式数据库系统的性能稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为现有技术中分布式数据库系统的逻辑结构示意图;
图2a为本发明实施例提供的分布式数据库系统的一种逻辑结构示意图;
图2b为应用于图2a所示分布式数据库系统的数据块调度方法的第一种流程示意图;
图3a为图2b中,步骤S202的第一种流程示意图;
图3b为图2b中,步骤S202的第二种流程示意图;
图3c为图2b中,步骤S202的第三种流程示意图;
图4为图2b中,步骤S202的第四种流程示意图;
图5为应用于图2a所示分布式数据库系统的数据块调度方法的第二种流程示意图;
图6为应用于图2a所示分布式数据库系统的数据块调度方法的第三种流程示意图;
图7为应用于图2a所示分布式数据库系统的数据块调度方法的第四种流程示意图;
图8为应用于图2a所示分布式数据库系统的数据块调度方法的第五种流程示意图;
图9为应用于图2a所示分布式数据库系统的数据块调度方法的第六种流程示意图;
图10为应用于图2a所示分布式数据库系统的数据块调度方法的第七种流程示意图;
图11为图10中,步骤S1002的一种流程示意图;
图12为本发明实施例提供的数据块调度装置的一种结构示意图;
图13为本发明实施例提供的数据块调度装置的另一种结构示意图;
图14为本发明实施例提供的调度层节点的一种结构示意图;
图15为本发明实施例提供的存储层节点的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
现有技术中,如图1所示,分布式数据库系统中通常包括调度层节点110、查询层节点120以及多个存储层节点130。现有技术中,各数据块分别存储在固定的存储层节点130中。在客户端100访问数据内容的过程中,查询层节点120在接收客户端100发送的数据访问请求之后,向调度层节点110发送存储查询请求,调度层节点110根据自身存储的数据块与存储层节点130之间的对应关系,将存储层节点标识发送至查询层节点120,查询层节点120从存储层节点标识对应的存储层节点130获得待访问数据,并发送至客户端100。
由于不同的数据块中的数据内容不同,有一些数据块的数据内容可能是用户特别感兴趣的数据,该数据块会被客户端频繁访问,这些数据就成为读热点,使得存储该数据块的存储层节点处理压力较大;还有一些数据块的数据内容可能是用户不感兴趣的数据,该数据块被客户端访问的频率很低,使得存储该数据块的存储层节点处理压力较小。可见,现有技术中,整个分布式数据库系统中各存储层节点的处理压力分布不均。
有鉴于此,本发明实施例提供了一种数据块调度方法,应用于分布式数据库中的调度层节点110。如图2a所示,分布式数据库系统还包括多个存储层节点130,其中调度层节点110与每个存储层节点130通信连接,每个存储层节点130之间互相通信连接。
如图2b所示,本发明实施例提供的数据块调度方法,应用于分布式数据库中的调度层节点110,包括如下步骤:
S201,获取各个存储层节点所存储的每个数据块的读频率。
S202,将读频率大于预设读频率阈值的数据块确定为目标数据块。
S203,向待调度存储层节点发送针对目标数据块的数据块拆分指令,以使待调度存储层节点将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,待调度存储层节点为存储目标数据块的存储层节点,目标存储层节点为多个存储层节点中除待调度层节点之外的其他存储层节点。
本发明实施例提供的数据块调度方法,当应用于调度层节点时,通过获取各个存储层节点所存储的每个数据块的读频率;将读频率大于预设读频率阈值的数据块确定为目标数据块;向待调度存储层节点发送数据块拆分指令,以使待调度存储层节点将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储。在本发明实施例中,调度层节点可以指令待调度存储层节点对读频率大于预设读频率阈值的目标数据块,也就是是客户端访问频繁的数据块,进行拆分,并将拆分后的至少一个子数据块发送至目标存储层节点进行存储,因此,可以降低该待调度存储层节点的处理压力,进而平衡整个分布式数据库系统中各存储层节点的处理压力,提高了分布式数据库系统的性能稳定性。此外,由于分布式数据库系统中各存储层节点的处理压力得到均衡,因此,在增加分布式数据库系统的存储容量时,其处理能力也能够得到提升,即,本发明实施例还能够提高分布式数据库系统的横向扩展能力。
进一步地,图2b所示实施例流程步骤S201中,在每个存储层节点中通常可以存储多个数据块,存储层节点可以实时统计该存储层节点中所存储的各个数据块的读频率,读频率可以指单位时间内的读次数,即,单位时间内被客户端访问的次数。调度层节点可以从各个存储层节点中获取该存储层节点所存储的每个数据块的读频率。
进一步地,图2b所示实施例流程步骤S202中,预设读频率阈值可以为根据经验设置的一个阈值,该阈值也可以根据存储层节点的CPU使用率达到使用率阈值时的读频率来确定,CPU使用率可以从存储层节点中获取到,其表征服务器在运行的过程中所占用的CPU资源。例如,设定一个使用率阈值,通过设置不同的读频率,进行读取测试,得到该读频率对应的CPU使用率,当存储层节点的CPU使用率达到使用率阈值时,该存储层节点中所存储数据块的读频率,即为预设读频率阈值。
步骤S202中,可以依次判断所获取的各个数据块的读频率是否大于预设读频率阈值,如果是的话,则将大于预设读频率阈值的数据块确定为目标数据块,该目标数据块为读频率较高的数据块,也可以被称为读热点数据块,需要对其进行拆分。
进一步地,图2b所示实施例流程步骤S203中,可以向待调度存储层节点发送针对目标数据块的数据块拆分指令,该数据块拆分指令中可以包括目标数据块的标识,以使待调度存储层节点按照目标数据块的标识将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储。其中,待调度存储层节点为存储目标数据块的存储层节点。
作为本发明实施例一种可选的实施方式,图2b所示实施例流程步骤S203中的待调度存储层节点,可以按照如下方式确定:
基于已保存的数据块与存储层节点之间的对应关系,确定待调度存储层节点。在分布式数据库系统中存储数据时,调度层节点中可以预先存储各个存储层节点的内存大小,在获取到各个数据块的数据标识和数据量大小之后,将所需要存储的数据块尽量平均分配给各个存储层节点进行存储,并存储数据块与存储层节点之间的对应关系。其中数据块与存储层节点之间的对应关系,可以通过数据块中的数据内容与存储层节点的标识之间的对应关系表示,也可以通过数据块标识与存储层节点的标识之间的对应关系表示。调度层节点可以基于已保存的数据块与存储层节点之间的对应关系,利用目标数据块,查找对应关系,得到存储目标数据块的待调度存储层节点。
此外,由于在保存数据块与存储层节点之间的对应关系中,各个数据块有先后顺序,因此,在确定出目标数据块之后,还可以将根据该数据块在调度层节点中的存储顺序,确定该目标数据块对应的存储层节点。
作为本发明实施例一种可选的实施方式,如图3a所示,图2b所示实施例流程步骤S202,将读频率大于预设读频率阈值的数据块确定为目标数据块,包括:
S301,将读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中。
当数据块的读频率大于预设读频率阈值时,表明该数据块的读频率较高,可以将该数据块对应的数据块标识添加至预设的分级队列中。
分级队列可以为预先设置、其中包括多个不同级别的队列。该分级队列可以包括两级队列,分别为最高级队列和最低级队列;该分级队列也可以包括三级队列,分别为最高级队列、中间队列和最低级队列;该分级队列还可以为级数超过三级的队列,分别为最高级队列、多个中间队列和最低级队列。
S302,若分级队列的最高级队列中存在数据块标识,则判断最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于最高级队列预设的拆分阈值。
S303,如果是,则将该数据块标识对应的数据块确定为目标数据块。
可以判断最高级队列中是否存在数据块标识,若是,则可以判断该最高级队列中的各个数据块标识对应的数据块,在预设时长后的读频率是否大于最高级队列预设的拆分阈值,如果是,则将该数据块标识对应的数据块确定为目标数据块。其中,拆分阈值可以大于或等于预设读频率阈值。
在本发明实施例中,通过设置分级队列,并在最高级队列中存在数据块标识时,判断最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于最高级队列预设的拆分阈值。如果是,则将该数据块标识对应的数据块确定为目标数据块,能够在一定程度上避免将瞬间高读频率的数据块确定为目标数据块进行拆分的情况,进而能够提高对高读频率数据块的识别稳定性。
作为本发明实施例一种可选的实施方式,如图3b所示,在如图3a所示实施例流程步骤S302,若分级队列的最高级队列中存在数据块标识,则判断最高级队列中的数据块标识对应的数据块在预设时长之后,读频率是否大于最高级队列预设的拆分阈值之后,图2b所示实施例流程步骤S202,将读频率大于预设读频率阈值的数据块确定为目标数据块,还包括:
S304,若否,则判断该数据块标识对应的数据块,在预设时长后的读频率是否小于最高级队列预设的下降阈值。
S305,若是,则将该数据块标识移动至下一级队列。
如果最高级队列中的数据块标识对应的数据块,在预设时长之后读频率小于拆分阈值,则判断该数据块标识对应的数据块的当前读频率是否小于最高级队列预设的下降阈值,若是,则将该数据块标识下降至下一级队列,以使该数据块标识可以在分级队列中移动。此处下一级队列可以指,相比最高级队列低一级的队列。若否,则保持该数据块标识位置不变。需要说明的是,下降阈值小于拆分阈值。
作为本发明实施例一种可选的实施方式,分级队列中还包括最低级队列和至少一个中间队列,中间队列设置有下降阈值,最低级队列和中间队列设置有晋升阈值,最低级队列中还设置有淘汰阈值;淘汰阈值大于或等于预设读频率阈值。中间队列的下降阈值可以大于或等于该中间队列的下一级队列的晋升阈值,中间队列的晋升阈值可以小于或等于该中间队列的上一级队列的下降阈值。
如图3c所示,图3a所示实施例流程步骤S301,将读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中的步骤,包括:
S306,将读频率大于预设读频率阈值的数据块的数据块标识,添加至分级队列的最低级队列中。
可以将读频率阈值大于预设读频率阈值的数据块的数据块标识,添加至分级队列的最低级队列中。
在图3a所示实施例流程步骤S302,若分级队列的最高级队列中存在数据块标识,则判断最高级队列中的数据块标识对应的数据块在预设时长之后,读频率是否大于最高级队列预设的拆分阈值的步骤之前,如图3c所示,图2b所示实施例流程步骤S202,将读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,还包括:
S307,轮询各级队列。
可以定时轮询各级队列,即,按照预设的时间间隔轮询各级队列,例如,当时间间隔为一分钟时,则可以每间隔一分钟对各级队列进行一次轮询。在轮询的过程中,判断各级队列中的数据块标识对应的数据块在当前时刻的读频率,是否低于淘汰阈值或者下降阈值;或者判断各级队列中的数据块标识对应的数据块在当前时刻的读频率,是否高于晋升阈值或拆分阈值,并根据判断结果确定将该数据块标识进行移除、移动至上一级队列还是移动至下一级队列。
S308,判断最低级队列中的各数据块标识对应的数据块的当前读频率是否大于或等于最低级队列的晋升阈值。
S309,若是,则将该数据块标识移动至上一级队列中。
可以判断最低级队列中的各个数据块标识对应的数据块,在轮询该分级队列的当前时刻的读频率是否大于最低级队列的晋升阈值,如果是,则将该数据块的数据块标识,移动至最低级队列的上一级队列,此处上一级队列可以指相比最低级队列高一级的队列。
S310,若否,则判断该数据块标识对应的数据块的当前读频率是否小于淘汰阈值。
S311,若是,则将该数据块标识从分级队列中移除。
如果数据块标识对应的数据块在当前时刻的读频率小于最低级队列的晋升阈值,则判断该数据块标识对应的数据块的当前读频率是否小于淘汰阈值,若是,则表明该数据块标识对应的数据块已不再是高读频率的数据块,因此,可以将该数据块的数据块标识从分级队列中移除。此处需要说明的是,在数据块标识进入该队列之后,至到达下一次轮询各级队列之间,还可以多次对各个队列中的数据块标识对应的数据块的读频率和该队列中的阈值进行比较,并根据比较结果确定是否需要对数据块标识进行移动。当下一级队列中包含该数据块标识时,则将该队列中的数据块标识删除。
S312,判断中间队列中的各数据块标识对应的数据块的当前读频率是否大于或等于该中间队列的晋升阈值。
S313,若是,则将该数据块标识移动至上一级队列中。
可以判断该中间队列中的各个数据块标识对应的数据块,在轮询该分级队列的当前时刻,其读频率是否大于该中间队列的晋升阈值,若是,则该数据块的数据块标识,移动至该中间队列的上一级队列,此处上一级队列可以指相比该中间队列高一级的队列。若否,则保持该数据块标识位置不变。
S314,若否,则判断该数据块标识对应的数据块的当前读频率是否小于最低级队列的下降阈值。
S315,若是,则将该数据块标识移动至下一级队列。
如果数据块标识对应的数据块在当前时刻的读频率小于中间队列的晋升阈值,则判断该数据块标识对应的数据块的当前读频率是否小于该中间队列的下降阈值,若是,则可以将该数据块的数据块标识移动至下一级队列。下一级队列可以指,相比该中间队列低一级的队列。若否,则保持该数据块标识位置不变。
在本发明实施例中,通过在分级队列中设置多级队列,并在每一级队列中设置不同的阈值,判断各级队列中的数据块标识对应的数据块的读频率与该级队列设置的阈值之间的大小,确定将该数据块标识移动至上一级队列、移动至下一级队列还是从分级队列中移除。通过数据块标识在分级队列中的移动,以及判断结果,可以将较长时间保持高读频率的数据块筛选出来,也可以将不再是高读频率的数据块标识筛选出来并从分级队列中移除。因此,本发明实施例能够在一定程度上避免将短时间内高读频率的数据块确定为目标数据块进行拆分的情况,进而能够提高对高读频率数据块的识别稳定性。
作为本发明实施例一种可选的实施方式,如图4所示,图2b所示实施例流程步骤S202,将读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,可以包括:
S401,保存读频率大于预设读频率阈值的数据块的数据块标识。
可以依次判断所获取的各个数据块的读频率是否大于预设读频率阈值,若是,则保存大于预设读频率阈值的数据块的数据块标识。数据块标识可以为存储层节点中为各个数据块所分配的不同的标识。数据块标识也可以为在确定读频率大于预设读频率阈值的数据块之后,重新生成的标识,例如,可以为按照获得读频率大于预设读频率阈值的数据块的先后顺序生成的数值标识。
S402,判断所保存的数据块标识中,各数据块标识对应的数据块,在预设时长之内的读频率是否保持大于预设读频率阈值。
预设时长可以为预先根据经验设置的一个时长,在对分布式数据库系统中的数据进行访问的过程中,可能存在某些数据块的数据内容虽然读频率较高,却是在某一瞬间较高,或者在某一个较短的时间段内较高,该时间段过去之后,读频率又下降至预设读频率阈值之下,不再是读频率较高的数据块。因此,可以根据实际出现的这种情况中,数据块保持读频率较高的时长确定预设时长。需要说明的是,在本步骤中,读频率较高可以指,读频率大于预设读频率阈值。
在保存了多个读频率大于读频率阈值的数据块的数据块标识之后,可以接着判断在预设时长之内,这些数据块标识对应的数据块的读频率是否保持大于预设读频率阈值,并根据判断结果确定是否将该数据表标识对应数据块确定为目标数据块。其中预设时长之内的读频率是否保持大于预设读频率阈值可以指,从读频率大于预设读频率阈值的时刻,至经过预设时长之后的时刻之间,每间隔一个时间周期,判断一次在数据块的当前读频率是否大于预设读频率阈值。举例而言,当预设时长为一分钟,时间周期为十秒时,如果在十二点整,一个数据块的读频率大于读频率阈值,则保存该数据块的数据块标识,在十二点整至十二点零一分钟之间,每间隔十秒判断一次该数据块的当前读频率,并判断所获取的当前读频率是否大于预设读频率阈值,如果在这一分钟的时间内,数据块的读频率保持大于预设读频率阈值,则将该数据块确定为目标数据块。
S403,若是,则将该数据块标识对应的数据块确定为目标数据块。
若是,则表明在预设时长之内,读频率保持大于预设读频率阈值的数据块,高读频率持续一定时长,并不是瞬间高读频率的数据块,可以对其进行拆分,即,将该数据块确定为目标数据块。若否,则对该数据块标识不做任何处理。
在本发明实施例中,通过判断所保存的数据块标识对应的数据块在预设时长之内,读频率是否保持大于预设读频率阈值,能够在一定程度上避免将短时间内高读频率的数据块确定为目标数据块进行拆分的情况,进而能够提高访问频率的数据块的识别稳定性。
作为本发明实施例一种可选的实施方式,图2b所示实施例流程步骤S201,获取各个存储层节点所存储的每个数据块的读频率,可以有两种具体的实现方式,第一种实现方式:
定时接收各个存储层节点发送的,该存储层节点所存储的每个数据块的读频率。
具体地,可以通过在存储层节点中进行设置,使各个存储层节点定时向调度层节点发送一次在当前发送时刻之前的一个单位时间内,该存储层节点中各个数据块的读频率,即,各个存储层节点每间隔一个时间周期,向调度层节点发送一次读频率。该时间周期例如可以为单位时间,在该种情况下,存储层节点每统计一次数据块的读频率,便向调度层节点发送一次。例如,当单位时间为秒时,则各个存储层节点每间隔一秒,向调度层节点发送一次前一秒各个数据块的读频率。
第二种实现方式:定时从各个存储层节点,查询该存储层节点所存储的每个数据块的读频率。
具体地,调度层节点还可以间隔一个时间周期向各个存储层节点发送一次访问请求,各个存储层节点在接收到访问请求后,将自身所统计的各个数据块的度频率发送至调度层节点。该时间周期例如可以为单位时间,在该种情况下,调度层节点每间隔一个单位时间从各个存储层节点中查询该存储层节点中所存储的数据块的读频率。
作为本发明实施例一种可选的实施方式,数据块拆分指令中包括:目标数据块标识、目标存储层节点标识和拆分数量。目标数据块标识可以为存储层节点预先为目标数据块设置的标识,也可以为目标数据块中存储数据内容的标识。目标存储层节点标识可以为目标存储层节点的ID(Identity document,身份证标识号)。拆分数量可以指,需要将目标数据块拆分后得到的子数据块的数量。
如图5所示,在图2b所示实施例流程步骤S203,向待调度存储层节点发送针对目标数据块的数据块拆分指令之前,本发明实施例提供的数据块调度方法还可以包括:
S501,根据目标数据块的读频率,确定子数据块的拆分数量。
可以根据目标数据块的读频率,确定目标数据块的拆分数量,该拆分数量随目标数据块的读频率的增加而增加。例如,可以预先设置读频率范围与拆分数量之间的对应关系,根据查找该对应关系,确定拆分数量。在获取到读频率之后,可以确定该读频率落入哪个读频率范围内,接着将该读频率范围对应的拆分数量,确定该目标数据块对应子数据块的拆分数量。也可以计算读频率与预设读频率阈值之间的比值,并根据该比值,确定目标数据块的拆分数量,当该比值为整数时,则可以将拆分数量设定为该比值;如果该比值为非整数时,则可以将拆分数量设定为该比值的整数部分加一后得到的数值。具体确定拆分数量以能实现为准,本实施例并不做具体限制。
S502,根据各个存储层节点所存储数据块的数量之间的大小关系,确定目标存储层节点。
在调度层节点中保存有数据块与存储层节点之间的对应关系,因此,可以统计各个存储层节点中所存储数据块的数量,并根据各个存储层节点之间的大小关系,确定目标存储层节点。可以通过比较各个存储层节点所存储数据块的数量之间的大小,并将存储数据块的数量较小的存储层节点,确定为目标存储层节点。由于该目标存储层节点所存储的数据块的数量较少,因此,当待调度存储层节点将子数据块发送至目标存储层节点进行存储时,不增加其他数据块数量较高的存储层节点的处理压力,因此能够更好地均衡各个存储层节点的处理压力。
在另一个实施例中,如图6所示,在图2b所示实施例流程步骤S203,向待调度存储层节点发送针对目标数据块的数据块拆分指令之前,本发明实施例提供的数据块调度方法还可以包括:
S601,根据目标数据块的读频率,确定子数据块的拆分数量。
在本发明实施例中,拆分数量随目标数据块的读频率的增加而增加。该步骤,可以参照图5所示实施例流程步骤S501。
S602,根据各个存储层节点所存储数据块的读频率之和之间的大小关系,确定目标存储层节点。
调度服务器中保存有数据块与存储层节点之间的对应关系,因此,可以统计各个存储层节点中所存储数据块的读频率,并计算该存储层节点中所存储所有数据块的读频率之和,进而根据读频率之和之间的大小关系,确定目标存储层节点。可以通过比较各个存储层节点所存储数据块的读频率之和之间的大小,并将存储数据块的读频率之和较小的存储层节点,确定为目标存储层节点。由于该目标存储层节点所存储的数据块的读频率较少,因此,当待调度存储层节点将子数据块发送至目标存储层节点进行存储时,不增加其他数据块读频率之和较高的存储层节点的处理压力,因此能够更好地均衡各个存储层节点的处理压力。
此外,在确定目标存储层节点的过程中,可以根据拆分数量、各个存储层节点所存储数据块的读频率之和、以及各个子数据块的大小,综合确定目标存储层节点的数量和目标存储层节点标识。首先,可以根据拆分数量确定目标存储层节点的数量,目标存储层节点的数量可以小于或等于拆分数量减一后得到的数值。接着,根据目标存储层节点的数量、各个存储层节点所存储数据块的读频率之和,以及各个子数据块的大小确定目标存储层节点标识。
具体实施时,当拆分数量为2,则只需要根据各个存储层节点所存储数据块的读频率之和确定一个目标存储层节点,例如,可以将所有存储层节点中除待调度存储层节点之外的其他存储层节点中,所存储数据块的读频率之和最小的存储层节点确定为目标存储层节点。当拆分数量大于2时,先将其他存储层节点中,所存储数据块的读频率之和最小的存储层节点确定为目标存储层节点;接着判断该目标存储层节点存储一个子数据块后,该目标存储层节点所存储所有数据块的读频率之和是否超过除该目标存储层节点之外的其他存储层节点,如果是,则从除该目标存储层节点之外的其他存储层节点中选择所存储数据块的读频率之和最小的存储层节点作为目标存储层节点,以此类推。
作为本发明实施例一种可选的实施方式,如图7所示,本发明实施例提供的数据块调度方法还可以包括:
S701,接收目标存储层节点反馈的拆分结果。
目标存储层节点在接收到待调度存储层节点发送的子数据块之后,可以将拆分结果发送至调度层节点,调度层节点可以接收该拆分结果,其中,拆分结果中包含:每个拆分出的子数据块与存储该子数据块的存储层节点之间的对应关系。
S702,保存拆分结果中的子数据块与存储该子数据块的存储层节点之间的对应关系。
在获得拆分结果之后,可以保存拆分结果中的子数据块与存储该子数据块的存储层节点之间的对应关系,这样,调度层节点中始终保存最新的对应关系,避免因未保存子数据块与存储该子数据块的存储层节点之间的对应关系,导致客户端无法访问数据的情况。
作为本发明实施例一种可选的实施方式,如图2a所示,分布式数据库系统还可以包括:查询层节点120。其中查询层节点120、调度层节点110和存储层节点130分别为服务器。客户端100访问数据内容的过程中,客户端100首先将数据访问请求发送至分布式数据库系统,由查询层节点120接收数据访问请求,向调度层节点110发送访问请求,调度层节点110根据自身存储的数据块与存储该数据块的存储层节点130之间的对应关系,将存储有待访问数据的存储层节点标识发送至查询层节点120,查询层节点120从存储层节点标识对应的存储层节点130获得待访问数据,并发送至客户端100。
另外,分布式数据库系统中的查询层节点、调度层节点和存储层节点可以部署于一个服务器中。
此外,查询层节点的数量可以为多个,当有多个查询层节点时,可以采用轮询的方式,确定由多个查询层节点中的其中一个查询层节点接收客户端发送的数据访问请求,即按照预设的顺序由多个查询层节点轮流接收客户端发送的数据访问请求。
如图8所示,本发明实施例提供的数据块调度方法还可以包括:
S801,当接收到查询层节点的访问请求时,判断是否已发出数据块拆分指令,且未接收到拆分结果。
当调度层节点接收到查询层节点发送的访问请求时,可以判断是否发出数据块拆分指令,且未收到拆分结果,如果是,表明调度过程尚未完成,待调度存储层节点可能正在拆分数据块,或者子数据块正在发送,暂未到达目标存储层节点,在这个过程中,调度层节点按照保存的数据块与存储有该数据块的存储层节点之间的对应关系,所查找到的存储层节点并未存储待访问数据,进而导致无法为客户端提供数据。
S802,如果是,向查询层节点发送反馈信息,以使查询层节点在接收到反馈信息后,再次向调度层节点发送访问请求。
如果是,表明调度过程尚未完成,可以向查询层节点发送反馈信息,以使查询层节点在接收到反馈信息后,再次向调度层节点发送访问请求。再次发送访问请求可以在上一次发送访问请求之后的间隔一段时间后进行。
如果否,表明调度过程已经完成,则可以直接向查询层节点发送存储有待访问数据的存储层节点标识。
在本发明实施例中,在接收到查询层节点的访问请求时,通过判断是否已发出数据块拆分指令,且未接收到拆分结果,如果是,向查询层节点发送反馈信息,以使查询层节点在接收到反馈信息后,再次向调度层节点发送访问请求,直到调度过程完成,接收到拆分结果,并向查询层节点发送存储数据块的存储层节点。因此,该方法能够使得客户端无论在什么情况下访问数据时,均能够接收到待访问数据,进而提高分布式数据库系统的访问准确性。
作为本发明实施例一种可选的实施方式,如图9所示,在图2b所示实施例流程步骤S201,获取各个存储层节点所存储的每个数据块的读频率之后,本发明实施例提供的数据块调度方法还可以包括:
S901,获取各个存储层节点所存储的每个数据块的写频率。
在每个存储层节点中通常可以存储多个数据块,存储层节点可以实时统计该存储层节点中所存储的各个数据块的写频率,写频率可以指单位时间内的写次数,即,单位时间内被写入的次数,例如:单位时间内对存储层节点中的内容进行修改的次数。调度层节点可以从各个存储层节点中获取该存储层节点所存储的每个数据块的写频率。
S902,计算读频率与写频率之间的比值,作为读写比。
针对各个数据块,可以计算该数据块的读频率与写频率之间的比值,作为读写比。
图2b所示实施例流程步骤S202,将读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,可以包括:
S903,将读频率大于预设读频率阈值,且读写比大于预设读写比阈值的数据块确定为目标数据块。
可以将读频率大于预设读频率阈值,且读写比大于预设读写比阈值的数据块确定为目标数据块,当一个数据块的读写比较低时,表明该数据块中的数据内容被频繁地修改,因此,可以不对该数据块进行拆分。
另外,可以将读频率大于预设读频率阈值的数据块中的数据内容缓存在内存中,并且在数据块中的数据内容被修改后,立即更新内存中数据块中的数据内容。这样,当访问该数据块时,可以优先从内存中进行访问,进而能够提高数据访问的速度。而针对从分级队列中移除的数据块标识对应的数据块,则可以将该数据块的数据内容从内存中删除。
但是,当读频率大于预设读频率阈值的数据块,其读写比小于或等于预设读写比阈值时,不需要将该数据块缓存在内存中。
如图10所示,本发明实施例还提供了一种数据块调度方法,应用于分布式数据库系统中的存储层节点,分布式数据库系统还包括调度层节点,该过程可以包括:
S1001,接收调度层节点发送针对目标数据块的数据块拆分指令,数据块拆分指令为:调度层节点在获取各个存储层节点所存储的每个数据块的读频率,并将读频率大于预设读频率阈值的数据块确定为目标数据块后发送的。
S1002,将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点中进行存储,目标存储层节点为多个存储层节点中除待调度层节点之外的其他存储层节点,待调度存储层节点为存储目标数据块的存储层节点。
本发明实施例提供的数据块调度方法,当应用于分布式数据库系统中的存储层节点中时,接收调度层节点发送针对目标数据块的数据块拆分指令,将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点中进行存储,目标存储层节点为多个存储层节点中的其他存储层节点。在本发明实施例中,读频率大于预设读频率阈值的数据块是客户端访问频繁的数据块,通过向待调度存储层节点发送数据块拆分指令,待调度存储层节点可以将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,因此,可以降低该待调度存储层节点的处理压力,进而平衡整个分布式数据库系统中各存储层节点的处理压力,提高了分布式数据库系统的性能稳定性。
进一步的,图10所示实施例流程步骤S1001中,存储层节点可以实时统计该存储层节点中所存储的各个数据块的读频率,并在统计完成后定时将各个数据块的读频率发送至调度层节点。当该存储层节点所存储的数据块的数量过多时,为减少该存储层节点的统计工作,进而避免造成过大的中央处理单元的处理压力和内存的缓存压力,可以设置一个统计数量阈值,仅针对不超过统计数量阈值个数据块进行读频率的统计工作。当然,这种情况下,可能导致部分数据块的读频率无法得到统计,因此,可以按照统计数量阈值,将数据块分为多组,每组数据块的数量不超过统计数量阈值,再对多组数据块进行轮番统计。
存储层节点可以接收调度层节点发送的针对目标数据块的数据块拆分指令,该数据块拆分指令中可以包含目标数据块标识。
进一步的,图10所示实施例流程步骤S1002中,目标数据块中通常可以包含多个键值对,在拆分目标数据块的过程中,可以对多个键值对进行拆分,得到多个子数据块,各个子数据块中分别包含原多个键值对中的部分键值对。
可以将至少一个子数据块发送至目标存储层节点中进行存储,该目标存储层节点未多个存储层节点中的其他存储层节点。在发送的子数据块的过程中,可以将其中一个子数据块发送至目标存储层节点,也可以将所有子数据块发送至目标存储层节点。此外。可以将所有子数据块发送至一个目标存储层节点,也可以将所有子数据块发送至多个不同的目标存储层节点。
作为本发明实施例一种可选的实施方式,数据块拆分指令中,包括:拆分数量,拆分数量可以指,需要将目标数据块拆分后得到的子数据块的数量。
此外,数据块拆分指令中还可以包括目标数据块标识、目标存储层节点标识和,目标数据块标识可以为存储层节点预先为目标数据块设置的标识,也可以为目标数据块中存储数据内容的标识。目标存储层节点标识可以为目标存储层节点的ID(Identitydocument,身份证标识号)。
如图11所示,图10所示实施例流程步骤S1002,将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点中进行存储的步骤,可以包括:
S1101,根据拆分数量,将目标数据块拆分为拆分数量个子数据块。
可以将目标数据块拆分为拆分数量个子数据块,针对目标数据块中的多个键值对,可以将多个键值对平均拆分为拆分数量个子数据块,即,拆分后得到的子数据块中的键值对的数量均相同,或者各子数据块中的键值对的数量相差不超过两个。
S1102,将至少一个子数据块发送至目标存储层节点中进行存储。
可以从数据块拆分指令中获得目标存储层节点标识,并将至少一个子数据块发送至目标存储层节点标识对应的目标存储层节点进行存储。由于在本发明实施例中,目标存储层节点标识为调度层节点所发送的数据块拆分指令中所包含的,存储层节点可以直接根据拆分数量对目标数据块进行拆分,以及将拆分后的子数据块发送至目标存储层节点,因此在本发明实施例中,拆分目标数据块和调度子数据块的过程较为简单。
本发明实施例提供了一种数据块调度装置的一种具体实施例,与图2b所示流程相对应,参考图12,图12为本发明实施例的一种数据块调度装置的一种结构示意图,该数据块调度装置应用于分布式数据库系统中的调度层节点,分布式数据库系统还包括多个存储层节点,数据块调度装置包括:
读频率获取模块1201,用于获取各个存储层节点所存储的每个数据块的读频率。
目标数据块确定模块1202,用于将读频率大于预设读频率阈值的数据块确定目标数据块。
数据块拆分指令发送模块1203,用于向所述待调度存储层节点发送针对所述目标数据块的数据块拆分指令,以使所述待调度存储层节点将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,所述待调度存储层节点为存储所述目标数据块的存储层节点;所述目标存储层节点为所述多个存储层节点中除所述待调度层节点之外的的其他存储层节点。
本发明实施例提供的数据块调度装置,当应用于调度层节点时,通过获取各个存储层节点所存储的每个数据块的读频率;将读频率大于预设读频率阈值的数据块确定为目标数据块;向待调度存储层节点发送数据块拆分指令,以使待调度存储层节点将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储。在本发明实施例中,调度层节点可以指令待调度存储层节点对读频率大于预设读频率阈值的目标数据块,也就是是客户端访问频繁的数据块,进行拆分,并将拆分后的至少一个子数据块发送至目标存储层节点进行存储,因此,可以降低该待调度存储层节点的处理压力,进而平衡整个分布式数据库系统中各存储层节点的处理压力,提高了分布式数据库系统的性能稳定性。
作为本发明实施例一种可选的实施方式,上述目标数据块确定模块1202,包括:
数据块标识添加子模块,用于将读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,分级队列中包括多个不同级别的队列。
第一目标数据块确定子模块,用于若分级队列的最高级队列中存在数据块标识,则判断最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于最高级队列预设的拆分阈值;如果是,则将该数据块标识对应的数据块确定为目标数据块,拆分阈值大于或等于预设读频率阈值。
作为本发明实施例一种可选的实施方式,目标数据块确定模块1202,还包括:
数据块标识移动子模块,用于若否,则判断该数据块标识对应的数据块,在预设时长后的读频率是否小于最高级队列预设的下降阈值,若是,则将该数据块标识移动至下一级队列。
作为本发明实施例一种可选的实施方式,分级队列中还包括最低级队列和至少一个中间队列,中间队列设置有下降阈值,最低级队列和中间队列设置有晋升阈值,最低级队列中还设置有淘汰阈值;淘汰阈值大于或等于预设读频率阈值。
数据块标识添加子模块,包括:
数据块标识添加单元,用于将读频率大于预设读频率阈值的数据块的数据块标识,添加至分级队列的最低级队列中。
目标数据块确定模块1202,还包括:
队列轮询子模块,用于轮询各级队列。
第一当前读频率判断子模块,用于判断最低级队列中的各数据块标识对应的数据块的当前读频率是否大于或等于最低级队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于淘汰阈值,若是,则将该数据块标识从分级队列中移除。
第二当前读频率判断子模块,用于判断中间队列中的各数据块标识对应的数据块的当前读频率是否大于或等于该中间队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于最低级队列的下降阈值,若是,则将该数据块标识移动至下一级队列。
作为本发明实施例一种可选的实施方式,目标数据块确定模块1202,包括:
数据块标识保存子模块,用于保存读频率大于预设读频率阈值的数据块的数据块标识。
读频率判断子模块,用于判断所保存的数据块标识中,各数据块标识对应的数据块,在预设时长之内的读频率是否保持大于预设读频率阈值。
第二目标数据块确定子模块,用于若是,则将该数据块标识对应的数据块确定为目标数据块。
读频率获取模块1201,具体用于:
定时接收各个存储层节点发送的,该存储层节点所存储的每个数据块的读频率。
或者,定时从各个存储层节点,查询该存储层节点所存储的每个数据块的读频率。
可选地,数据块拆分指令中包括:目标数据块标识、目标存储层节点标识和拆分数量。
本发明实施例提供的数据块调度装置还包括:
拆分数量确定模块,用于根据目标数据块的读频率,确定子数据块的拆分数量,其中,拆分数量随目标数据块的读频率的增加而增加。
第一目标存储层节点确定模块,用于根据各个存储层节点所存储数据块的数量之间的大小关系,确定目标存储层节点。
或者,第一目标存储层节点确定模块,用于根据各个存储层节点所存储数据块的读频率之和之间的大小关系,确定目标存储层节点。
作为本发明实施例一种可选的实施方式,本发明实施例提供的数据块调度装置还包括:
拆分结果接收模块,用于接收目标存储层节点反馈的拆分结果,拆分结果中包含:每个拆分出的子数据块与存储该子数据块的存储层节点之间的对应关系。
对应关系保存模块,用于保存拆分结果中的子数据块与存储该子数据块的存储层节点之间的对应关系。
作为本发明实施例一种可选的实施方式,分布式数据库系统还包括:查询层节点。
本发明实施例提供的数据块调度装置还包括:
数据块拆分指令判断模块,用于当接收到查询层节点的访问请求时,判断是否已发出数据块拆分指令,且未接收到拆分结果。
反馈信息发送模块,用于如果是,向查询层节点发送反馈信息,以使查询层节点在接收到反馈信息后,再次向调度层节点发送访问请求。
作为本发明实施例一种可选的实施方式,本发明实施例提供的数据块调度装置还包括:
写频率获取模块,用于获取各个存储层节点所存储的每个数据块的写频率。
读写比计算模块,用于计算读频率与写频率之间的比值,作为读写比。
目标数据块确定模块,具体用于:
将读频率大于预设读频率阈值,且读写比大于预设读写比阈值的数据块确定为目标数据块。
本发明实施例提供了一种数据块调度装置的一种具体实施例,应用于分布式数据库系统中的存储层节点,分布式数据库系统还包括调度层节点,与图10所示流程相对应,参考图13,图13为本发明实施例的一种数据块调度装置的一种结构示意图,包括:
数据块拆分指令接收模块1301,用于接收调度层节点发送针对目标数据块的数据块拆分指令,数据块拆分指令为:调度层节点在获取各个存储层节点所存储的每个数据块的读频率,并将读频率大于预设读频率阈值的数据块确定为目标数据块后发送的。
目标数据块拆分模块1302,用于将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点中进行存储,目标存储层节点为多个存储层节点中除待调度层节点之外的其他存储层节点,待调度存储层节点为存储目标数据块的存储层节点。
本发明实施例提供的数据块调度装置,当应用于分布式数据库系统中的存储层节点中时,接收调度层节点发送针对目标数据块的数据块拆分指令,将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点中进行存储,目标存储层节点为多个存储层节点中的其他存储层节点。在本发明实施例中,读频率大于预设读频率阈值的数据块是客户端访问频繁的数据块,通过向待调度存储层节点发送数据块拆分指令,待调度存储层节点可以将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,因此,可以降低该待调度存储层节点的处理压力,进而平衡整个分布式数据库系统中各存储层节点的处理压力,提高了分布式数据库系统的性能稳定性。
作为本发明实施例一种可选的实施方式,数据块拆分指令中,包括:拆分数量,上述目标数据块拆分模块1302,可以包括:
目标数据块拆分子模块,用于根据拆分数量,将目标数据块拆分为拆分数量个子数据块。
子数据块发送子模块,用于将至少一个子数据块发送至目标存储层节点中进行存储。
本发明实施例还提供了一种调度层节点,如图14所示,包括处理器141、通信接口142、存储器143和通信总线144,其中,处理器141,通信接口142,存储器143通过通信总线144完成相互间的通信。
存储器143,用于存放计算机程序。
处理器141,用于执行存储器143上所存放的程序时,实现如下步骤:
获取各个存储层节点所存储的每个数据块的读频率。
将读频率大于预设读频率阈值的数据块确定为目标数据块。
向待调度存储层节点发送针对目标数据块的数据块拆分指令,以使待调度存储层节点将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,待调度存储层节点为存储目标数据块的存储层节点,目标存储层节点为多个存储层节点中的除待调度层节点之外的其他存储层节点。
本发明实施例还提供了一种存储层节点,如图15所示,包括处理器151、通信接口152、存储器153和通信总线154,其中,处理器151,通信接口152,存储器153通过通信总线154完成相互间的通信。
存储器153,用于存放计算机程序。
处理器151,用于执行存储器153上所存放的程序时,实现如下步骤:
接收调度层节点发送针对目标数据块的数据块拆分指令,数据块拆分指令为:调度层节点在获取各个存储层节点所存储的每个数据块的读频率,并将读频率大于预设读频率阈值的数据块确定为目标数据块后发送的。
将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点中进行存储,目标存储层节点为多个存储层节点中除待调度层节点之外的其他存储层节点,待调度存储层节点为存储目标数据块的存储层节点。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
如图2a所示,本发明实施例还提供了一种分布式数据库系统,分布式数据库系统包括:调度层节点110以及多个存储层节点130。
调度层节点110用于获取各个存储层节点130所存储的每个数据块的读频率。
调度层节点110还用于将读频率大于预设读频率阈值的数据块确定为目标数据块。
调度层节点110还用于向待调度存储层节点130发送针对目标数据块的数据块拆分指令;以使待调度存储层节点将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,待调度存储层节点为存储目标数据块的存储层节点130,目标存储层节点为多个存储层节点130中除待调度层节点110之外的的其他存储层节点130。
存储层节点130用于接收调度层节点110发送针对目标数据块的数据块拆分指令,数据块拆分指令为:调度层节点110在获取各个存储层节点130所存储的每个数据块的读频率,并将读频率大于预设读频率阈值的数据块确定为目标数据块后发送的。
存储层节点130还用于将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点130中进行存储。
作为本发明实施例一种可选的实施方式,调度层节点110,将读频率大于预设读频率阈值的数据块确定为目标数据块,包括:
将读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,分级队列中包括多个不同级别的队列。
若分级队列的最高级队列中存在数据块标识,则判断最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于最高级队列预设的拆分阈值;如果是,则将该数据块标识对应的数据块确定为目标数据块,拆分阈值大于或等于预设读频率阈值。
作为本发明实施例一种可选的实施方式,调度层节点110,将读频率大于预设读频率阈值的数据块确定为目标数据块,还包括:
若否,则判断该数据块标识对应的数据块,在预设时长后的读频率是否小于最高级队列预设的下降阈值,若是,则将该数据块标识移动至下一级队列。
作为本发明实施例一种可选的实施方式,分级队列中还包括最低级队列和至少一个中间队列,中间队列设置有下降阈值,最低级队列和中间队列设置有晋升阈值,最低级队列中还设置有淘汰阈值;淘汰阈值大于或等于预设读频率阈值。
调度层节点110,将读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,包括:
将读频率大于预设读频率阈值的数据块的数据块标识,添加至分级队列的最低级队列中。
调度层节点110,将读频率大于预设读频率阈值的数据块确定为目标数据块,还包括:
轮询各级队列。
判断最低级队列中的各数据块标识对应的数据块的当前读频率是否大于或等于最低级队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于淘汰阈值,若是,则将该数据块标识从分级队列中移除。
判断中间队列中的各数据块标识对应的数据块的当前读频率是否大于或等于该中间队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于最低级队列的下降阈值,若是,则将该数据块标识移动至下一级队列。
作为本发明实施例一种可选的实施方式,调度层节点110,将读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
保存读频率大于预设读频率阈值的数据块的数据块标识。
判断所保存的数据块标识中,各数据块标识对应的数据块,在预设时长之内的读频率是否保持大于预设读频率阈值。
若是,则将该数据块标识对应的数据块确定为目标数据块。
作为本发明实施例一种可选的实施方式,调度层节点110,获取各个存储层节点130所存储的每个数据块的读频率,包括:
定时接收各个存储层节点130发送的,该存储层节点130所存储的每个数据块的读频率。
或者,定时从各个存储层节点130,查询该存储层节点130所存储的每个数据块的读频率。
作为本发明实施例一种可选的实施方式,数据块拆分指令中包括:目标数据块标识、目标存储层节点标识和拆分数量。
调度层节点110还用于:
根据目标数据块的读频率,确定子数据块的拆分数量,其中,拆分数量随目标数据块的读频率的增加而增加。
根据各个存储层节点130所存储数据块的数量之间的大小关系,确定目标存储层节点。
或者,根据各个存储层节点130所存储数据块的读频率之和之间的大小关系,确定目标存储层节点。
作为本发明实施例一种可选的实施方式,调度层节点110还用于:
接收目标存储层节点反馈的拆分结果,拆分结果中包含:每个拆分出的子数据块与存储该子数据块的存储层节点130之间的对应关系。
保存拆分结果中的子数据块与存储该子数据块的存储层节点130之间的对应关系。
作为本发明实施例一种可选的实施方式,分布式数据库系统还包括:查询层节点。
调度层节点110,还用于:
当接收到查询层节点的访问请求时,判断是否已发出数据块拆分指令,且未接收到拆分结果。
如果是,向查询层节点发送反馈信息,以使查询层节点在接收到反馈信息后,再次向调度层节点110发送访问请求。
作为本发明实施例一种可选的实施方式,调度层节点110还用于:
获取各个存储层节点130所存储的每个数据块的写频率。
计算读频率与写频率之间的比值,作为读写比。
将读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
将读频率大于预设读频率阈值,且读写比大于预设读写比阈值的数据块确定为目标数据块。
作为本发明实施例一种可选的实施方式,数据块拆分指令中,包括:拆分数量,存储层节点130,将目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点130中进行存储,包括:
根据拆分数量,将目标数据块拆分为拆分数量个子数据块。
将至少一个子数据块发送至目标存储层节点130中进行存储。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述图2b-图9所示实施例中任一所述的数据块调度方法。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述图10或图11所示实施例所述的数据块调度方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述图2b-图9所示实施例中任一所述的数据块调度方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述图10或图11所示实施例中的数据块调度方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (11)
1.一种数据块调度方法,其特征在于,应用于分布式数据库系统中的调度层节点,所述分布式数据库系统还包括多个存储层节点,所述方法包括:
获取各个存储层节点所存储的每个数据块的读频率;
将所述读频率大于预设读频率阈值的数据块确定为目标数据块;
向待调度存储层节点发送针对所述目标数据块的数据块拆分指令,以使所述待调度存储层节点将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,所述待调度存储层节点为存储所述目标数据块的存储层节点,所述目标存储层节点为所述多个存储层节点中除所述待调度存储层节点之外的其他存储层节点;
所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
将所述读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,所述分级队列中包括多个不同级别的队列;
若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于所述最高级队列预设的拆分阈值;如果是,则将该数据块标识对应的数据块确定为所述目标数据块,所述拆分阈值大于或等于所述预设读频率阈值;
所述分级队列中还包括最低级队列和至少一个中间队列,所述中间队列设置有下降阈值,所述最低级队列和所述中间队列设置有晋升阈值,所述最低级队列中还设置有淘汰阈值;所述淘汰阈值大于或等于所述预设读频率阈值;
所述将所述读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中的步骤,包括:
将所述读频率大于所述预设读频率阈值的数据块的数据块标识,添加至所述分级队列的最低级队列中;
在所述若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块在预设时长之后,读频率是否大于所述最高级队列预设的拆分阈值的步骤之前,所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,还包括:
轮询各级队列;
判断所述最低级队列中的各数据块标识对应的数据块的当前读频率是否大于或等于所述最低级队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述淘汰阈值,若是,则将该数据块标识从所述分级队列中移除;
判断所述中间队列中的各数据块标识对应的数据块的当前读频率是否大于或等于该中间队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述最低级队列的下降阈值,若是,则将该数据块标识移动至下一级队列。
2.根据权利要求1所述的方法,其特征在于,在所述若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块在预设时长之后,读频率是否大于所述最高级队列预设的拆分阈值的步骤之后,所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,还包括:
若否,则判断该数据块标识对应的数据块,在预设时长后的读频率是否小于所述最高级队列预设的下降阈值,若是,则将该数据块标识移动至下一级队列。
3.根据权利要求1所述的方法,其特征在于,所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
保存读频率大于所述预设读频率阈值的数据块的数据块标识;
判断所保存的数据块标识中,各数据块标识对应的数据块,在预设时长之内的读频率是否保持大于所述预设读频率阈值;
若是,则将该数据块标识对应的数据块确定为所述目标数据块。
4.根据权利要求1所述的方法,其特征在于,所述获取各个存储层节点所存储的每个数据块的读频率的步骤,包括:
定时接收各个所述存储层节点发送的,该存储层节点所存储的每个数据块的读频率;
或者,定时从各个所述存储层节点,查询该存储层节点所存储的每个数据块的读频率。
5.根据权利要求1所述的方法,其特征在于,所述数据块拆分指令中包括:目标数据块标识、目标存储层节点标识和拆分数量;
在所述向待调度存储层节点发送针对所述目标数据块的数据块拆分指令之前,所述方法还包括:
根据所述目标数据块的读频率,确定子数据块的拆分数量,其中,所述拆分数量随所述目标数据块的读频率的增加而增加;
根据各个存储层节点所存储数据块的数量之间的大小关系,确定所述目标存储层节点;
或者,根据各个存储层节点所存储数据块的读频率之和之间的大小关系,确定所述目标存储层节点。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收目标存储层节点反馈的拆分结果,所述拆分结果中包含:每个拆分出的子数据块与存储该子数据块的存储层节点之间的对应关系;
保存所述拆分结果中的子数据块与存储该子数据块的存储层节点之间的对应关系。
7.根据权利要求6所述的方法,其特征在于,所述分布式数据库系统还包括:查询层节点;
所述方法还包括:
当接收到查询层节点的访问请求时,判断是否已发出所述数据块拆分指令,且未接收到所述拆分结果;
如果是,向所述查询层节点发送反馈信息,以使所述查询层节点在接收到所述反馈信息后,再次向所述调度层节点发送访问请求。
8.根据权利要求1所述的方法,其特征在于,在所述获取各个存储层节点所存储的每个数据块的读频率之后,所述方法还包括:
获取各个存储层节点所存储的每个数据块的写频率;
计算所述读频率与所述写频率之间的比值,作为读写比;
所述将所述读频率大于预设读频率阈值的数据块确定为目标数据块的步骤,包括:
将所述读频率大于预设读频率阈值,且所述读写比大于预设读写比阈值的数据块确定为目标数据块。
9.一种数据块调度装置,其特征在于,应用于分布式数据库系统中的调度层节点,所述分布式数据库系统还包括多个存储层节点,所述装置包括:
读频率获取模块,用于获取各个存储层节点所存储的每个数据块的读频率;
目标数据块确定模块,用于将所述读频率大于预设读频率阈值的数据块确定为目标数据块;
数据块拆分指令发送模块,用于向待调度存储层节点发送针对所述目标数据块的数据块拆分指令,以使所述待调度存储层节点将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,所述待调度存储层节点为存储所述目标数据块的存储层节点;所述目标存储层节点为所述多个存储层节点中除所述待调度存储层节点之外的其他存储层节点;
所述目标数据块确定模块,包括:
数据块标识添加子模块,用于将所述读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,所述分级队列中包括多个不同级别的队列;
第一目标数据块确定子模块,用于若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于所述最高级队列预设的拆分阈值;如果是,则将该数据块标识对应的数据块确定为所述目标数据块,所述拆分阈值大于或等于所述预设读频率阈值;
所述分级队列中还包括最低级队列和至少一个中间队列,所述中间队列设置有下降阈值,所述最低级队列和所述中间队列设置有晋升阈值,所述最低级队列中还设置有淘汰阈值;所述淘汰阈值大于或等于所述预设读频率阈值;
所述数据块标识添加子模块,包括:
数据块标识添加单元,用于将所述读频率大于所述预设读频率阈值的数据块的数据块标识,添加至所述分级队列的最低级队列中;
所述目标数据块确定模块,还包括:
队列轮询子模块,用于轮询各级队列;
第一当前读频率判断子模块,用于判断所述最低级队列中的各数据块标识对应的数据块的当前读频率是否大于或等于所述最低级队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述淘汰阈值,若是,则将该数据块标识从所述分级队列中移除;
第二当前读频率判断子模块,用于判断所述中间队列中的各数据块标识对应的数据块的当前读频率是否大于或等于该中间队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述最低级队列的下降阈值,若是,则将该数据块标识移动至下一级队列。
10.一种分布式数据库系统,其特征在于,所述分布式数据库系统包括:调度层节点以及多个存储层节点;
所述调度层节点用于获取各个存储层节点所存储的每个数据块的读频率;
所述调度层节点还用于将所述读频率大于预设读频率阈值的数据块确定为目标数据块;
所述调度层节点还用于向待调度存储层节点发送针对所述目标数据块的数据块拆分指令;以使所述待调度存储层节点将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至目标存储层节点进行存储,所述待调度存储层节点为存储所述目标数据块的存储层节点,所述目标存储层节点为所述多个存储层节点中除所述待调度存储层节点之外的其他存储层节点;
所述调度层节点还用于将所述读频率大于预设读频率阈值的数据块的数据块标识,添加至预设的分级队列中,所述分级队列中包括多个不同级别的队列;若所述分级队列的最高级队列中存在数据块标识,则判断所述最高级队列中的数据块标识对应的数据块,在预设时长之后读频率是否大于或等于所述最高级队列预设的拆分阈值;如果是,则将该数据块标识对应的数据块确定为所述目标数据块,所述拆分阈值大于或等于所述预设读频率阈值;
所述分级队列中还包括最低级队列和至少一个中间队列,所述中间队列设置有下降阈值,所述最低级队列和所述中间队列设置有晋升阈值,所述最低级队列中还设置有淘汰阈值;所述淘汰阈值大于或等于所述预设读频率阈值;
所述调度层节点还用于将所述读频率大于所述预设读频率阈值的数据块的数据块标识,添加至所述分级队列的最低级队列中;
所述调度层节点还用于轮询各级队列;判断所述最低级队列中的各数据块标识对应的数据块的当前读频率是否大于或等于所述最低级队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述淘汰阈值,若是,则将该数据块标识从所述分级队列中移除;判断所述中间队列中的各数据块标识对应的数据块的当前读频率是否大于或等于该中间队列的晋升阈值,若是,则将该数据块标识移动至上一级队列中;若否,则判断该数据块标识对应的数据块的当前读频率是否小于所述最低级队列的下降阈值,若是,则将该数据块标识移动至下一级队列;
所述存储层节点用于接收所述调度层节点发送针对目标数据块的数据块拆分指令,所述数据块拆分指令为:所述调度层节点在获取各个存储层节点所存储的每个数据块的读频率,并将所述读频率大于预设读频率阈值的数据块确定为目标数据块后发送的;
所述存储层节点还用于将所述目标数据块拆分为多个子数据块,并将至少一个子数据块发送至所述目标存储层节点中进行存储。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010899896.7A CN112035498B (zh) | 2020-08-31 | 2020-08-31 | 数据块调度方法、装置、调度层节点及存储层节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010899896.7A CN112035498B (zh) | 2020-08-31 | 2020-08-31 | 数据块调度方法、装置、调度层节点及存储层节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035498A CN112035498A (zh) | 2020-12-04 |
CN112035498B true CN112035498B (zh) | 2023-09-05 |
Family
ID=73586637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010899896.7A Active CN112035498B (zh) | 2020-08-31 | 2020-08-31 | 数据块调度方法、装置、调度层节点及存储层节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035498B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204564B (zh) * | 2021-05-20 | 2023-02-28 | 山东英信计算机技术有限公司 | 一种数据库高频sql查询方法、系统和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN103106152A (zh) * | 2012-12-13 | 2013-05-15 | 深圳先进技术研究院 | 基于层次存储介质的数据调度方法 |
CN103605483A (zh) * | 2013-11-21 | 2014-02-26 | 浪潮电子信息产业股份有限公司 | 一种分级存储系统中块级数据特征处理方法 |
CN104317731A (zh) * | 2014-10-17 | 2015-01-28 | 杭州华为数字技术有限公司 | 一种分层存储管理方法、装置及存储系统 |
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
CN107368364A (zh) * | 2017-07-24 | 2017-11-21 | 郑州云海信息技术有限公司 | 基于Linux noop调度算法的读写方法及装置 |
CN107562913A (zh) * | 2017-09-12 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种分布式文件系统的数据存储方法及装置 |
CN109446114A (zh) * | 2018-10-12 | 2019-03-08 | 咪咕文化科技有限公司 | 一种空间数据缓存方法、装置和存储介质 |
CN111158613A (zh) * | 2020-04-07 | 2020-05-15 | 上海飞旗网络技术股份有限公司 | 基于访问热度的数据块存储方法、装置及存储设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10236796B4 (de) * | 2002-08-08 | 2004-12-02 | Christian Dr. Scheideler | Verfahren und Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium |
US9424314B2 (en) * | 2012-10-19 | 2016-08-23 | Oracle International Corporation | Method and apparatus for joining read requests |
KR102127116B1 (ko) * | 2014-03-12 | 2020-06-26 | 삼성전자 주식회사 | 분산 데이터 저장 장치 및 분산 데이터 저장 방법 |
US10956417B2 (en) * | 2017-04-28 | 2021-03-23 | Oracle International Corporation | Dynamic operation scheduling for distributed data processing |
-
2020
- 2020-08-31 CN CN202010899896.7A patent/CN112035498B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN103106152A (zh) * | 2012-12-13 | 2013-05-15 | 深圳先进技术研究院 | 基于层次存储介质的数据调度方法 |
CN103605483A (zh) * | 2013-11-21 | 2014-02-26 | 浪潮电子信息产业股份有限公司 | 一种分级存储系统中块级数据特征处理方法 |
CN104317731A (zh) * | 2014-10-17 | 2015-01-28 | 杭州华为数字技术有限公司 | 一种分层存储管理方法、装置及存储系统 |
CN104834609A (zh) * | 2015-05-31 | 2015-08-12 | 上海交通大学 | 基于历史升降级频率的多级缓存方法 |
CN107368364A (zh) * | 2017-07-24 | 2017-11-21 | 郑州云海信息技术有限公司 | 基于Linux noop调度算法的读写方法及装置 |
CN107562913A (zh) * | 2017-09-12 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种分布式文件系统的数据存储方法及装置 |
CN109446114A (zh) * | 2018-10-12 | 2019-03-08 | 咪咕文化科技有限公司 | 一种空间数据缓存方法、装置和存储介质 |
CN111158613A (zh) * | 2020-04-07 | 2020-05-15 | 上海飞旗网络技术股份有限公司 | 基于访问热度的数据块存储方法、装置及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112035498A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110109953B (zh) | 一种数据查询方法、装置及设备 | |
CN107301178B (zh) | 数据查询处理方法、装置及系统 | |
CN104978324B (zh) | 一种数据处理方法和装置 | |
CN107957848B (zh) | 重删处理方法及存储设备 | |
CN111562884B (zh) | 一种数据存储方法、装置及电子设备 | |
CN112035498B (zh) | 数据块调度方法、装置、调度层节点及存储层节点 | |
CN109213774B (zh) | 数据的存储方法及装置、存储介质、终端 | |
CN110825533B (zh) | 一种数据发射方法及装置 | |
CN110909266B (zh) | 深度分页的方法、装置及服务器 | |
CN108932104B (zh) | 一种数据处理方法、装置及处理服务器 | |
CN109407970B (zh) | 读写请求处理方法、装置及电子设备 | |
CN110019054B (zh) | 日志去重方法和系统、内容分发网络系统 | |
CN113905252B (zh) | 直播间的数据存储方法、装置、电子设备及存储介质 | |
CN115442439A (zh) | 分布式缓存集群管理方法、系统、终端及存储介质 | |
CN114115744A (zh) | 数据回收任务的控制方法、装置、电子设备及存储介质 | |
CN113835905A (zh) | 一种消息队列负载均衡方法、装置、电子设备及介质 | |
CN110990394B (zh) | 分布式面向列数据库表的行数统计方法、装置和存储介质 | |
CN109240987B (zh) | 用于移动互联网的基于时间进行数据预取的方法及系统 | |
CN109240988B (zh) | 用于避免大数据存储系统进入访问失衡状态的方法及系统 | |
CN112612865A (zh) | 一种基于Elasticsearch的文档存储方法和装置 | |
CN112910988A (zh) | 一种资源获取方法及资源调度装置 | |
CN108173689B (zh) | 负载均衡数据的输出系统 | |
CN112732757B (zh) | 一种降级数据的处理方法、系统、装置、设备及存储介质 | |
CN111800446A (zh) | 调度处理方法、装置、设备和存储介质 | |
CN116049314A (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 |